¿Cómo puedo convertir un video wmv 1080p a un video 720p?

14

Tengo un video de 1080p wmv que me gustaría convertir a un video de menor calidad (preferiblemente 720p). Me gustaría mantener el audio intacto. ¿Cómo puedo lograr esto en Ubuntu?

James
fuente

Respuestas:

16

Como usaste una etiqueta ffmpeg, la usaré para la respuesta.

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

Cambie la calidad del video especificando un parámetro CRF diferente. Consulte la guía de codificación x264 para obtener más información.

Duffydack
fuente
1
La opción 'sameq' fue eliminada. Si está buscando una opción para preservar la calidad (que no es para lo que era -sameq), use -qscale 0 o una opción de factor de calidad equivalente.
juanmah
Según el wiki de ffmpeg , esto puede ser tan simple como:ffmpeg -i input.avi -vf scale=-1:720 output.avi
andersonvom
4

El tiempo se ha movido un poco desde la respuesta original aceptada para esta pregunta en 2012. Las versiones más nuevas de FFmpeg serían mejores para usar el filtro de video 'escala' de FFmpeg.

Le doy un ejemplo a continuación, usando este filtro, que también simplemente copia la pista de audio como ha solicitado:

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

La -tune filmopción dada anteriormente puede omitirse o puede intentarlo -tune animationdependiendo del tipo de videoclip que esté utilizando.

Si ha decidido que le gustaría para transcodificar el audio de una buena opción sería utilizar el libfdk_aac biblioteca externa de la siguiente manera:

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

Esto es ciertamente lo que haría con un archivo wmv que estaba escalando, encontrará los resultados más que aceptables ...

andrew.46
fuente
1

Si desea mantener intactas todas las pistas de audio, subtítulos, etc., debe usar algo como esto:

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

En este caso, el archivo input.mkv tiene dos pistas de audio y dos subtítulos. Puede especificar todas las pistas de audio (o subtítulos, o videos, etc.) una por una o como una entidad única (como especifiqué para los subtítulos).

Espero eso ayude...

adsuar
fuente
1
No necesita especificar cada secuencia de la manera anterior: en su -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 lugar, simplemente puede especificar en su -map 0lugar. Esto seleccionará automáticamente todas las transmisiones en la entrada 0. similar con códecs de copia de audio. Las únicas opciones de códec que necesita especificar son -c:copy -c:v libx264. Esto significa: "configurar todos los códecs de transmisión para copiar, excepto el video que debe transcodificarse a x264".
Cheekysoft
Equivalente (que muestra el orden de los parámetros):ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv
Cheekysoft