[FFmpeg-devel] [PATCH 1/2] avformat/dashenc: Fix the EXT-X-TARGETDURATION as per the hls specification

Steven Liu lingjiujianke at gmail.com
Thu Dec 21 18:45:43 EET 2017


2017-12-22 0:37 GMT+08:00 Jeyapal, Karthick <kjeyapal at akamai.com>:
>
>
>>On 12/21/17, 9:47 PM, "Steven Liu" <lingjiujianke at gmail.com> wrote:
>>
>>I cannot sure if this patch can fix the problem playlist target
>>duration not same.
>>
>>MacBook:xxx StevenLiu$ ./ffmpeg -hide_banner -i
>>~/bbb_sunflower_1080p_30fps_normal.mp4 -g 150 -r 100 -x264opts
>>"scenecut=-1" -f dash -min_seg_duration 1000000 -window_size 99999 -t
>>5 -hls_playlist 1 output_Steven.mpd
> That is because the key frames are not getting inserted at the 1 second segment duration.
Maybe you didn't get the point, i want to say, that is not
EXT-X-TARGETDURATION and EXTINF's problem, it's just need align in
multi playlist.
BTW, user not need use  -force_key_frames, just looks like  ffmpeg -i
input -c copy -f dash xxx.output, then where is the keyframe we don't
know, the keyframe's interval cannot control by user, just copy from
source media file.


Thanks



