We have got to know, in order to serve hevc videos on iOS, we need to use HLS+fMP4 approach from the following link
https://developer.apple.com/forums/thread/132291
When serving a HLS+fMP4+HEVC video, its unable to play on iOS, and plays smoothly on Android. Tool used for transcoding, FFMPEG. Following commands were used.
Pass-1:
ffmpeg -y -i input.mp4 -pix_fmt yuv420p -vcodec libx265 -profile:v main -preset fast -vf scale=w="min(trunc(iw/2)*2\,640)":h=-2 -b:v 1500k -maxrate 1500k -bufsize 1500k -acodec aac -ab 128k -subq 6 -async 2 -tag:v hvc1 -movflags faststart -map 0 -vsync 2 -max_muxing_queue_size 9999 -hls_segment_type fmp4 -force_key_frames expr:gte(t,n_forced*3) -hls_flags single_file -hls_list_size 0 -hls_time 6 -hls_playlist_type vod -hls_segment_filename output.mp4 -x265-params min-keyint=90:keyint=90:pass=1:stats=logfile -f null /dev/null
Pass-2:
ffmpeg -y -i input.mp4 -pix_fmt yuv420p -vcodec libx265 -profile:v main -preset fast -filter_complex [0:v]scale=w="min(trunc(iw/2)*2\,640)":h=-2,unsharp=5:5:0.75,eq=saturation=1.06:contrast=1.05,colortemperature=6900 -b:v 1500k -maxrate 1500k -bufsize 1500k -acodec aac -ab 128k -subq 6 -async 2 -tag:v hvc1 -movflags faststart -map 0 -vsync 2 -max_muxing_queue_size 9999 -hls_segment_type fmp4 -force_key_frames expr:gte(t,n_forced*3) -hls_flags single_file -hls_list_size 0 -hls_time 6 -hls_playlist_type vod -hls_segment_filename output.mp4 -x265-params min-keyint=90:keyint=90:pass=2:stats=logfile output.m3u8
What is the mistake in the followed approach?