Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to use ffmpeg to transform an mp4 video file into avi but with the same quality, even if it takes up more space. If I simply do:

ffmpeg -i file.mp4 file.mp4.avi

The resulting avi file is very low-quality and pixelated. How can I do this transformation while keeping the video and audio quality?

share|improve this question
You can use -sameq switch, which will put same video codec (assuming H264) in AVI container. If your player does not support H264 in AVI, then you need to transcode best possible video format (H264) to some mediocre format, which is no good. Then you assign higher video bitrate XVID (let's say 2000 Kb/s). Audio doesn't matter that much IMHO, but better to convert to MP3 then AC3 – zetah Nov 27 '11 at 14:16
up vote 11 down vote accepted

You always lose a little quality whenever you transcode from one codec to another, video or audio, but perhaps you can avoid it if you only want to change from MP4 container type to an AVI container. codec:copy may be helpful if you don't have a reason to transcode (and it should be faster).

If you must transcode because you need to use a particular video codec I hope you can use zetah's suggestion above in his comment and use the -sameq switch. Alternatively, you may want to use the qscale option to set the quality manually. The higher the number the better the quality, but the more space your file will take.

The last time I transcoded video I used qscale=8.0, but I'd suggest that you experiment to find the optimum to match the quality of your input.

Marty Jay helpfully mentions that sameq means same quantizer as in the input, which may not result in the same quality. The article he quotes mentions using multi-pass conversion, which is a good way to achieve better compression without sacrificing quality.

share|improve this answer
Thanks for the tips, I'll try -sameq see how it goes. – 719016 May 19 '12 at 14:53
-sameq does NOT mean same quality;… – user100278 Oct 23 '12 at 19:58
It seems to be recommended to use the -qscale 0 option – user989762 Mar 6 '15 at 2:08

Here is my 2-pass (Advanced Simple Profile) I use now and then.

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.