Respostas:
Como você usou uma tag ffmpeg, usarei isso para a resposta.
ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4
Altere a qualidade do vídeo especificando um parâmetro CRF diferente. Consulte o guia de codificação x264 para obter mais informações.
ffmpeg -i input.avi -vf scale=-1:720 output.avi
O tempo mudou um pouco desde a resposta original aceita para esta pergunta em 2012. Versões mais recentes do FFmpeg seria melhor usar o filtro de vídeo em 'escala' do FFmpeg.
Dou um exemplo abaixo, usando este filtro, que também simplesmente copia a faixa de áudio conforme solicitado:
ffmpeg -i input.wmv \
-c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
-c:a copy \
output.mp4
A -tune film
opção fornecida acima pode ser omitida ou você pode tentar, -tune animation
dependendo do tipo de videoclipe que está usando.
Se você decidiu que você iria gostar de transcodificar o uma boa escolha de áudio seria usar o libfdk_aac biblioteca externa da seguinte forma:
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
Isso é certamente o que eu faria com um arquivo wmv que estava escalando, você encontrará os resultados mais do que aceitáveis ...
Se você deseja manter intactas todas as faixas de áudio, legendas e assim por diante, use algo como isto:
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.mkv
Nesse caso, o arquivo input.mkv possui duas faixas de áudio e duas legendas. Você pode especificar todas as faixas de áudio (ou legendas, vídeos, etc.) uma por uma ou como uma única entidade (como eu especifiquei para legendas).
Espero que ajude...
-map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4
Em vez disso, você pode simplesmente especificar -map 0
. Isso selecionará automaticamente todos os fluxos na entrada 0. semelhante aos codecs de cópia de áudio. As únicas opções de codec que você precisa especificar são -c:copy -c:v libx264
. Isso significa: "configure todos os codecs de fluxo para copiar, exceto o vídeo que deve transcodificar para x264".
ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv