domingo, 8 de noviembre de 2015

Rotar un video

Desde hace tiempo los smartphones han sustituido, al menos en mi caso, a las cámaras de fotos/videos. Pero el problema de estos telefonillos es que nunca se acuerda uno (también, en mi caso) de en qué postura (vertical u horizontal) hay que ponerlo para sacar el video y que quede bien. El resultado es que más de una y más de dos veces el video me sale 'girado'.

Hombre, para visualizarlo, tanto en la pantalla del smartphone como, si lo descargo, en el PC, no es problema, por ejemplo con el reproductor VLC basta con ir a Herramientas-Efectos y Filtros-Efectos de Video-Geometría-Rotar y darle el giro apropiado. Pero si lo quiero guardar con esa configuración, ya rotado, me armo un pequeño lío. 
Así que vamos a ver cómo hacerlo 'permanentemente'

Un procedimiento sencillo es hacerlo con Avidemux. Pero el problema es que el Avidemux (Qt), que tengo instalado, desde que dejó de estar en los repos oficiales de Debian (ahora está en los www.deb-multimedia.org) parece que anda regular, tiene problemas de traducción, etc. Pero bueno, se haría así:
- Abrir el video en Avidemux

- Ir a Video-Filtros-Transform, ahí elegir Rotate (OJO, pone 'Bitrate') y, tras doble clic, el ángulo que quieres rotar (90º, 180º o 270º, en sentido anti-horario) (OJO, en mi Avidemux esto también está mal, y hay que ir a ciegas), para que se añada. Cierras esa ventana
- Ahora, en Video-Output, pinchas en 'Copy', para cambiarlo y que se recodifique, y eliges con qué codificador hacerlo.
(En mis pruebas, si lo dejas en 'Copy', y no recodificas, queda igual, sin rotar)
- Y solo queda ir a File-Save, y guardar el video, rotado, que se genera.
Pero como esto era un lío, busqué un sistema más claro. Este:

Rotar un video, por consola, con ffmpeg
Es sencillisimo: abres la consola en la carpeta donde tengas guardado el video original (que supongamos que se llama, para ser original... video.mp4) y escribes una orden como esta:
ffmpeg -i video.mp4 -vf 'transpose=1' video_rotado.mp4
y, en un ratito, te producirá un video rotado 90º a la derecha (en el sentido de las agujas del reloj). Esto es lo que se le indica la opción 'transpose=1'.
Para poner todas las posibilidades
Rotar video 90º a la derecha…
ffmpeg -i video.mp4 -vf 'transpose=1' video_rotado.mp4

Rotar video 180º a la derecha (o sea, voltearlo)…

ffmpeg -i video.mp4 -vf 'transpose=1, transpose=1' video_rotado.mp4

Rotar video 90º a la izquierda…
ffmpeg -i video.mp4 -vf 'transpose=2' video_rotado.mp4
porque 'transpose=2' es indicarle que rote 90º 'en sentido anti-horario', o sea, a la izquierda. 
Hombre, también se podría hacer con 'transpose=1, transpose=1, transpose=1' que es rotar 270º a la derecha, pero queda más elegante ponerlo así.

Y solucionado

No hay comentarios:

Publicar un comentario