I have been searching a lot and I can't find a solution.

How do you convert a video from MPEG-4 to MPEG-2?

That shouldn't be too hard. But the avconv man pages don't give enough info to do this right. If I just do

avconv -i input.mp4 output.mpeg

it does create an MPEG-2 file, but it's unwatchable - the image quality is horrible. The size of the file on disk also is about a third of the size of the input file.
So obviously I need to set some parameter to some value that preserves the quality, and that's where the troubles start.

I began with trying the -b parameter, like so

avconv -i input.mp4 -b 384k output.mpeg

but that didn't really improve things. It was possible to decrease the quality even further, by using a lower number, but higher than 384k always gave me an error. So -b is not the right parameter to use, obviously.

I tried many other things, and I could post everything here, and the results, what went wrong, which pages I read trying to find the solutions, but that would be a long and boring list of parameters and error messages and frustrations, so I will spare you these. By now I just want to know what I should use to get a decent picture.

  • What about avconv -i 1.mp4 -c:v mpeg2video -q:v 2 -c:a libmp3lame output.mpg like explained here? – user44370 Apr 1 '14 at 9:50
  • OK, that works really well. But now I get a warning saying "[mpeg @ 0x1ed0a20] VBV buffer size not set, muxing may fail." I don't know if that's a problem really. I also don't know how big I should set the VBV buffer before this warning goes away. – Mr Lister Apr 1 '14 at 17:17
  • You can make tests without libmp3lame and see if that solves it. It may be you multiplex things in a container that wasn't made for it. In any case please make an answer once you figure it out. Thanks! – user44370 Apr 1 '14 at 19:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.