Como girar un video de celular mal orientado

A todos nos ha sucedido. Nos emocionamos tomando el mejor video del mundo con nuestro celular, y cuando llegamos a la casa y lo vemos en la computadora, tragedia. Se nos olvidó que el celular se sostiene siempre horizontal, y ahora nuestro video está girado 90 grados.

Cómo girar un video de celular mal orientado?

Un video es una serie de fotografías (30 por segundo aproximadamente), con un ancho determinado y una altura determinada. Ese ancho y esa altura son estándares en la televisión y monitores (la relación entre ambos es lo que se llama aspect ratio). En video, típicamente estas relaciones son 4:3 o 16:9 (4 de ancho por cada 3 de alto).

La cámara del celular respeta esa relación, y sabe que el lado corto del celular va a ser la vertical de la imagen, y el lado largo la horizontal. Así está construido todo el sistema de captura de video del teléfono. Cuando giramos 90 grados el celular y lo sostenemos con el lado largo vertical, el celular sigue tomando video con el supuesto original, y queda girada la imagen. Cuando la vemos en la comptuadora, la computadora sigue el mismo estándar, y muestra girado nuestro video.

Este giro, desafortunadamente, está codificado en los datos de la imagen en la mayoría de los celulares. El algoritmo matemático usado para generar video MP4 (o MOV en Apple), mete dentro de cada parte de la imagen del video la orientación incorrecta. Nuesto video está legal y claramente jodido.

En el caso típico, tenemos un video que respeta la relación estándar: llena la pantalla sin problemas, pero la imagen está girada, como se muestra en la imagen.

En este caso, desafortunadamente no hay mucho que se pueda hacer. Si giramos el video, vamos a terminar con una relación 3:4, y se va a ver mal. La imagen se va a ver pequeña, y con dos bandas negras a los lados.

Esto sucede porque la computadora, al girar, se topa con una relación 3:4. En el mejor de los casos, para no distorsionar la imagen, mantiene la relación haciendo más pequeña la altura, y el espacio vacío a los lados lo llena con negro.
Hay otros programas que giran la imagen, y la obligan a llenar la pantalla completa. Entonces nos topamos con algo así:
La imagen está orientada bien, pero se ve estirada hacia los lados, como si estuviera en un espejo curvo. Esto sucede porque la computadora la hizo más corta en la vertical, y más larga en la horizontal.
Entonces, si tomaron el video con el celular en posición vertical, y obtuvieron una imagen 4:3 girada 90 grados (como en la primera fotografia), tendrán que vivir con una de las soluciones anteriores, ya sea una imagen con dos bandas negras a los lados, o una imagen estirada hacia los lados. O, si están dispuestos a pagar el precio, pueden buscar alguien que trabaje en edición de video, que pueda girarles la imagen, y recortar un cuadro 4:3. Perderán una parte de la imagen, pero obtendrán un video correcto sin distorsiones. Prueben en Fiverr a ver si encuentran alguien que lo haga.
(Para los que prefieran las primeras soluciones gratuitas, el programa que usé para girar el video fue Corel VideoStudio Pro X7).

Un caso particular: cambiar un video de vertical a horizontal

Hay un último caso, muy particular, que me topé el otro día y en donde si es posible rescatar el video. sin distorsionarlo. Es cuando nuestro video está correctamente filmado, pero la cámara coloca una orientación incorrecta.
El celular estaba acostado filmando sobre una mesa. El sensor de posición quedó vertical, y como estaba acostado, nunca pasó a posición horizontal. Pero la imagen sí estaba correctamente orientada: el celular estaba filmando con su lado largo “horizontal”, el video estaba bien.
Resulta que algunos celulares escriben esta posición del sensor al archivo de video como información adicional (esta información se llama EXIF). En este caso el celular escribió lo que creyó según su sensor: que el video estaba rotado 90 grados. Y grabó el video bien.
Al verlo en la computadora con VLC, el video está perfecto. Porque VLC no le hace caso a esta información EXIF:
Pero desafortunadamente, VideoStudio Pro si le hace caso. Y gira el video. Entonces termina uno con un doble problema: la imagen girada incorrectamente, y al volverla a su orientación correcta se distorsiona:
Sabemos que el video está bien, ya lo vimos en VLC. El problema es esa indicación de girar 90 grados en el EXIF, que no tiene nada que ver con el video en sí. Al revisar con un programa llamado exiftool el video, confirmamos que efectivamente es ese el problema:
Si pudiéramos colocar el parámetro Rotation en 0 grados, nos arreglaría el problema.
Afortunadamente en Linux existe una forma de hacer esto con ffmpeg. Simplemente se hace un procesamiento que copie el video sin modificarlo, y que le coloque el parámetro “Rotation” en 0. El comando necesario:
 ffmpeg -i miarchivo.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
Este comando toma el video miarchivo.mp4, y le coloca el parámetro “rotate” en 0, y lo escribe al archivo output.mp4. Con esta transformación, Corel Videostudio deja correctamente orientado el video.
Como se está haciendo una copia literal del video y audio, no se pierde calidad al hacer esta rotación. También, en este caso particular, el audio del video iba a ser reemplazado. Utilizado el parámetro -an podemos dejar el video sin audio:
 ffmpeg -i miarchivo.mp4 -an -c copy -metadata:s:v:0 rotate=0 output.mp4
 
Así que ahí lo tienen. Si se toparan con este caso muy particular, donde el video está bien orientado, pero lo que los está afectando es el parámetro EXIF de rotación, con exiftool y el comando anterior pueden corregirlo.