Escalar vídeo con FFMpeg. Avanzado.

Hay formas sencillas para escalar un vídeo con FFMpeg:

ffmpeg -i input.mov -filter:vscale=1080:-1 output.mp4

Con -1 indicamos que conserve el aspecto (proporción) del original.

El problema viene cuando quiero escalar un vídeo dentro de una operación compleja de ffmpeg. Al usar, por ejemplo -filter_complex, no permite usar el cambio de escala de la manera normal.

Quería compartir este código que me ha costado bastante sacar a base de muchas pruebas y consultas en la web.

La idea era poder hacer un script para poder crear un vídeo con frames negros al comienzo y al final (esto es tema de una entrada anterior) y poderlo escalar al tamaño deseado. En este caso de 1920×1080 a 1280x 720

Para ello primero hay que indicar el tamaño que queremos en el generador de frames negros…

-f lavfi -i color=c=black:s=1280×720:r=25:d=1

… y luego escalar el vídeo que interesa dentro de -filter_complex

-filter_complex “[0:v] trim=start_frame=1:end_frame=5 [blackstart]; [0:v] trim=start_frame=1:end_frame=5 [blackend]; [2:v] scale=1280:-1 [scaled]; [1:a] atrim=duration=0.2 [audiostart]; [1:a] atrim=duration=0.2 [audioend];

Aquí el código completo:

ffmpeg -f lavfi -i color=c=black:s=1280×720:r=25:d=1 -f lavfi -i “aevalsrc=0:c=stereo:d=1” -i input.mov -filter_complex “[0:v] trim=start_frame=1:end_frame=5 [blackstart]; [0:v] trim=start_frame=1:end_frame=5 [blackend]; [2:v] scale=1280:-1 [scaled]; [1:a] atrim=duration=0.2 [audiostart]; [1:a] atrim=duration=0.2 [audioend]; [blackstart] [audiostart] [scaled] [2:a] [blackend] [audioend] concat=n=3:v=1:a=1[v][a]” -map “[v]” -map “[a]” -c:v libx264 -crf 22 -preset slow -profile:v high10 -pix_fmt yuv420p -c:a aac -strict -2 -b:a 128k -timecode 00:01:00:00 -tune zerolatency output.mp4

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s