> Please add the option -force_key_frames “expr:gte(t,n_forced*1)” in order to generate segments with exact 1 second duration.
>
> akamai at akamai-VirtualBox:~/ffmpeg$ ./ffmpeg -hide_banner -i ~/Downloads/big_buck_bunny_1080p_stereo.avi -g 150 -r 100 -force_key_frames "expr:gte(t,n_forced*1)" -x264opts "scenecut=-1" -f dash -min_seg_duration 1000000 -window_size 99999 -t 5 -hls_playlist 1 /tmp/output_Steven.mpd
> Input #0, avi, from '/home/akamai/Downloads/big_buck_bunny_1080p_stereo.avi':
>   Metadata:
>     encoder         : MEncoder 2:1.0~rc2-0ubuntu13
>   Duration: 00:09:56.46, start: 0.000000, bitrate: 9586 kb/s
>     Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 1920x1080, 9328 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
>     Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 245 kb/s
> Stream mapping:
>   Stream #0:0 -> #0:0 (msmpeg4v2 (native) -> h264 (libx264))
>   Stream #0:1 -> #0:1 (mp3 (native) -> aac (native))
> Press [q] to stop, [?] for help
> [libx264 @ 0xe513c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
> [libx264 @ 0xe513c0] profile High, level 5.1
> [libx264 @ 0xe513c0] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=6 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=150 keyint_min=15 scenecut=0 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
> [dash @ 0xe4dc60] No bit rate set for stream 0
> [dash @ 0xe4dc60] Opening '/tmp/init-stream0.m4s' for writing
> [dash @ 0xe4dc60] Opening '/tmp/init-stream1.m4s' for writing
> [dash @ 0xe4dc60] Opening '/tmp/output_Steven.mpd.tmp' for writing
> Bandwidth info not available, set audio and video bitrates
> Output #0, dash, to '/tmp/output_Steven.mpd':
>   Metadata:
>     encoder         : Lavf58.3.100
>     Stream #0:0: Video: h264 (libx264), yuv420p, 1920x1080, q=-1--1, 100 fps, 12800 tbn, 100 tbc
>     Metadata:
>       encoder         : Lavc58.8.100 libx264
>     Side data:
>       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
>     Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s
>     Metadata:
>       encoder         : Lavc58.8.100 aac
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream0-00001.m4s.tmp' for writing drop=0 speed=0.67x
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream1-00001.m4s.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/output_Steven.mpd.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream0-00002.m4s.tmp' for writing drop=0 speed=0.55x
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream1-00002.m4s.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/output_Steven.mpd.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream0-00003.m4s.tmp' for writing drop=0 speed=0.552x
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream1-00003.m4s.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/output_Steven.mpd.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream0-00004.m4s.tmp' for writing drop=0 speed=0.543x
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream1-00004.m4s.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/output_Steven.mpd.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream0-00005.m4s.tmp' for writing drop=0 speed=0.507x
> [dash @ 0xe4dc60] Opening '/tmp/chunk-stream1-00005.m4s.tmp' for writing
> [dash @ 0xe4dc60] Opening '/tmp/output_Steven.mpd.tmp' for writing
> frame=  500 fps= 46 q=-1.0 Lsize=N/A time=00:00:05.01 bitrate=N/A dup=380 drop=0 speed=0.462x
> video:1902kB audio:78kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
> [libx264 @ 0xe513c0] frame I:5     Avg QP:16.48  size: 61803
> [libx264 @ 0xe513c0] frame P:177   Avg QP:20.84  size:  8582
> [libx264 @ 0xe513c0] frame B:318   Avg QP:20.45  size:   376
> [libx264 @ 0xe513c0] consecutive B-frames: 12.2%  0.8% 24.6% 62.4%
> [libx264 @ 0xe513c0] mb I  I16..4: 37.3% 59.0%  3.7%
> [libx264 @ 0xe513c0] mb P  I16..4:  2.8% 13.1%  0.1%  P16..4: 12.0%  2.3%  1.8%  0.0%  0.0%    skip:67.9%
> [libx264 @ 0xe513c0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  4.8%  0.0%  0.0%  direct: 0.1%  skip:95.1%  L0:76.2% L1:23.6% BI: 0.3%
> [libx264 @ 0xe513c0] 8x8 transform intra:78.6% inter:67.3%
> [libx264 @ 0xe513c0] coded y,uvDC,uvAC intra: 8.6% 17.6% 3.8% inter: 1.2% 2.5% 0.4%
> [libx264 @ 0xe513c0] i16 v,h,dc,p: 67% 20%  9%  4%
> [libx264 @ 0xe513c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 44% 16% 37%  0%  0%  0%  0%  0%  0%
> [libx264 @ 0xe513c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 11% 10%  6%  8%  8%  7%  6%  7%
> [libx264 @ 0xe513c0] i8c dc,h,v,p: 68% 18% 13%  1%
> [libx264 @ 0xe513c0] Weighted P-Frames: Y:24.9% UV:13.0%
> [libx264 @ 0xe513c0] ref P L0: 78.7% 10.4%  9.2%  1.7%  0.0%
> [libx264 @ 0xe513c0] ref B L0: 88.5% 10.4%  1.1%
> [libx264 @ 0xe513c0] ref B L1: 96.6%  3.4%
> [libx264 @ 0xe513c0] kb/s:3115.94
> [aac @ 0xe51d20] Qavg: 467.452
> akamai at akamai-VirtualBox:~/ffmpeg$ cat /tmp/media_0.m3u8
> #EXTM3U
> #EXT-X-VERSION:6
> #EXT-X-TARGETDURATION:1
> #EXT-X-MEDIA-SEQUENCE:1
> #EXT-X-MAP:URI="init-stream0.m4s"
> #EXTINF:1.000000,
> chunk-stream0-00001.m4s
> #EXTINF:1.000000,
> chunk-stream0-00002.m4s
> #EXTINF:1.000000,
> chunk-stream0-00003.m4s
> #EXTINF:1.000000,
> chunk-stream0-00004.m4s
> #EXTINF:1.000000,
> chunk-stream0-00005.m4s
> #EXT-X-ENDLIST
> akamai at akamai-VirtualBox:~/ffmpeg$ cat /tmp/media_1.m3u8
> #EXTM3U
> #EXT-X-VERSION:6
> #EXT-X-TARGETDURATION:1
> #EXT-X-MEDIA-SEQUENCE:1
> #EXT-X-MAP:URI="init-stream1.m4s"
> #EXTINF:0.981333,
> chunk-stream1-00001.m4s
> #EXTINF:1.002667,
> chunk-stream1-00002.m4s
> #EXTINF:1.002667,
> chunk-stream1-00003.m4s
> #EXTINF:1.002667,
> chunk-stream1-00004.m4s
> #EXTINF:1.010667,
> chunk-stream1-00005.m4s
> #EXT-X-ENDLIST
>
> Thanks and regards,
> Karthick
>>
>>
>>Thanks
>>
>>Steven
>
>


More information about the ffmpeg-devel mailing list