Icono del sitio Un lugar en el mundo…

Chuletillas (y XXXVIII) – Cambiar la resolución de un vídeo con ffmpeg

Y otra chuletilla más sobre formatos de vídeo. Si quieres cambiar de tamaño un archivo de vídeo (por ejemplo de FullHD 1280×720 a HD 1080×608) con ffmpeg y desde línea de comando, basta con ejecutar esto:

ffmpeg -i input.avi -filter:v scale=1080:-1 -acodec copy output.avi

Se llevará su ratito (entre una y cuatro horas dependiendo del procesador que tengas, claro) pero al final el resultado es impecable. Además, si así lo deseas, puedes cambiar el formato del vídeo de salida simplemente cambiando la extensión (por ejemplo, output.mkv te dará un archivo de salida en ese formato).

El valor -1 que acompaña a la escala horizontal le indica a ffmpeg que calcule el número de píxeles de la vertical para que el vídeo mantenga la proporcionalidad adecuada. Si queremos especificarlo manualmente o romper la proporcionalidad para crear un vídeo anamófico usamos este otro formato:

ffmpeg -i input.avi -filter:v scale=1080x500 -acodec copy output.avi

Y una nota: he tenido problemas cuando uso estos comandos con un vídeo en formato .mkv con pistas de subtítulos. El vídeo y el audio no presentan problemas pero las pistas de subtítulos no se codifican correctamente en el vídeo final. La solución más rápida y sencilla que he encontrado es usar mkvmerge (una utilidad gráfica para manipular las pistas de un archivo mkv) de la siguiente forma: antes de reescalar extraigo las pistas de subtítulos y las borro del original; a continuación ejecuto el comando anterior para realizar el reescalado y, por último, vuelvo a usar mkvmerge para reintegrar los subtítulos en el vídeo final. Son apenas 5 minutos mas que no se notan frente al total del proceso.

ACTUALIZACIÓN: Y otro método más:
ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.avi
Salir de la versión móvil