Opened 4 years ago
Closed 3 years ago
#8904 closed enhancement (fixed)
HLS missing CODECS for H.265 streams
Reported by: | Collin Allen | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | ffmpeg |
Version: | unspecified | Keywords: | hls |
Cc: | liuqi05@kuaishou.com | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
When encoding media using ffmpeg for multiple HLS streams, the master playlist does not include the CODECS attribute for H.265 videos, but it does for H.264 videos. Here's a contrived command I'm running:
ffmpeg \ -i INPUT.mov \ -i INPUT.mov \ -i INPUT.mov \ -i INPUT.mov \ -s:v:0 1920x1080 -c:a:0 aac -b:a 192k -c:v:0 libx265 -b:v:0 4000k \ -s:v:1 1280x720 -c:a:1 aac -b:a 160k -c:v:1 libx265 -b:v:1 2000k \ -s:v:2 854x480 -c:a:2 aac -b:a 160k -c:v:2 libx264 -b:v:2 1000k \ -s:v:3 640x360 -c:a:3 aac -b:a 128k -c:v:3 libx264 -b:v:3 600k \ -map 0:a \ -map 0:v \ -map 1:a \ -map 1:v \ -map 2:a \ -map 2:v \ -map 3:a \ -map 3:v \ -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3" \ -threads 0 \ -f hls \ -movflags frag_keyframe \ -hls_flags single_file \ -hls_segment_type mpegts \ -hls_list_size 0 \ -hls_time 2 \ -hls_allow_cache 1 \ -master_pl_name index.m3u8 \ -y \ master_%v.m3u8
After the command runs successfully, index.m3u8 contains:
#EXTM3U #EXT-X-VERSION:4 #EXT-X-STREAM-INF:BANDWIDTH=4540800,RESOLUTION=1920x1080 master_0.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2340800,RESOLUTION=1280x720 master_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1240800,RESOLUTION=854x480,CODECS="avc1.64001e,mp4a.40.2" master_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=800800,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2" master_3.m3u8
The H.264 streams have a CODECS attribute, but the H.265 streams do not. According to [Apple's documentation https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/creating_a_master_playlist], the CODECS attribute is not required, but is recommended.
Since the logic for producing the attribute is already present for H.264 streams, could it be enabled for H.265 streams as well?
I've observed the current behavior with ffmpeg 4.3.1 under macOS Catalina 10.15.6 (19G2021).
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
Change History (6)
comment:1 by , 4 years ago
comment:2 by , 4 years ago
This stems from issues I ran into some time ago. See comments in ticket:7480 and patch comment http://ffmpeg.org/pipermail/ffmpeg-devel/2018-October/235394.html for more details.
Essentially, one of the two reasons was that playback of HEVC content may fail even with properly constructed codec info while it works fine without it. The second was missing knowledge of proper syntax.
So this is the way FFmpeg handles it for the time being.
comment:3 by , 4 years ago
Cc: | added |
---|
try this patch please:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20201012091813.55564-1-lq@chinaffmpeg.org/
test local:
(base) liuqi05:clang liuqi$ ./ffmpeg -i /Users/liuqi/Movies/Test/ToS-4k-1920.mov -i /Users/liuqi/Movies/Test/ToS-4k-1920.mov -i /Users/liuqi/Movies/Test/ToS-4k-1920.mov -i /Users/liuqi/Movies/Test/ToS-4k-1920.mov -s:v:0 1920x1080 -c:a:0 aac -b:a 192k -c:v:0 libx265 -b:v:0 4000k -s:v:1 1280x720 -c:a:1 aac -b:a 160k -c:v:1 libx265 -b:v:1 2000k -s:v:2 854x480 -c:a:2 aac -b:a 160k -c:v:2 libx264 -b:v:2 1000k -s:v:3 640x360 -c:a:3 aac -b:a 128k -c:v:3 libx264 -b:v:3 600k -map 0:a -map 0:v -map 1:a -map 1:v -map 2:a -map 2:v -map 3:a -map 3:v -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3" -threads 0 -f hls -movflags frag_keyframe -hls_flags single_file -hls_segment_type mpegts -hls_list_size 0 -hls_time 2 -hls_allow_cache 1 -master_pl_name index1.m3u8 -y -tag:v:0 hvc1 -tag:v:1 hvc1 -t 1 master_%v.m3u8 ffmpeg version git-2020-10-12-54d178fc69 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 12.0.0 (clang-1200.0.32.2) configuration: --cc=clang --quiet --enable-htmlpages --enable-libx264 --enable-libxml2 --enable-gpl --extra-ldflags='-O0 -g3 -fsanitize=address -Wno-error -fPIC -I/usr/local/include' --extra-ldflags='-O0 -g3 -fsanitize=address -Wno-error -fPIC -L/usr/local/lib' --enable-libfreetype --enable-fontconfig --enable-libspeex --enable-libopus --enable-libzmq --enable-libx265 --enable-libass --enable-videotoolbox --disable-optimizations --enable-audiotoolbox --enable-opengl --disable-stripping --samples=fate-suite/ libavutil 56. 59.100 / 56. 59.100 libavcodec 58.106.100 / 58.106.100 libavformat 58. 58.100 / 58. 58.100 libavdevice 58. 11.102 / 58. 11.102 libavfilter 7. 87.100 / 7. 87.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/liuqi/Movies/Test/ToS-4k-1920.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.29.104 Duration: 00:12:14.17, start: 0.000000, bitrate: 8051 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 7862 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default) Metadata: handler_name : VideoHandler encoder : libx264 Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 182 kb/s (default) Metadata: handler_name : SoundHandler Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/liuqi/Movies/Test/ToS-4k-1920.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.29.104 Duration: 00:12:14.17, start: 0.000000, bitrate: 8051 kb/s Stream #1:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 7862 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default) Metadata: handler_name : VideoHandler encoder : libx264 Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 182 kb/s (default) Metadata: handler_name : SoundHandler Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/liuqi/Movies/Test/ToS-4k-1920.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.29.104 Duration: 00:12:14.17, start: 0.000000, bitrate: 8051 kb/s Stream #2:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 7862 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default) Metadata: handler_name : VideoHandler encoder : libx264 Stream #2:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 182 kb/s (default) Metadata: handler_name : SoundHandler Input #3, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/liuqi/Movies/Test/ToS-4k-1920.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.29.104 Duration: 00:12:14.17, start: 0.000000, bitrate: 8051 kb/s Stream #3:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 7862 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default) Metadata: handler_name : VideoHandler encoder : libx264 Stream #3:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 182 kb/s (default) Metadata: handler_name : SoundHandler Stream mapping: Stream #0:1 -> #0:0 (aac (native) -> aac (native)) Stream #0:0 -> #0:1 (h264 (native) -> hevc (libx265)) Stream #1:1 -> #0:2 (aac (native) -> aac (native)) Stream #1:0 -> #0:3 (h264 (native) -> hevc (libx265)) Stream #2:1 -> #0:4 (aac (native) -> aac (native)) Stream #2:0 -> #0:5 (h264 (native) -> h264 (libx264)) Stream #3:1 -> #0:6 (aac (native) -> aac (native)) Stream #3:0 -> #0:7 (h264 (native) -> h264 (libx264)) Press [q] to stop, [?] for help x265 [info]: HEVC encoder version 3.2 x265 [info]: build info [Mac OS X][clang 11.0.3][64 bit] 8bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 x265 [info]: Main profile, Level-4 (Main tier) x265 [info]: Thread pool created using 12 threads x265 [info]: Slices : 1 x265 [info]: frame threads / pool features : 3 / wpp(17 rows) x265 [info]: Coding QT: max CU size, min CU size : 64 / 8 x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 3 x265 [info]: Keyframe min / max / scenecut / bias: 24 / 250 / 40 / 5.00 x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2 x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0 x265 [info]: References / ref-limit cu / depth : 3 / off / on x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1 x265 [info]: Rate Control / qCompress : ABR-4000 kbps / 0.60 x265 [info]: tools: rd=3 psy-rd=2.00 early-skip rskip signhide tmvp b-intra x265 [info]: tools: strong-intra-smoothing lslices=6 deblock sao x265 [info]: HEVC encoder version 3.2 x265 [info]: build info [Mac OS X][clang 11.0.3][64 bit] 8bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 x265 [info]: Main profile, Level-3.1 (Main tier) x265 [info]: Thread pool created using 12 threads x265 [info]: Slices : 1 x265 [info]: frame threads / pool features : 3 / wpp(12 rows) x265 [info]: Coding QT: max CU size, min CU size : 64 / 8 x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 3 x265 [info]: Keyframe min / max / scenecut / bias: 24 / 250 / 40 / 5.00 x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2 x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0 x265 [info]: References / ref-limit cu / depth : 3 / off / on x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1 x265 [info]: Rate Control / qCompress : ABR-2000 kbps / 0.60 x265 [info]: tools: rd=3 psy-rd=2.00 early-skip rskip signhide tmvp b-intra x265 [info]: tools: strong-intra-smoothing lslices=4 deblock sao [libx264 @ 0x619000016380] using SAR=576/427 [libx264 @ 0x619000016380] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x619000016380] profile High, level 3.0, 4:2:0, 8-bit [libx264 @ 0x619000016380] 264 - core 161 r3018 db0d417 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=15 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 [libx264 @ 0x619000018180] using SAR=27/20 [libx264 @ 0x619000018180] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x619000018180] profile High, level 3.0, 4:2:0, 8-bit [libx264 @ 0x619000018180] 264 - core 161 r3018 db0d417 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=11 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=600 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 [hls @ 0x61b000005b80] Opening 'master_0.ts' for writing Last message repeated 1 times [hls @ 0x61b000005b80] Opening 'master_1.ts' for writing Last message repeated 1 times [hls @ 0x61b000005b80] Opening 'master_2.ts' for writing Last message repeated 1 times [hls @ 0x61b000005b80] Opening 'master_3.ts' for writing Last message repeated 1 times Output #0, hls, to 'master_%v.m3u8': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf58.58.100 Stream #0:0(eng): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler encoder : Lavc58.106.100 aac Stream #0:1(eng): Video: hevc (libx265) (hvc1 / 0x31637668), yuv420p(progressive), 1920x1080 [SAR 27:20 DAR 12:5], q=-1--1, 4000 kb/s, 24 fps, 90k tbn, 24 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.106.100 libx265 Side data: cpb: bitrate max/min/avg: 0/0/4000000 buffer size: 0 vbv_delay: N/A Stream #0:2(eng): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler encoder : Lavc58.106.100 aac Stream #0:3(eng): Video: hevc (libx265) (hvc1 / 0x31637668), yuv420p(progressive), 1280x720 [SAR 27:20 DAR 12:5], q=-1--1, 2000 kb/s, 24 fps, 90k tbn, 24 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.106.100 libx265 Side data: cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 0 vbv_delay: N/A Stream #0:4(eng): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler encoder : Lavc58.106.100 aac Stream #0:5(eng): Video: h264 (libx264), yuv420p(progressive), 854x480 [SAR 576:427 DAR 12:5], q=-1--1, 1000 kb/s, 24 fps, 90k tbn, 24 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.106.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A Stream #0:6(eng): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler encoder : Lavc58.106.100 aac Stream #0:7(eng): Video: h264 (libx264), yuv420p, 640x360 [SAR 27:20 DAR 12:5], q=-1--1, 600 kb/s, 24 fps, 90k tbn, 24 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.106.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/600000 buffer size: 0 vbv_delay: N/A [hls @ 0x61b000005b80] Opening 'master_0.m3u8.tmp' for writing0:00.95 bitrate=N/A speed=0.945x [hls @ 0x61b000005b80] Opening 'master_1.m3u8.tmp' for writing [hls @ 0x61b000005b80] Opening 'master_2.m3u8.tmp' for writing [hls @ 0x61b000005b80] Opening 'master_3.m3u8.tmp' for writing [hls @ 0x61b000005b80] Opening 'index1.m3u8' for writing frame= 24 fps= 14 q=20.0 Lq=14.8 q=-1.0 q=-1.0 size=N/A time=00:00:01.02 bitrate=N/A speed=0.594x video:10kB audio:72kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: unknown [aac @ 0x619000011880] Qavg: 15011.605 x265 [info]: frame I: 1, Avg QP:32.41 kb/s: 115.58 x265 [info]: frame P: 5, Avg QP:24.93 kb/s: 58.06 x265 [info]: frame B: 18, Avg QP:28.72 kb/s: 20.87 x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0% x265 [info]: consecutive B-frames: 16.7% 0.0% 0.0% 33.3% 50.0% encoded 24 frames in 1.70s (14.12 fps), 32.57 kb/s, Avg QP:28.09 [aac @ 0x619000013680] Qavg: 15011.605 x265 [info]: frame I: 1, Avg QP:25.75 kb/s: 54.53 x265 [info]: frame P: 5, Avg QP:18.63 kb/s: 49.65 x265 [info]: frame B: 18, Avg QP:23.12 kb/s: 13.62 x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0% x265 [info]: consecutive B-frames: 16.7% 0.0% 0.0% 33.3% 50.0% encoded 24 frames in 1.67s (14.34 fps), 22.83 kb/s, Avg QP:22.29 [aac @ 0x619000015480] Qavg: 15011.605 [libx264 @ 0x619000016380] frame I:1 Avg QP:10.00 size: 124 [libx264 @ 0x619000016380] frame P:6 Avg QP: 6.96 size: 94 [libx264 @ 0x619000016380] frame B:17 Avg QP:11.12 size: 25 [libx264 @ 0x619000016380] consecutive B-frames: 4.2% 0.0% 12.5% 83.3% [libx264 @ 0x619000016380] mb I I16..4: 100.0% 0.0% 0.0% [libx264 @ 0x619000016380] mb P I16..4: 0.0% 0.0% 0.1% P16..4: 0.0% 0.0% 0.0% 0.0% 0.0% skip:99.9% [libx264 @ 0x619000016380] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct: 0.0% skip:99.9% L0:100.0% L1: 0.0% BI: 0.0% [libx264 @ 0x619000016380] final ratefactor: -2.37 [libx264 @ 0x619000016380] 8x8 transform intra:0.1% [libx264 @ 0x619000016380] coded y,uvDC,uvAC intra: 0.4% 0.0% 0.0% inter: 0.0% 0.0% 0.0% [libx264 @ 0x619000016380] i16 v,h,dc,p: 97% 0% 3% 0% [libx264 @ 0x619000016380] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 0% 75% 0% 25% 0% 0% 0% 0% [libx264 @ 0x619000016380] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 12% 41% 5% 3% 4% 2% 4% 3% [libx264 @ 0x619000016380] i8c dc,h,v,p: 100% 0% 0% 0% [libx264 @ 0x619000016380] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x619000016380] kb/s:8.94 [aac @ 0x619000017280] Qavg: 15011.605 [libx264 @ 0x619000018180] frame I:1 Avg QP:12.00 size: 91 [libx264 @ 0x619000018180] frame P:6 Avg QP: 7.15 size: 83 [libx264 @ 0x619000018180] frame B:17 Avg QP:10.71 size: 20 [libx264 @ 0x619000018180] consecutive B-frames: 4.2% 0.0% 12.5% 83.3% [libx264 @ 0x619000018180] mb I I16..4: 100.0% 0.0% 0.0% [libx264 @ 0x619000018180] mb P I16..4: 0.0% 0.0% 0.1% P16..4: 0.0% 0.0% 0.0% 0.0% 0.0% skip:99.9% [libx264 @ 0x619000018180] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct: 0.0% skip:99.9% L0:100.0% L1: 0.0% BI: 0.0% [libx264 @ 0x619000018180] final ratefactor: -0.32 [libx264 @ 0x619000018180] 8x8 transform intra:0.0% [libx264 @ 0x619000018180] coded y,uvDC,uvAC intra: 0.4% 0.0% 0.0% inter: 0.0% 0.0% 0.0% [libx264 @ 0x619000018180] i16 v,h,dc,p: 96% 0% 4% 0% [libx264 @ 0x619000018180] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 1% 53% 6% 4% 6% 4% 2% 4% [libx264 @ 0x619000018180] i8c dc,h,v,p: 100% 0% 0% 0% [libx264 @ 0x619000018180] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x619000018180] kb/s:7.46 (base) liuqi05:clang liuqi$ cat index1.m3u8 #EXTM3U #EXT-X-VERSION:4 #EXT-X-STREAM-INF:BANDWIDTH=4540800,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L120.B01,mp4a.40.2" master_0.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2340800,RESOLUTION=1280x720,CODECS="hvc1.1.4.L93.B01,mp4a.40.2" master_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1240800,RESOLUTION=854x480,CODECS="avc1.64001e,mp4a.40.2" master_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=800800,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2" master_3.m3u8 (base) liuqi05:clang liuqi$
follow-up: 5 comment:4 by , 4 years ago
Thanks for the patch! This looks excellent. Is there a way to download the ffmpeg source tree at this patch/branch?
comment:5 by , 3 years ago
Replying to Collin Allen:
Thanks for the patch! This looks excellent. Is there a way to download the ffmpeg source tree at this patch/branch?
Are you serious right now? It is already in the master. a2b1dd0ce301450a47c972745a6b33c4c273aa5d
comment:6 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in 812f39ee85ac27a7e11a374150e60a4614f060b1.
This stems from issues I ran into some time ago. See comments in ticket:7480 and patch comment http://ffmpeg.org/pipermail/ffmpeg-devel/2018-October/235394.html for more details.
Essentially, one of the two reasons was that playback of HEVC content may fail even with properly constructed codec info while it works fine without it. The second was missing knowledge of proper syntax.
So this is the way FFmpeg handles it for the time being.