[MPlayer-dev-eng] [BUG] libavcodec issue with bframes

Giacomo Comes comes at naic.edu
Wed Apr 26 18:28:01 CEST 2006


It is already known to some developers, but probably not to everybody that
current CVS does not encode properly using mencoder/libavcodec and bframes.

Here is how to check the bug.

Make 100 jpeg frames to encode:
# the following bash line will create 100 jpegs each one with the frame number
# included in the image
for ((a=1;a<101;a++)) ; do convert -size 100x75 xc:green -pointsize 24 -fill 'rgba(255,255,255,128)' -draw "gravity SouthEast text 12,42 '$a'" $(printf "%05d" $a).jpg ; done

# the following command line will make a (dvd) mpeg that has all the frames 
# correctly encoded.
mencoder -of mpeg -mpegopts vaspect=4/3:format=dvd -ovc lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:aspect=4/3:vrc_maxrate=7500:vbitrate=7500:vmax_b_frames=0 -o test.mpg mf://*.jpg  -fps 25.000  -ofps 25 -vf scale=720:576,harddup -oac copy

# the following command line will make a (dvd) mpeg where the frames 2 and 3 are
# not encoded.
mencoder -of mpeg -mpegopts vaspect=4/3:format=dvd -ovc lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:aspect=4/3:vrc_maxrate=7500:vbitrate=7500:vmax_b_frames=1 -o test.mpg mf://*.jpg  -fps 25.000  -ofps 25 -vf scale=720:576,harddup -oac copy

# Also adding the option -noskip to the last command line will make it to fail
# to create the mpeg with many error messages:
[mpeg2video @ 0x87c6e48]Error, Invalid timestamp=0, last=0:0.000 [0:0]

# The problem exists also with avi.
# next command makes an avi with all the frames:
mencoder -ovc lavc -lavcopts vcodec=mpeg4 -o test.avi mf://*.jpg -vf scale=800:600 -fps 25.000 -ofps 25 -oac copy

# next one has frames 2, 3 and 4 missing:
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vmax_b_frames=1 -o test.avi mf://*.jpg -vf scale=800:600 -fps 25.000 -ofps 25 -oac copy

# also adding the option -noskip the previous command fails with errors:
[mpeg4 @ 0x87c6e48]Error, Invalid timestamp=0, last=0  A-V:0.000 [0:0]

And last: the avi created with current CVS with bframes cannot be played with 
mplayer 1.0pre7 (avi without bframes can be played).

These problems have been recently introduced. I have tested CVS of 7th february
and it doesn't shows the missing frames problem.

Giacomo

P.S.
You can check the missing frames in two ways:
start mplayer and pause it immediatly and then press the Step Forward key (.)
or dump the frames with: mplayer -vo png test.avi




More information about the MPlayer-dev-eng mailing list