[FFmpeg-user] Faststart fragmented mp4

alan1523 at aol.com alan1523 at aol.com
Sat Oct 3 16:30:40 CEST 2015


Carl, 


I just released i sent you a test with version 2.6.2 , I ran the test again with the snapshot  version 2.8. 

It looks like both the release and the snapshot versions skip adding the sidx when using fast start. What would be the specific movflag to specify sidx ? 

I was looking at the following notes to see what the flag might be : http://git.libav.org/?p=libav.git;a=commitdiff;h=26ac22e5e7394346e9d59f800e7d4e91f4518d33 <http://git.libav.org/?p=libav.git;a=commitdiff;h=26ac22e5e7394346e9d59f800e7d4e91f4518d33> 

I tried ( -movflags sidx , -movflags global_sidx ) but I dont think its correct. 

Thanks,
Alan



bash-3.2$ /Volumes/storage/ffmpeg/2_8_7/ffmpeg -y -i "/Volumes/storage/rendertemp/in/input.mp4" -movflags faststart -frag_duration 1000 -codec:v libx264 -profile:v baseline -pix_fmt yuv420p -b:v 500k -codec:a aac -b:a 96k -strict -2 -s 426x240 -threads 0 "/Volumes/storage/rendertemp/out/output.mp4"
ffmpeg version 2.8-tessus Copyright (c) 2000-2015 the FFmpeg developers
  built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb
  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
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Volumes/storage/rendertemp/in/input.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2014-06-26 18:57:18
  Duration: 00:00:10.00, start: 0.000000, bitrate: 36344 kb/s
    Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le(bt709), 1920x1080, 34796 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2014-06-26 18:57:18
      handler_name    : Apple Alias Data Handler
      encoder         : Apple ProRes 422 (HQ)
      timecode        : 01:00:00:00
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2014-06-26 18:57:18
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2014-06-26 18:57:39
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
[libx264 @ 0x7f918a805e00] using SAR=640/639
[libx264 @ 0x7f918a805e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x7f918a805e00] profile Constrained Baseline, level 2.1
[libx264 @ 0x7f918a805e00] 264 - core 146 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 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
Output #0, mp4, to '/Volumes/storage/rendertemp/out/output.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    encoder         : Lavf56.40.101
    Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 426x240 [SAR 640:639 DAR 16:9], q=-1--1, 500 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2014-06-26 18:57:18
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
      encoder         : Lavc56.60.100 libx264
    Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 96 kb/s (default)
    Metadata:
      creation_time   : 2014-06-26 18:57:18
      handler_name    : Apple Alias Data Handler
      encoder         : Lavc56.60.100 aac
Stream mapping:
  Stream #0:0 -> #0:0 (prores (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
