El arte de arreglar videos que ‘respiran’: análisis geométrico y corrección automática

¿Alguna vez has notado que un video tomado con una cámara fija parece estirarse y encogerse por sí solo? Es un fenómeno común en grabaciones donde la imagen se deforma periódicamente, creando un efecto visual molesto. Aunque podrías pensar que simplemente ajustar el tamaño del archivo solucionaría el problema, eso no arreglaría realmente la distorsión visual subyacente.

Diagrama técnico comparativo de video deformado versus corregido
Comparativa entre un video estirado y su versión corregida mediante análisis geométrico

La solución más efectiva es utilizar un enfoque de corrección geométrica. Esto implica combinar herramientas como OpenCV y FFmpeg para analizar el video frame por frame, medir cuánto se ha deformado la imagen verticalmente y aplicar una corrección inversa precisa.

Solución con Python y OpenCV

El proceso comienza construyendo un frame de referencia estable. Luego, analizamos cada frame del video para detectar su deformación usando técnicas como ECC (Essential Matrices). Este análisis nos permite calcular el factor de escala vertical exacto.

Es crucial notar que no estamos simplemente redimensionando todo el vídeo. Cada frame recibe una corrección diferente basada en las mediciones reales, y suavizamos estos datos para evitar saltos bruscos entre los frames.

Reconstrucción del archivo

Una vez calculada la corrección inversa, reconstruimos el video. Finalmente, utilizamos FFmpeg para volver a montar el archivo, asegurando que el audio original se conserve intacto durante todo el proceso de reconstrucción.