J'ai une vidéo 1080p WMV que j'aimerais convertir en vidéo de qualité inférieure (de préférence 720p). Je voudrais garder l'audio intact. Comment puis-je accomplir cela dans Ubuntu?
Puisque vous avez utilisé une balise ffmpeg, je l’utiliserai pour la réponse.
ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4
Modifiez la qualité vidéo en spécifiant un paramètre CRF différent. Voir le guide de codage x264 pour plus d'informations.
Le temps a un peu évolué depuis la réponse initialement acceptée à cette question en 2012. Il serait préférable d'utiliser les nouvelles versions de FFmpeg avec le filtre vidéo "scale" de FFmpeg.
Je donne un exemple ci-dessous, en utilisant ce filtre, qui simplement aussi copie la piste audio comme vous l'avez demandé:
ffmpeg -i input.wmv \
-c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
-c:a copy \
output.mp4
L'option -tune film
donnée ci-dessus peut être omise ou vous pouvez essayer -tune animation
en fonction du type de clip vidéo que vous utilisez.
Si vous décidez que vous voudriez souhaiter transcoder l'audio, un bon choix serait d'utiliser la bibliothèque externe libfdk_aac comme suit:
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
C’est certainement ce que je ferais avec un fichier wmv que je mettais à l’échelle, vous trouverez les résultats plus qu’acceptables ...
Si vous souhaitez conserver toutes les pistes audio, sous-titres, etc., vous devez utiliser quelque chose comme ceci:
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
Dans ce cas, le fichier input.mkv comporte deux pistes audio et deux sous-titres. Vous pouvez spécifier toutes les pistes audio (ou sous-titres, ou vidéos, etc.) une par une ou sous la forme d'une seule entité (comme je l'ai spécifié pour les sous-titres).
J'espère que ça aide...