Rotación de videos con ffmpeg desde la terminal de Linux.
Autor: Joel Barrios
Wednesday 24th of August 7:46 PM

Es común encontrarse un video con la orientación incorrecta, particularmente con videos tomados con teléfonos celulares y otros dispositivos móviles. Utilizar ffmpeg es la solución más rápida, sencilla y simple para cambiar la orientación de este tipo de videos sin mayores contratiempos.
El truco consiste en abrir una terminal de Linux, utilizar ffmpeg con la función transpose
de los filtros de video y por supuesto utilizar una versión reciente de ffmpeg.
La función transpose
tiene cuatro diferentes modalidades:
0 = Giro de 90º a la izquierda y giro vertical (predeterminado)
1 = Giro de 90º a la derecha
2 = Giro de 90º a la izquierda
3 = Giro de 90º a la derecha y giro vertical
En el siguiente ejemplo se rotará un video 90º a la derecha:
ffmpeg -i entrada.mp4 -vf "transpose=1" salida.mp4
En el siguiente ejemplo se rotará un video 90º a la izquierda:
ffmpeg -i entrada.mp4 -vf "transpose=2" salida.mp4
Para voltear un video 180º, se puede hacer repitiendo dos veces transpose=1
o bien transpose=2
, como se muestra en el siguiente ejemplo:
ffmpeg -i entrada.mp4 -vf "transpose=2,transpose=2" salida.mp4
Es importante señalar que en los dos ejemplos anteriores se volverá a codificar el audio y el video. Para evitar ésto se y que se respeten el audio y videos originales, se pueden utilizar las opciones -c:a copy
y -c:v copy
.
En el siguiente ejemplo se rotará un video 90º a la derecha, sin volver a codifica, copiando las salidas de audio y video:
ffmpeg -i entrada.mp4 -vf "transpose=1" -c:a copy -c:v copy salida.mp4
En el siguiente ejemplo, se hace lo mismo pero rotando 90º a la izquierda:
ffmpeg -i entrada.mp4 -vf "transpose=2" -c:a copy -c:v copy salida.mp4
En el siguiente ejemplo se rotará un video 180º sin volver a codifica, copiando las salidas de audio y video:
ffmpeg -i entrada.mp4 -vf "transpose=2,transpose=2" -c:a copy -c:v copy salida.mp4