[Ffmpeg-devel] [BUG] -vframes with x264 encoding and b frames
Baptiste Coudurier
baptiste.coudurier
Tue Oct 31 12:43:49 CET 2006
Hi
I just spotted a bug when using -vframes with h264 encoding (x264):
ffmpeg -vframes 100 -i file.mpg -vcodec h264 -bf 2 test.h264
FFmpeg version SVN-r6848, Copyright (c) 2000-2006 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-faac --enable-dts --enable-a52
--enable-x264 --enable-faad --enable-static --enable-mp3lame
--enable-pthreads --enable-xvid --enable-pp --enable-amr_nb --enable-amr_wb
libavutil version: 49.0.2
libavcodec version: 51.23.0
libavformat version: 50.6.0
built on Oct 31 2006 11:56:20, gcc: 4.1.2 20061028 (prerelease)
(Debian 4.1.1-19)
Seems that stream 0 comes from film source: 25.00 (25025/1001) -> 25.00
(25/1)
Input #0, mpeg, from 'file.mpg':
Duration: 00:00:24.1, start: 0.220000, bitrate: 11959 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv422p, 720x608, 11386 kb/s,
25.00 fps(r)
Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, 384 kb/s
File 'test.h264' already exists. Overwrite ? [y/N] y
Output #0, h264, to 'test.h264':
Stream #0.0: Video: h264, yuv420p, 720x608, q=2-31, 200 kb/s, 25.00 fps(c)
Stream mapping:
Stream #0.0 -> #0.0
[h264 @ 0x85dd338]using SAR=1/1
[h264 @ 0x85dd338]using cpu capabilities MMX MMXEXT SSE SSE2
Press [q] to stop encoding
frame= 100 q=31.0 Lsize= 292kB time=3.9 bitrate= 616.3kbits/s
video:292kB audio:0kB global headers:0kB muxing overhead 0.000000%
[h264 @ 0x85dd338]slice I:9 Avg QP:31.00 size: 7526
[h264 @ 0x85dd338]slice P:33 Avg QP:31.00 size: 4165
[h264 @ 0x85dd338]slice B:56 Avg QP:33.00 size: 1659
[h264 @ 0x85dd338]mb I I16..4: 80.7% 0.0% 19.3%
[h264 @ 0x85dd338]mb P I16..4: 22.1% 0.0% 0.0% P16..4: 14.4% 0.0%
0.0% 0.0% 0.0% skip:63.5%
[h264 @ 0x85dd338]mb B I16..4: 5.5% 0.0% 0.0% B16..8: 15.4% 0.0%
0.0% direct: 0.9% skip:78.2%
[h264 @ 0x85dd338]final ratefactor: 38.75
[h264 @ 0x85dd338]SSIM Mean Y:0.9726804
[h264 @ 0x85dd338]kb/s:608.3
x264 clearly says total frames number is 98.
Increasing number to 101 gives 99, 102 gives 100, 103 gives 101.
Now when not using bf 2:
ffmpeg -vframes 100 -i file.mpg -vcodec h264 test.h264
[h264 @ 0x85dd338]using SAR=1/1
[h264 @ 0x85dd338]using cpu capabilities MMX MMXEXT SSE SSE2
Press [q] to stop encoding
frame= 100 q=31.0 Lsize= 321kB time=4.0 bitrate= 657.9kbits/s
video:321kB audio:0kB global headers:0kB muxing overhead 0.000000%
[h264 @ 0x85dd338]slice I:9 Avg QP:29.33 size: 8460
[h264 @ 0x85dd338]slice P:91 Avg QP:31.00 size: 2770
[h264 @ 0x85dd338]mb I I16..4: 78.9% 0.0% 21.1%
[h264 @ 0x85dd338]mb P I16..4: 12.8% 0.0% 0.0% P16..4: 16.0% 0.0%
0.0% 0.0% 0.0% skip:71.2%
[h264 @ 0x85dd338]final ratefactor: 38.67
[h264 @ 0x85dd338]SSIM Mean Y:0.9752094
[h264 @ 0x85dd338]kb/s:656.4
Final count is correctly 100 frames.
The bug does not appear when using lavc mpeg4 encoder with b frames.
--
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
SMARTJOG S.A. http://www.smartjog.com
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312
More information about the ffmpeg-devel
mailing list