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 tbucher, 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:2 by tbucher, 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 Steven Liu, 3 years ago

Cc: liuqi05@kuaishou.com 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$

comment:4 by Collin Allen, 3 years ago

Thanks for the patch! This looks excellent. Is there a way to download the ffmpeg source tree at this patch/branch?

in reply to:  4 comment:5 by Balling, 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 Balling, 3 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.