[FFmpeg-trac] #6599(undetermined:new): FFmpeg git build does not make working fMP4 HLS files

FFmpeg trac at avcodec.org
Sat Aug 19 09:57:33 EEST 2017


#6599: FFmpeg git build does not make working fMP4 HLS files
-------------------------------------+-------------------------------------
             Reporter:               |                     Type:  defect
  SeventhCycle                       |                 Priority:  normal
               Status:  new          |                  Version:
            Component:               |  unspecified
  undetermined                       |               Blocked By:
             Keywords:               |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary:

 Within a relatively new build of FFmpeg, I'm no longer able to make
 fragmented MP4 / HLS files. I'm currently testing on FFmpeg N-86995
 -g28e9ba951d-static.

 How to reproduce:

 H.264 version:
 {{{
 ffmpeg -y -loop 1 -f image2 -i out/480p-h264.jpg -vcodec h264 -r 30 -t 30
 \\n   -vf
 drawtext="fontsize=3:fontfile=VERDANA.TTF:timecode='00\:00\:00\:00':rate=30:text='TCR\:':fontsize=72:fontcolor='white':boxcolor=0x000000AA:box=1:x=10:y=10"
 \\n   -b:v 500k -hls_segment_type fmp4 -pix_fmt yuvj422p
 "out/480p-h264.m3u8"
 }}}

 H.264 output:
 {{{
 ffmpeg version N-86995-g28e9ba951d-static http://johnvansickle.com/ffmpeg/
 Copyright (c) 2000-2017 the FFmpeg developers
   built with gcc 6.4.0 (Debian 6.4.0-2) 20170724
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio
 --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-
 gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-
 libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopenjpeg --enable-libopus --enable-librtmp --enable-librubberband
 --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-
 libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-
 libzimg
   libavutil      55. 74.100 / 55. 74.100
   libavcodec     57.102.100 / 57.102.100
   libavformat    57. 76.100 / 57. 76.100
   libavdevice    57.  7.100 / 57.  7.100
   libavfilter     6. 99.100 /  6. 99.100
   libswscale      4.  7.102 /  4.  7.102
   libswresample   2.  8.100 /  2.  8.100
   libpostproc    54.  6.100 / 54.  6.100
 Input #0, image2, from 'out/480p-h264.jpg':
   Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown),
 864x480 [SAR 96:96 DAR 9:5], 25 fps, 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [swscaler @ 0x55df620] deprecated pixel format used, make sure you did set
 range correctly
 [libx264 @ 0x514eb40] using SAR=1/1
 [libx264 @ 0x514eb40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
 AVX
 [libx264 @ 0x514eb40] profile High 4:2:2, level 3.1, 4:2:2 8-bit
 [libx264 @ 0x514eb40] 264 - core 152 r19 ba24899 - H.264/MPEG-4 AVC codec
 - Copyleft 2003-2017 - 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=1
 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=25
 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=500
 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 [hls @ 0x514c340] Opening 'out/init.mp4' for writing
 Output #0, hls, to 'out/480p-h264.m3u8':
   Metadata:
     encoder         : Lavf57.76.100
     Stream #0:0: Video: h264 (libx264), yuvj422p(pc), 864x480 [SAR 1:1 DAR
 9:5], q=-1--1, 500 kb/s, 30 fps, 15360 tbn, 30 tbc
     Metadata:
       encoder         : Lavc57.102.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/500000 buffer size: 0 vbv_delay: -1
 [hls @ 0x514c340] Opening 'out/480p-h2640.m4s' for writing
 [hls @ 0x514c340] Opening 'out/480p-h264.m3u8.tmp' for writing
 [hls @ 0x514c340] Opening 'out/480p-h2641.m4s' for writinge=N/A dup=43
 drop=0 speed=2.82x
 [hls @ 0x514c340] Opening 'out/480p-h264.m3u8.tmp' for writing
 [hls @ 0x514c340] Opening 'out/480p-h2642.m4s' for writinge=N/A dup=83
 drop=0 speed=3.02x
 [hls @ 0x514c340] Opening 'out/480p-h264.m3u8.tmp' for writing
 [hls @ 0x514c340] Opening 'out/480p-h2643.m4s' for writinge=N/A dup=130
 drop=0 speed=3.05x
 [hls @ 0x514c340] Opening 'out/480p-h264.m3u8.tmp' for writing
 [hls @ 0x514c340] Opening 'out/480p-h264.m3u8.tmp' for writingA dup=147
 drop=0 speed=3.07x
 frame=  900 fps= 95 q=0.0 Lsize=N/A time=00:00:29.90 bitrate=N/A dup=150
 drop=0 speed=3.15x
 video:820kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 [libx264 @ 0x514eb40] frame I:4     Avg QP: 6.10  size: 22216
 [libx264 @ 0x514eb40] frame P:300   Avg QP: 4.17  size:  1407
 [libx264 @ 0x514eb40] frame B:596   Avg QP: 8.97  size:   550
 [libx264 @ 0x514eb40] consecutive B-frames:  0.7% 16.9% 48.7% 33.8%
 [libx264 @ 0x514eb40] mb I  I16..4: 81.0%  3.1% 15.9%
 [libx264 @ 0x514eb40] mb P  I16..4:  0.1%  0.0%  0.2%  P16..4:  1.2%  0.3%
 0.4%  0.0%  0.0%    skip:97.7%
 [libx264 @ 0x514eb40] mb B  I16..4:  0.1%  0.0%  0.1%  B16..8:  0.9%  0.1%
 0.2%  direct: 0.0%  skip:98.6%  L0:50.3% L1:44.8% BI: 4.9%
 [libx264 @ 0x514eb40] final ratefactor: -3.60
 [libx264 @ 0x514eb40] 8x8 transform intra:5.9% inter:23.3%
 [libx264 @ 0x514eb40] coded y,uvDC,uvAC intra: 18.7% 0.0% 0.0% inter: 0.4%
 0.0% 0.0%
 [libx264 @ 0x514eb40] i16 v,h,dc,p: 87% 12%  1%  0%
 [libx264 @ 0x514eb40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 20% 60%  1%  0%
 0%  0%  0%  0%
 [libx264 @ 0x514eb40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 17% 23%  9%  3%
 3%  3%  3%  2%
 [libx264 @ 0x514eb40] i8c dc,h,v,p: 100%  0%  0%  0%
 [libx264 @ 0x514eb40] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 0x514eb40] ref P L0: 75.7%  6.6% 15.1%  2.7%
 [libx264 @ 0x514eb40] ref B L0: 59.3% 31.6%  9.1%
 [libx264 @ 0x514eb40] ref B L1: 96.5%  3.5%
 [libx264 @ 0x514eb40] kb/s:223.61
 }}}

 H.265 version:
 {{{
 ffmpeg -y -loop 1 -f image2 -i out/480p-h265.jpg -vcodec hevc -r 30 -t 30
 \\n   -vf
 drawtext="fontsize=3:fontfile=VERDANA.TTF:timecode='00\:00\:00\:00':rate=30:text='TCR\:':fontsize=72:fontcolor='white':boxcolor=0x000000AA:box=1:x=10:y=10"
 \\n   -b:v 500k -hls_segment_type fmp4 -pix_fmt yuvj422p  -tag:v hvc1
 "out/480p-h265.m3u8"
 }}}

 H.265 output:
 {{{
 ffmpeg version N-86995-g28e9ba951d-static http://johnvansickle.com/ffmpeg/
 Copyright (c) 2000-2017 the FFmpeg developers
   built with gcc 6.4.0 (Debian 6.4.0-2) 20170724
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio
 --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-
 gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-
 libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopenjpeg --enable-libopus --enable-librtmp --enable-librubberband
 --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-
 libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-
 libzimg
   libavutil      55. 74.100 / 55. 74.100
   libavcodec     57.102.100 / 57.102.100
   libavformat    57. 76.100 / 57. 76.100
   libavdevice    57.  7.100 / 57.  7.100
   libavfilter     6. 99.100 /  6. 99.100
   libswscale      4.  7.102 /  4.  7.102
   libswresample   2.  8.100 /  2.  8.100
   libpostproc    54.  6.100 / 54.  6.100
 Input #0, image2, from 'out/480p-h265.jpg':
   Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown),
 864x480 [SAR 96:96 DAR 9:5], 25 fps, 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (mjpeg (native) -> hevc (libx265))
 Press [q] to stop, [?] for help
 Incompatible pixel format 'yuvj422p' for codec 'libx265', auto-selecting
 format 'yuv422p'
 [swscaler @ 0x52427a0] deprecated pixel format used, make sure you did set
 range correctly
 x265 [info]: HEVC encoder version 2.5+9-fdf39a97ecb8
 x265 [info]: build info [Linux][GCC 6.4.0][64 bit] 8bit+10bit+12bit
 x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
 x265 [info]: Main 4:2:2 10 profile, Level-3 (Main tier)
 x265 [info]: Thread pool created using 1 threads
 x265 [info]: Slices                              : 1
 x265 [info]: frame threads / pool features       : 1 / wpp(8 rows)
 x265 [warning]: Source height < 720p; disabling lookahead-slices
 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 / 2
 x265 [info]: Keyframe min / max / scenecut / bias: 25 / 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 / on / on
 x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
 x265 [info]: Rate Control / qCompress            : ABR-500 kbps / 0.60
 x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-
 smoothing
 x265 [info]: tools: deblock sao
 [hls @ 0x4b94780] Opening 'out/init.mp4' for writing
 Output #0, hls, to 'out/480p-h265.m3u8':
   Metadata:
     encoder         : Lavf57.76.100
     Stream #0:0: Video: hevc (libx265) (hvc1 / 0x31637668), yuv422p,
 864x480 [SAR 1:1 DAR 9:5], q=2-31, 500 kb/s, 30 fps, 15360 tbn, 30 tbc
     Metadata:
       encoder         : Lavc57.102.100 libx265
 [hls @ 0x4b94780] Opening 'out/480p-h2650.m4s' for writing
 [hls @ 0x4b94780] Opening 'out/480p-h265.m3u8.tmp' for writing
 [hls @ 0x4b94780] Opening 'out/480p-h2651.m4s' for writingte=N/A dup=46
 drop=0 speed=0.659x
 [hls @ 0x4b94780] Opening 'out/480p-h265.m3u8.tmp' for writing
 [hls @ 0x4b94780] Opening 'out/480p-h2652.m4s' for writingte=N/A dup=87
 drop=0 speed=0.676x
 [hls @ 0x4b94780] Opening 'out/480p-h265.m3u8.tmp' for writing
 [hls @ 0x4b94780] Opening 'out/480p-h2653.m4s' for writingte=N/A dup=128
 drop=0 speed=0.697x
 [hls @ 0x4b94780] Opening 'out/480p-h265.m3u8.tmp' for writing
 [hls @ 0x4b94780] Opening 'out/480p-h265.m3u8.tmp' for writing/A dup=149
 drop=0 speed=0.701x
 frame=  900 fps= 21 q=-0.0 Lsize=N/A time=00:00:29.90 bitrate=N/A dup=150
 drop=0 speed=0.706x
 video:1164kB audio:0kB subtitle:0kB other streams:0kB global headers:2kB
 muxing overhead: unknown
 x265 [info]: frame I:      4, Avg QP:8.80  kb/s: 5415.36
 x265 [info]: frame P:    223, Avg QP:3.82  kb/s: 440.64
 x265 [info]: frame B:    673, Avg QP:5.74  kb/s: 245.55
 x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
 x265 [info]: consecutive B-frames: 1.8% 31.3% 0.0% 2.6% 64.3%

 encoded 900 frames in 42.35s (21.25 fps), 316.87 kb/s, Avg QP:5.28

 }}}


 You can see the video fail to load on these pages respectively:
 http://seventhcycle.net/ffmpeg/hls_h264/
 http://seventhcycle.net/ffmpeg/hls_hevc/

 I'm not quite sure how to assign a bounty on this one, but I'd be willing
 to assign one to get FFmpeg to the point that it will make both H.264 and
 HEVC HLS fragments that playback on MacOS High Sierra and iOS 11.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6599>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list