How to get better quality converting MP4 to WMV with ffmpeg?

54,983

Solution 1

Consider the following command instead (some outdated commands in the final answer section):

ffmpeg -i test.mp4 -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k test1.wmv

REFERENCES

Solution 2

You can simply use the -sameq parameter ("use same quantizer as source") which produces a much larger sized video file (227 MB) but with excellent quality.

ffmpeg -sameq -i test.mp4 -y -vf scale=-1:360 test1.wmv

In newer versions of ffmpeg flag '-sameq' has been removed. To achieve similar results one should use 'qscale' flag with 0 value:

ffmpeg -sameq -i test.mp4 -qscale 0 -vf scale=-1:360 test1.wmv

Solution 3

One thing I discovered after many frustrating attempts of enhancing the final quality was that if you don't specify a bitrate, it'll use a quite low average. Try -b 1000k for a starting point, and experiment increasing or decreasing it until you reach the desired result. Your file will be quite bigger or smaller, accordingly.

Solution 4

Working answer in 2020, producing an output video without blockiness:

ffmpeg -i input.mp4 -q:v 1 -q:a 1 output.wmv
Share:
54,983
Angry Dan
Author by

Angry Dan

web/software developer, .NET, C#, WPF, PHP, software trainer, English teacher, have philosophy degree, love languages, run marathons my tweets: http://www.twitter.com/edward_tanguay my runs: http://www.tanguay.info/run my code: http://www.tanguay.info/web my publications: PHP 5.3 training video (8 hours, video2brain) my projects: http://www.tanguay.info

Updated on July 18, 2022

Comments

  • Angry Dan
    Angry Dan almost 2 years

    I am converting MP4 files to WMV with these two rescaling commands:

    ffmpeg -i test.mp4 -y -vf scale=-1:360 test1.wmv
    ffmpeg -i test.mp4 -y -vf scale=-1:720 test2.wmv
    

    I've also tried:

    ffmpeg -g 1 -b 16000k -i test1.mp4 test1.wmv
    

    However, the .wmv files that are produced are "blocky and grainy" as you can see here in a small section of a video screenshot:

    enter image description here

    These are the sizes:

    test.mp4 - 106 MB
    test1.wmv - 6 MB
    test2.wmv - 16 MB
    

    How can I increase the quality/size of the resulting .wmv files (the size of the .wmv files is of no concern)?