Page 1 of 1

BUG: VLC will not encode mp1v/mp2v at certain frame rates

Posted: 30 Oct 2005 01:35
by Reven
[edit: The original subject was "Problems encoding mp1v/mp2v with certain video sources", but as discovered the source of the problem was the frame rate, I changed the title.]

I have had problems encoding mpeg videos. With certain inputs, mpeg encoding works fine. With others, I cannot get any video frames in the output.

For example, consider the following output stream settings:
  • File output with 'play locally' also set
  • MPEG 1 encapsulation
  • mp1v video codec @ 1024 kb/s
  • mpga audio codec @ 192 kb/s
The GUI produces this as the stream output command-line for the above settings:
:sout=#transcode{vcodec=mp1v,vb=1024,scale=1,acodec=mpga,ab=192,channels=2}:duplicate{dst=display,dst=std{access=file,mux=mpeg1,url="D:\Documents and Settings\Kurt\Desktop\test2.mpg"}}

When the input is a file, or a capture device, the resulting output file has no video frames. VLC won't even do the local playback of the video. When the output is a network stream, it seems to work ok.

Non-functioning example: With the above output settings, VLC will write a .mpg file with no video frames if the following video clip (captured with an ASUS ATI 9600XP VIVO from a VHS video tape) is used as an input: http://members.shaw.ca/kfitzner/TestCapture.avi

Working example: With the same above output settings, VLC will write a good .mpg file if the following network stream is used as an input: mms://windowsmedia2.byu.edu/byutv250

At first I thought maybe the mp1v/mp2v codecs were being -- please stay polite -- about the input resolution, but both above examples are are 320x240 sources.

The above has been tried on 0.8.2, 0.8.4Test1a, and yesterday's daily build.

Posted: 30 Oct 2005 05:02
by Reven
Searching through the forums, I found someone else who reported encoding problems with mp1v at frame rates higher than 25 fps, so I decided to check to see if that was the problem I was seeing, and it was.

It seems that both the mp1v and mp2v simply refuse to output if the frame rate is higher than 25 fps. This makes creating 29.97 fps VCD/DVD problematic.

The good news is I can't see how this is anything except a configuration issue somewhere between VLC and the encoding library. Hopefully easy to fix? :D

For completeness sake, I have created another sample video clip to illustrate the problem:
http://members.shaw.ca/kfitzner/TestCapture.avi
http://members.shaw.ca/kfitzner/TestCapture25.avi

The videos are identical in every way except the first one is NTSC 29.97 fps and the second is 25fps. VLC will refuse to output any video if the first is transcoded to mp1v or mp2v. VLC will transcode the second with no problems.

Posted: 03 May 2006 22:55
by Reven
I have just tested 0.8.5-test4, and this bug still exists.

No offense, but I'm feeling like a broken record being the only one posting in this thread. Is there a bug tracking system for VLC? Is there any way I can tell that someone official has even taken notice of the report?

Posted: 03 May 2006 23:01
by Gujs
Just try to add fps=25 in your transcode options!

Posted: 03 May 2006 23:21
by Reven
This causes VLC to alter the frame rate of the source. This might work around the bug, but it also causes poorer quality output. It means a loss of about one in every six frames and inter-frame timing for the rest of the frames is then off by 16% of what the original was. This causes a noticable stutter in the output every 10th of a second.

It also doesn't change the fact that users are still prevented from having 29.97fps output.

Posted: 04 May 2006 11:10
by xtophe
Have you tried 30 ( maybe it just doesn't like the .97)

Also open view/messages before playing/transcoding and look at the errors and debug