[FFmpeg-user] Past duration 0.999992 too large with x264/x265 high framerate elemental streams.

Andy Furniss adf.lists at gmail.com
Thu Mar 3 15:59:47 CET 2016


I know I can work round with -vsync 0, but it seems odd that 50/60 fps
elemental streams have this issue, even with no sound.

It doesn't seem to happen with containers or 25/30 fps so I guess it's
just some accuracy thing.

Initially noticed testing with 50fps y4m -> hevc -> y4m = extra frame.

+ lots of Past duration 0.999992 too large

Reducing below example to 1 frame still results in 2 frame output
(but no errors so I paste 10 frame version).

same result with -f rawvideo rather than y4m

ffmpeg -i /mnt/ramdisk/raw-422.y4m -vframes 10 -c:v libx264 
/mnt/ramdisk/out.264
ffmpeg version N-78859-g5afe918 Copyright (c) 2000-2016 the FFmpeg 
developers
   built with gcc 5.3.0 (GCC)
   configuration: --prefix=/usr --disable-doc --enable-gpl 
--enable-libzimg --enable-libvpx --enable-libx265 --enable-libmp3lame 
--enable-libx264
   libavutil      55. 19.100 / 55. 19.100
   libavcodec     57. 27.101 / 57. 27.101
   libavformat    57. 27.101 / 57. 27.101
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 38.100 /  6. 38.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100
Input #0, yuv4mpegpipe, from '/mnt/ramdisk/raw-422.y4m':
   Duration: 00:00:10.00, start: 0.000000, bitrate: 1658882 kb/s
     Stream #0:0: Video: rawvideo (Y42B / 0x42323459), yuv422p, 
1920x1080, 50 fps, 50 tbr, 50 tbn, 50 tbc
File '/mnt/ramdisk/out.264' already exists. Overwrite ? [y/N] y
No pixel format specified, yuv422p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x3d4be40] using cpu capabilities: MMX2 SSE2Fast LZCNT
[libx264 @ 0x3d4be40] profile High 4:2:2, level 4.2, 4:2:2 8-bit
Output #0, h264, to '/mnt/ramdisk/out.264':
   Metadata:
     encoder         : Lavf57.27.101
     Stream #0:0: Video: h264 (libx264), yuv422p, 1920x1080, q=-1--1, 50 
fps, 50 tbn, 50 tbc
     Metadata:
       encoder         : Lavc57.27.101 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=   10 fps=0.0 q=-1.0 Lsize=     281kB time=00:00:00.16 
bitrate=14374.9kbits/s speed=0.174x
video:281kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB 
muxing overhead: 0.000000%
[libx264 @ 0x3d4be40] frame I:1     Avg QP:28.06  size:155900
[libx264 @ 0x3d4be40] frame P:5     Avg QP:29.02  size: 20471
[libx264 @ 0x3d4be40] frame B:4     Avg QP:30.42  size:  7310
[libx264 @ 0x3d4be40] consecutive B-frames: 20.0% 80.0%  0.0%  0.0%
[libx264 @ 0x3d4be40] mb I  I16..4:  7.1% 76.5% 16.4%
[libx264 @ 0x3d4be40] mb P  I16..4:  0.0%  1.4%  0.0%  P16..4: 49.5% 
6.4%  9.8%  0.0%  0.0%    skip:32.8%
[libx264 @ 0x3d4be40] mb B  I16..4:  0.0%  0.2%  0.0%  B16..8: 47.9% 
0.5%  0.0%  direct: 0.4%  skip:50.9%  L0:42.7% L1:56.8% BI: 0.4%
[libx264 @ 0x3d4be40] 8x8 transform intra:78.0% inter:88.4%
[libx264 @ 0x3d4be40] coded y,uvDC,uvAC intra: 73.7% 94.2% 77.7% inter: 
9.3% 26.8% 4.8%
[libx264 @ 0x3d4be40] i16 v,h,dc,p: 12% 39% 22% 26%
[libx264 @ 0x3d4be40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  9% 20% 32%  5%  8% 
  5%  9%  4%  8%
[libx264 @ 0x3d4be40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 22% 15%  6%  9% 
  6% 11%  4%  6%
[libx264 @ 0x3d4be40] i8c dc,h,v,p: 58% 14% 18% 10%
[libx264 @ 0x3d4be40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x3d4be40] ref P L0: 64.0% 20.7% 12.3%  3.0%
[libx264 @ 0x3d4be40] ref B L0: 92.2%  7.8%
[libx264 @ 0x3d4be40] kb/s:11499.88


ffmpeg -i /mnt/ramdisk/out.264 out.y4m
ffmpeg version N-78859-g5afe918 Copyright (c) 2000-2016 the FFmpeg 
developers
   built with gcc 5.3.0 (GCC)
   configuration: --prefix=/usr --disable-doc --enable-gpl 
--enable-libzimg --enable-libvpx --enable-libx265 --enable-libmp3lame 
--enable-libx264
   libavutil      55. 19.100 / 55. 19.100
   libavcodec     57. 27.101 / 57. 27.101
   libavformat    57. 27.101 / 57. 27.101
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 38.100 /  6. 38.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100
Input #0, h264, from '/mnt/ramdisk/out.264':
   Duration: N/A, bitrate: N/A
     Stream #0:0: Video: h264 (High 4:2:2), yuv422p, 1920x1080, 50 fps, 
50 tbr, 1200k tbn, 100 tbc
File 'out.y4m' already exists. Overwrite ? [y/N] y
Output #0, yuv4mpegpipe, to 'out.y4m':
   Metadata:
     encoder         : Lavf57.27.101
     Stream #0:0: Video: wrapped_avframe, yuv422p, 1920x1080, q=2-31, 
200 kb/s, 50 fps, 50 tbn, 50 tbc
     Metadata:
       encoder         : Lavc57.27.101 wrapped_avframe
Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Past duration 0.999992 too large
     Last message repeated 8 times
frame=   11 fps=0.0 q=-0.0 Lsize=   44550kB time=00:00:00.24 
bitrate=1520643.9kbits/s dup=1 drop=0 speed=2.16x
video:5kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB 
muxing overhead: 849738.250000%


More information about the ffmpeg-user mailing list