I have a 1080p wmv video that I'd like to convert to a lower quality (preferably 720p) video. I would like to keep the audio intact. How can I accomplish this in Ubuntu?
3 Answers
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.mp4Change the video quality by specifying a different CRF parameter. See the x264 encoding guide for more info.
2Time 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.mp4The -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.mp4This is certainly what I would do with a wmv file that I was scaling, you will find the results more than acceptable...
0If you want to keep intact all the audio tracks, subtitles and so on, you should use something like this:
ffmpeg -i input.mkv \ -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \ -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow \ -c:a:0 copy -c:a:1 copy -c:s copy \ output.mkvIn this case, the input.mkv file has two audio tracks and two subtitles. You can specify all the audio tracks (or subtitles, or videos, etc.) one by one or as a single entity (as I specified for subtitles).
Hope it helps...
2