[FFmpeg-user] Turn off edit lists for dash muxer output

Bryan Huh bhh1988 at gmail.com
Thu May 10 08:54:56 EEST 2018


I've found that when producing dash, fragmented MP4 output, if the moov
atom (init segment) has an edit list in it, browsers are not good about
honoring it during playback. Ideally I can output the dash segments without
writing an edit list. I was hoping I can use the -use_editlist argument and
set it to 0, but that option seems to only be read in by the mov format,
not when using dash.

Modifying the code and forcing -use_editlist to 0 seems to give me what I
want.

1. Is this discouraged (i.e. does it cause problems for certain videos)?
2. Is there a way I can achieve the same thing via the command-line?

I've pasted my command output below (I'm using ffmpeg 2.8).

~/code/messingaround/jl/local> ~/code/ffmpeg/ffmpeg -y -threads 8 -i jl.mov
-t 10 -sn -map 0:0 -map 0:1 -c:v libx264 -force_key_frames
'expr:gte(t,n_forced*5)' -pix_fmt yuv420p -c:a libfdk_aac -ar 44100 -ab
128000 -ac 2 -profile:v:0 high -preset:v:0 superfast -crf:v:0 23
-maxrate:v:0 2000k -bufsize:v:0 2000k -f dash -use_editlist 0
-min_seg_duration 5000000 -use_timeline 0 file.tmp
ffmpeg version n2.8.14-1-g26755a8c6f Copyright (c) 2000-2018 the FFmpeg
developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame
--enable-libx264 --enable-openssl
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'jl.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2017-10-30 16:39:23
  Duration: 00:01:36.90, start: 0.183333, bitrate: 12632 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
640x1136, 12435 kb/s, 33.17 fps, 60 tbr, 60k tbn, 120k tbc (default)
    Metadata:
      creation_time   : 2017-10-30 16:39:23
      handler_name    : Core Media Data Handler
      encoder         : H.264
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 168 kb/s (default)
    Metadata:
      creation_time   : 2017-10-30 16:39:23
      handler_name    : Core Media Data Handler
[libx264 @ 0x7f8a06803800] using cpu capabilities: MMX2 SSE2Fast SSSE3
SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x7f8a06803800] profile High, level 3.2
[libx264 @ 0x7f8a06803800] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC
codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options:
cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1
psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12
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=1 keyint=250 keyint_min=25
scenecut=40 intra_refresh=0 rc_lookahead=0 rc=crf mbtree=0 crf=23.0
qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2000 vbv_bufsize=2000
crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 pb_ratio=1.30 aq=1:1.00
Output #0, dash, to 'file.tmp':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    encoder         : Lavf56.40.101
    Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021),
yuv420p, 640x1136, q=-1--1, max. 2000 kb/s, 60 fps, 15360 tbn, 60 tbc
(default)
    Metadata:
      creation_time   : 2017-10-30 16:39:23
      handler_name    : Core Media Data Handler
      encoder         : Lavc56.60.100 libx264
    Stream #0:1(und): Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040),
44100 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      creation_time   : 2017-10-30 16:39:23
      handler_name    : Core Media Data Handler
      encoder         : Lavc56.60.100 libfdk_aac
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
frame=  600 fps=521 q=-1.0 Lsize=N/A time=00:00:10.01 bitrate=N/A dup=308
drop=0
video:1407kB audio:148kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
[libx264 @ 0x7f8a06803800] frame I:5     Avg QP:10.99  size: 24254
[libx264 @ 0x7f8a06803800] frame P:205   Avg QP:18.58  size:  5533
[libx264 @ 0x7f8a06803800] frame B:390   Avg QP:18.05  size:   473
[libx264 @ 0x7f8a06803800] consecutive B-frames:  1.5% 24.0% 34.5% 40.0%
[libx264 @ 0x7f8a06803800] mb I  I16..4: 65.3% 16.1% 18.6%
[libx264 @ 0x7f8a06803800] mb P  I16..4: 10.4%  3.0%  0.4%  P16..4: 25.6%
0.0%  0.0%  0.0%  0.0%    skip:60.6%
[libx264 @ 0x7f8a06803800] mb B  I16..4:  0.4%  0.1%  0.0%  B16..8:  4.4%
0.0%  0.0%  direct: 2.2%  skip:92.9%  L0:21.9% L1:74.6% BI: 3.4%
[libx264 @ 0x7f8a06803800] 8x8 transform intra:20.2% inter:38.4%
[libx264 @ 0x7f8a06803800] coded y,uvDC,uvAC intra: 15.7% 16.3% 7.6% inter:
4.0% 4.9% 0.8%
[libx264 @ 0x7f8a06803800] i16 v,h,dc,p: 86%  9%  4%  1%
[libx264 @ 0x7f8a06803800] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 19% 22%  7%
6%  6%  6%  5%  7%
[libx264 @ 0x7f8a06803800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 22% 15%  6%
5%  4%  5%  4%  5%
[libx264 @ 0x7f8a06803800] i8c dc,h,v,p: 79% 10%  9%  3%
[libx264 @ 0x7f8a06803800] Weighted P-Frames: Y:20.5% UV:19.5%
[libx264 @ 0x7f8a06803800] kb/s:1152.05


More information about the ffmpeg-user mailing list