[FFmpeg-user] frame accurate durations

Belcampo belcampo at zonnet.nl
Tue May 29 22:55:07 CEST 2012


On May 29, 2012, at 9:40 PM, Chris Vincze wrote:

> Hi there,
> 
> I'm trying to split up a quicktime to render over multiple machines for a later concatenation, and having trouble getting the sections to be the right length.
> 
> These are the command line inputs, splitting the quicktime into chunks of 9 frames (this is a test clip, the usual renders are longer)
This can only be done this way if all frames are i-frames/keyframes. NON-All-Keyframe files you only can 'split' at 
a i-frame/keyframe and often they are not a 'regular' intervals.
Further your ffmpeg version is more than a year old.
> 
> /usr/local/bin/ffmpeg -i 'input.mov' -ss 0.0 -t 0.36 -vcodec v210 -y 'output[0-8].mov'
> /usr/local/bin/ffmpeg -i 'input.mov' -ss 0.36 -t 0.36 -vcodec v210 -y 'output[9-17].mov'
> /usr/local/bin/ffmpeg -i 'input.mov' -ss 0.72 -t 0.36 -vcodec v210 -y 'output[18-26].mov'
> /usr/local/bin/ffmpeg -i 'input.mov' -ss 1.08 -t 0.36 -vcodec v210 -y 'output[27-35].mov'
> etc
> 
> The start time is defined as: start_frame/framerate, so in this case 0/25, 9/25 18/25, etc... and the duration (t) is chunk_size/framerate, ie 9/25. (all calculations done as float).
> 
> The input clip here is h264, output uncompressed v210.
> 
> Some of the resulting sections are the right length, but some are one frame shorter, which produces jumps when concatenating them.
> 
> Below is the terminal output from one of the inaccurate length clips.
> 
> Is there a better way of being more accurate with the duration or is this a limitation inherent in ffmpeg?
> 
> 
> Many thanks
> 
> Chris
> 
> 
> 
> 
> FFmpeg version git-916dee9, Copyright (c) 2000-2011 the FFmpeg developers
>  built on Feb 14 2011 12:37:03 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
>  configuration:
>  libavutil    50. 37. 0 / 50. 37. 0
>  libavcore     0. 16. 1 /  0. 16. 1
>  libavcodec   52.112. 1 / 52.112. 1
>  libavformat  52. 99. 1 / 52. 99. 1
>  libavdevice  52.  2. 3 / 52.  2. 3
>  libavfilter   1. 75. 0 /  1. 75. 0
>  libswscale    0. 12. 0 /  0. 12. 0
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x10100b000] Could not find codec parameters (Data: tmcd / 0x64636D74, 0 kb/s)
> 
> Seems stream 0 codec frame rate differs from container frame rate: 5000.00 (5000/1) -> 25.00 (25/1)
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mpc/lot1/DataLab/docs/software/test_material/QT/FRAME_NO_h264.mov':
>  Metadata:
>    major_brand     : qt
>    minor_version   : 537199360
>    compatible_brands: qt
>    creation_time   : 2012-05-29 11:04:48
>  Duration: 00:00:04.00, start: 0.000000, bitrate: 449 kb/s
>    Stream #0.0(eng): Video: h264 (Main), yuv420p, 1920x1080, 438 kb/s, 25 fps, 25 tbr, 2500 tbn, 5k tbc
>    Metadata:
>      creation_time   : 2012-05-29 11:04:48
>    Stream #0.1(eng): Data: tmcd / 0x64636D74, 0 kb/s
>    Metadata:
>      creation_time   : 2012-05-29 11:04:56
> [buffer @ 0x100c03ea0] w:1920 h:1080 pixfmt:yuv420p
> [ffsink @ 0x100c040e0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
> [scale @ 0x100c04310] w:1920 h:1080 fmt:yuv420p -> w:1920 h:1080 fmt:yuv422p16le flags:0xa0000004
> [v210 @ 0x101023e00] bits per raw sample: 0 != 10-bit
> Output #0, mov, to '/mpc/lot1/DataLab/docs/software/test_material/QT/05-29_000_SZ[9-17].mov':
>  Metadata:
>    major_brand     : qt
>    minor_version   : 537199360
>    compatible_brands: qt
>    creation_time   : 2012-05-29 11:04:48
>    encoder         : Lavf52.99.1
>    Stream #0.0(eng): Video: v210, yuv422p16le, 1920x1080, q=2-31, 200 kb/s, 25 tbn, 25 tbc
>    Metadata:
>      creation_time   : 2012-05-29 11:04:48
> Stream mapping:
>  Stream #0.0 -> #0.0
> Press [q] to stop encoding
> [buffer @ 0x100c03ea0] Buffering several frames is not supported. Please consume all available frames before adding a new one.
> frame=    2 fps=  0 q=0.0 size=   10800kB time=0.08 bitrate=1105923.6kbits/s
> frame=    6 fps=  5 q=0.0 size=   32400kB time=0.24 bitrate=1105921.2kbits/s
>    Last message repeated 8 times
> frame=    8 fps=  4 q=0.0 Lsize=   43201kB time=0.32 bitrate=1105937.6kbits/s
> video:43200kB audio:0kB global headers:0kB muxing overhead 0.001596%
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list