[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