Ya hace tiempo mostré un método mediante el plugins Motion de Cinelerra para estabilizar/amortiguar los cabeceos y vibraciones de una secuencia de vídeo. Este tipo de aplicaciones se ha ido extendiendo y es raro el software de edición/reprodución de vídeos que no dispone de su propio estabilizador de imagen (incluso Youtube ofrece al usuario que publica un vídeo la posibilidad de estabilizar una secuencia aplicando las modificaciones en tiempo real prácticamente).

Este nuevo método tiene la ventaja de no necesitar interfaz de cálculo. Apenas son un par de órdenes y un tiempo de render, lo cual permitiría facilmente incluir la orden en el menú de contexto del ratón de tal manera que cada vez que nos interese simplemente click-derecho-sobre-el-icono -> Estabilizar, por ejemplo.

En este fragmento del vídeo que colgué el otro día se puede ver la secuencia original, modificada y la comparación del efecto obtenido al grabar una secuencia a mano y después de estabilizar.



Filtro Videostab de MLT

MLT (melt) es el backend de manipulación de video/audio para KDENLIVE, el editor de vídeos que se está popularizando para KDE (ya ha salido por aquí también para otros fines:1, 2, 3) y dispone de multitud de filtros, uno de ellos es videostab.
Videostab funciona en dos pasadas, en la primera analiza el vídeo y produce un archivo con los cálculos y en la segunda pasada usando este archivo aplica las correciones para estabilizar la secuencia. Videostab apenas tiene un par de parámetros de configuración que en este ejemplo no vamos a usar.

Primero analizamos el vídeo y producimos un archivo de salida con los resultados.
melt mi-video.avi -filter videostab -consumer xml:resultados.mlt all=1
Este proceso puede ser largo dependiendo de la resolución y longitud del vídeo. Una vez ha finalizado procedemos a generar una nueva secuencia usando como archivo de entrada el archivo recién generado:
melt resultado.mlt -filter videostab -consumer avformat:mi-video-estabilizado.avi vb=8000k

Nota: Ten en cuenta que la estabilización se consigue tras el primera análisis desplazando y rotando la imagen para que los objetos en la secuencia permanezcan inmóviles (más o menos), es decir el proceso final para evitar mostrar bandas negras del exterior de vídeo recortará y ampliará el plano, por lo que es muy probable que detalles que aparecían en el borde de la secuencia dejen de verse.