frame=   50 fps=0.0 q=0.0 size=       0kB time=00:00:01.96 bitrate=   0.1kbits/sframe=  100 fps= 99 q=11.0 size=      98kB time=00:00:04.71 bitrate= 170.4kbits/fframe=  250 fps= 97 q=-1.0 Lsize=     598kB time=00:00:10.00 bitrate= 489.2kbits/s    ps= 99 q=3.0 size=     330kB time=00:00:07.97 bitrate= 339.1kbits/s    
video:392kB audio:118kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 17.320520%
[libx264 @ 0x7f918a805e00] frame I:1     Avg QP:18.29  size:  3102
[libx264 @ 0x7f918a805e00] frame P:249   Avg QP: 2.27  size:  1596
[libx264 @ 0x7f918a805e00] mb I  I16..4: 84.9%  0.0% 15.1%
[libx264 @ 0x7f918a805e00] mb P  I16..4:  0.8%  0.0%  0.3%  P16..4: 28.4%  0.2%  0.3%  0.0%  0.0%    skip:70.0%
[libx264 @ 0x7f918a805e00] final ratefactor: -0.03
[libx264 @ 0x7f918a805e00] coded y,uvDC,uvAC intra: 39.9% 60.7% 40.0% inter: 13.2% 11.6% 11.3%
[libx264 @ 0x7f918a805e00] i16 v,h,dc,p: 76% 20%  4%  0%
[libx264 @ 0x7f918a805e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 26% 24%  7%  3%  2%  4%  4%  3%
[libx264 @ 0x7f918a805e00] i8c dc,h,v,p: 36% 26% 37%  1%
[libx264 @ 0x7f918a805e00] ref P L0: 98.2%  0.9%  0.9%
[libx264 @ 0x7f918a805e00] kb/s:320.38
bash-3.2$ 



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



> On Oct 3, 2015, at 9:23 AM, alan1523 at aol.com wrote:
> 
> Carl, 
> 
> I attempted the cli call below on the dev branch as well as on the release. 
> 
> When I try on the dev branch it gives an error of : [mp4 @ 0x7fa099012200] Starting second pass: inserting sidx atoms Non-consecutive fragments, writing incorrect sidx
> 
> When I try on the release branch it skips the second pass completely. 
> 
> Thanks,
> Alan
> 
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> bash-3.2# ffmpeg -y -i "/Volumes/storage/rendertemp/in/input.mp4" -movflags faststart -frag_duration 1000 -codec:v libx264 -profile:v baseline -pix_fmt yuv420p -b:v 500k -codec:a aac -b:a 96k -strict -2 -s 426x240 -threads 0 "/Volumes/storage/rendertemp/out/output.mp4"
> ffmpeg version 2.6.2-tessus Copyright (c) 2000-2015 the FFmpeg developers
>   built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
>   configuration: --cc=/usr/bin/clang --prefix=/Users/helmutt/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-libsoxr --enable-libwavpack --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --disable-indev=qtkit --disable-indev=x11grab_xcb --enable-runtime-cpudetect
>   libavutil      54. 20.100 / 54. 20.100
>   libavcodec     56. 26.100 / 56. 26.100
>   libavformat    56. 25.101 / 56. 25.101
>   libavdevice    56.  4.100 / 56.  4.100
>   libavfilter     5. 11.102 /  5. 11.102
>   libswscale      3.  1.101 /  3.  1.101
>   libswresample   1.  1.100 /  1.  1.100
>   libpostproc    53.  3.100 / 53.  3.100
> Guessed Channel Layout for  Input Stream #0.1 : stereo
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Volumes/storage/rendertemp/in/input.mp4':
>   Metadata:
>     major_brand     : qt  
>     minor_version   : 537199360
>     compatible_brands: qt  
>     creation_time   : 2014-06-26 18:57:18
>   Duration: 00:00:10.00, start: 0.000000, bitrate: 36344 kb/s
>     Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le(bt709), 1920x1080, 34796 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc (default)
>     Metadata:
>       creation_time   : 2014-06-26 18:57:18
>       handler_name    : Apple Alias Data Handler
>       encoder         : Apple ProRes 422 (HQ)
>       timecode        : 01:00:00:00
>     Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
>     Metadata:
>       creation_time   : 2014-06-26 18:57:18
>       handler_name    : Apple Alias Data Handler
>     Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
>     Metadata:
>       creation_time   : 2014-06-26 18:57:39
>       handler_name    : Apple Alias Data Handler
>       timecode        : 01:00:00:00
> [libx264 @ 0x7fa099012e00] using SAR=640/639
> [libx264 @ 0x7fa099012e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
> [libx264 @ 0x7fa099012e00] profile Constrained Baseline, level 2.1
> [libx264 @ 0x7fa099012e00] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html <http://www.videolan.org/x264.html> - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 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
> Output #0, mp4, to '/Volumes/storage/rendertemp/out/output.mp4':
>   Metadata:
>     major_brand     : qt  
>     minor_version   : 537199360
>     compatible_brands: qt  
>     encoder         : Lavf56.25.101
>     Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 426x240 [SAR 640:639 DAR 16:9], q=-1--1, 500 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
>     Metadata:
>       creation_time   : 2014-06-26 18:57:18
>       handler_name    : Apple Alias Data Handler
>       timecode        : 01:00:00:00
>       encoder         : Lavc56.26.100 libx264
>     Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 96 kb/s (default)
>     Metadata:
>       creation_time   : 2014-06-26 18:57:18
>       handler_name    : Apple Alias Data Handler
>       encoder         : Lavc56.26.100 aac
> Stream mapping:
>   Stream #0:0 -> #0:0 (prores (native) -> h264 (libx264))
>   Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
> Press [q] to stop, [?] for help
> frame=   53 fps=0.0 q=0.0 size=       0kB time=00:00:02.94 bitrate=   0.1kbits/sframe=  108 fps=107 q=10.0 size=     115kB time=00:00:04.94 bitrate= 190.5kbits/frame=  162 fps=107 q=5.0 size=     239kB time=00:00:06.95 bitrate= 281.5kbits/sframe=  217 fps=108 q=2.0 size=     375kB time=00:00:08.93 bitrate= 343.9kbits/s[mp4 @ 0x7fa099012200] Starting second pass: inserting sidx atoms
> Non-consecutive fragments, writing incorrect sidx
>     Last message repeated 863 times
> frame=  250 fps=105 q=-1.0 Lsize=     609kB time=00:00:10.00 bitrate= 498.6kbits/s    
> video:392kB audio:118kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 19.531601%
> [libx264 @ 0x7fa099012e00] frame I:1     Avg QP:18.29  size:  3102
> [libx264 @ 0x7fa099012e00] frame P:249   Avg QP: 2.27  size:  1596
> [libx264 @ 0x7fa099012e00] mb I  I16..4: 84.9%  0.0% 15.1%
> [libx264 @ 0x7fa099012e00] mb P  I16..4:  0.8%  0.0%  0.3%  P16..4: 28.4%  0.2%  0.3%  0.0%  0.0%    skip:70.0%
> [libx264 @ 0x7fa099012e00] final ratefactor: -0.03
> [libx264 @ 0x7fa099012e00] coded y,uvDC,uvAC intra: 39.9% 60.7% 40.0% inter: 13.2% 11.6% 11.3%
> [libx264 @ 0x7fa099012e00] i16 v,h,dc,p: 76% 20%  4%  0%
> [libx264 @ 0x7fa099012e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 26% 24%  7%  3%  2%  4%  4%  3%
> [libx264 @ 0x7fa099012e00] i8c dc,h,v,p: 36% 26% 37%  1%
> [libx264 @ 0x7fa099012e00] ref P L0: 98.2%  0.9%  0.9%
> [libx264 @ 0x7fa099012e00] kb/s:320.38
>> On Oct 2, 2015, at 9:57 PM, Carl Eugen Hoyos <cehoyos at ag.or.at <mailto:cehoyos at ag.or.at>> wrote:
>> 
>> alan1523 <at> aol.com <http://aol.com/> <alan1523 <at> aol.com <http://aol.com/>> writes:
>> 
>>> Is it possible to have a single cli request the create 
>>> an x264 .mp4 file that is fragmented as well have its
>>> moov atom shifted to the start to be able to do fast 
>>> start streaming ?
>> 
>> Please test the global_sidx flag.
>> 
>> Carl Eugen
>> 
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org <mailto:ffmpeg-user at ffmpeg.org>
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> 



More information about the ffmpeg-user mailing list