How can I convert a 1080p wmv video to a 720p video?

Since you used an ffmpeg tag I will use that for the answer.

ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4

Change the video quality by specifying a different CRF parameter. See the x264 encoding guide for more info.


Time has moved on a little since the original accepted answer for this question in 2012. Newer versions of FFmpeg would be better to use FFmpeg's 'scale' video filter.

I give an example below, using this filter, which also simply copies the audio track as you have requested:

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a copy \
       output.mp4

The -tune film option given above can be omitted or you could try -tune animation depending on the type of video clip you are using.

If you decided that you would like to transcode the audio a good choice would be to use the external library libfdk_aac as follows:

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a libfdk_aac -b:a 128k \
       output.mp4

This is certainly what I would do with a wmv file that I was scaling, you will find the results more than acceptable...