[Ffmpeg-devel] [BUG] converting mpeg4/mp3 to mpeg2video/mp3

Cyrus A lists
Sat Nov 11 08:25:53 CET 2006


I have encountered a problem trying to reencode an mpeg4/mp3 avi into an 
mpeg2video/mp3 mpg file.

The original MPEG-4 file is captured from an ivtv video capture device 
with the following command:

[cyrus at wkyt ffmpeg_6967]$ ./ffmpeg -i /dev/video0 -async 1 -y -vcodec 
mpeg4 -acodec mp3 -t 2080 -b 1750k -ab 192 -ar 44100 -s 480x384 -vtag 
DX50 '/usr/local/apache-tomcat/webapps/ROOT/test_for_ffmpeg-devel.avi'
FFmpeg version SVN-r6967, Copyright (c) 2000-2006 Fabrice Bellard, et al.
  configuration:  --enable-mp3lame
  libavutil version: 49.0.2
  libavcodec version: 51.25.0
  libavformat version: 51.6.0
  built on Nov 11 2006 00:00:13, gcc: 4.1.1 20060525 (Red Hat 4.1.1-1)
Input #0, mpeg, from '/dev/video0':
  Duration: N/A, bitrate: 9984 kb/s
  Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480, 9600 kb/s, 
29.97 fps(r)
  Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, 384 kb/s
Output #0, avi, to 
'/usr/local/apache-tomcat/webapps/ROOT/test_for_ffmpeg-devel.avi':
  Stream #0.0: Video: mpeg4, yuv420p, 480x384, q=2-31, 1750 kb/s, 29.97 
fps(c)
  Stream #0.1: Audio: mp3, 44100 Hz, stereo, 192 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
[mp3 @ 0x964210]lame: output buffer too small (buffer index: 592, free 
bytes: 1712)
frame=  304 q=3.6 Lsize=    2570kB time=10.1 bitrate=2077.0kbits/s   
video:2258kB audio:238kB global headers:0kB muxing overhead 2.975545%

The resulting avi file can be downloaded here: 
http://wkyt.dynalias.com/test_for_ffmpeg-devel.avi . As you can see, the 
file looks good and plays perfectly.

The mpeg2video command I've been using (among others is):

[cyrus at wkyt ffmpeg_6967]$ ./ffmpeg -v 0 -b 600 -y  -i 
/usr/local/jakarta-tomcat/webapps/ROOT/test_for_ffmpeg-devel.avi -acodec 
mp3 -vcodec mpeg2video 
/usr/local/jakarta-tomcat/webapps/ROOT/test_for_ffmpeg-devel.mpg
FFmpeg version SVN-r6967, Copyright (c) 2000-2006 Fabrice Bellard, et al.
  configuration:  --enable-mp3lame
  libavutil version: 49.0.2
  libavcodec version: 51.25.0
  libavformat version: 51.6.0
  built on Nov 11 2006 00:00:13, gcc: 4.1.1 20060525 (Red Hat 4.1.1-1)

Seems that stream 0 comes from film source: 30000.00 (30000/1) -> 29.97 
(30000/1001)
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
invalid new backstep 590
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
invalid new backstep 591
frame=  292 q=31.0 Lsize=     560kB time=9.7 bitrate= 472.5kbits/s   
video:476kB audio:77kB global headers:0kB muxing overhead 1.267253%

Obviously, the invalid new backstep stuff is troubling. The resulting 
file can be found here:
http://wkyt.dynalias.com/test_for_ffmpeg-devel.mpg

As you may notice, the resulting mpg file plays perfectly in mplayer 
(and probably other open-source players I haven't tested). The problem 
is that the image gets all screwy when played in windows. You can still 
hear the audio, but the video goes psychedelic. I know most of you have 
the luxury of not using windows as I wish I could, but the users of my 
web applications do and therefore these files must play correctly in 
WMP. (I tried to do a screen capture, but the video area was blank.)

For testing in windows, try 
http://wkyt.dynalias.com/test_for_ffmpeg-devel.html . It has the DivX 
web player plugin code embedding and a link for downloading the mpg with 
a right-click.

I have tested a ton of ffmpeg revisions on this. The first revision that 
will compile on my machine (64-bit 2.6.18 kernel) was revision 4019 
which produces a serious video delay sync issue for the avi. Other 
revisions do strange things as well: 4526 produces an avi that 
skips/chirps at the end when played in the DivX web player. 4800 
produces a good avi, but the mpg is either blank (when reencoded with 
4800) or back to psychedelic (when reencoded with 6967). I also 
sporadically tried 4300 and 6801 in combination with the other revisions 
but nothing would work properly.

I'm kind of at the mercy of the wizards on this mailing list to take a 
look and fix the bug, or if there isn't a bug, tell me what I'm doing 
wrong.

As always, your help is greatly appreciated.

Cyrus













More information about the ffmpeg-devel mailing list