Estudios de paisaje, cartografía (R y QGIS), diseño ambiental 3D (Blender) y análisis de datos geográficos en R

Contact Info
Ferrol, Santiago de Compostela, Galicia, Spain, The World

+00(34) not yet...

Privacy

Follow ModlEarth

Cómo estabilizar vídeos gratis, rápido y fácilmente para stock

Cómo estabilizar vídeos gratis, rápido y fácilmente para stock

Este post explica cómo estabilizar cualquier vídeo de forma fácil, automática y gratuita utilizando la herramienta `ffmpeg` y las librerías `libvidstab-dev`. Se detallan los pasos para instalar las librerías necesarias, generar información de inestabilidad del vídeo, estabilizar el vídeo y comparar el resultado. También se mencionan las ventajas de este método sobre software como Adobe Premiere o DaVinci Resolve, así como las posibles desventajas de la estabilización. El tutorial proporciona comandos para estabilizar múltiples vídeos en masa y ofrece recomendaciones para obtener mejores resultados.
Contenido:

En este post se explicará cómo estabilizar cualquier vídeo de forma fácil, automática, en masa y gratis. Solo con las herramientas de ffmpeg.

Estabilizar cualquier vídeo

Puede seguir este tutorial paso a paso para estabilizar cualquier vídeo utilizando la herramienta ffmpeg. El tutorial utiliza las librerías libvidstab-dev para generar información de la inestabilidad del vídeo y luego aplica la transformación de estabilización. También se proporciona un comando para comparar el vídeo original con el vídeo estabilizado lado a lado. Puede encontrar más detalles y el código completo en este enlace.

Por qué estabilizar un vídeo, especialmente para vídeo de stock

La estabilización de un vídeo es importante, especialmente para el contenido de vídeo de stock, ya que proporciona una experiencia visual más agradable para los espectadores. Un vídeo estable transmite profesionalismo y mejora la calidad general del contenido. En mi caso, algunos vídeos han sido rechazados de Blackbox global por esta razón. Esto es algo recurrente en otras casas de vídeo de stock. Por lo tanto, si no habéis grabado con gimbal pero tenéis algunos vídeos que podrían merecer la pena hay solución.

En este caso, vamos a hacer la prueba con un vídeo grabado a mano con la Sony Rx100 VA. No se ha editado ni corregido el color, el cual necesita sin duda trabajo, pero será parte de otro tutorial futuro. Vamos a verlo:

Cuando tienes un vídeo desestabilizado lo normal es recurrir a software de edición de vídeo como Adobe Premiere o Davinci Resolve. Hay tropecientos tutoriales sobre cómo corregirlo en estos. Además hay herramientas online que permiten hacer esto de forma automática en vídeo relativamente pequeños.

Por otra parte, ya hay cada vez más herramientas también de Inteligencia Artificial que corrigen esto sin producir pérdidas de calidad apreciables.

Por qué este método es mejor que Premiere o Davinci

Este método de estabilización utilizando ffmpeg y las librerías libvidstab-dev ofrece varias ventajas sobre el uso de software como Adobe Premiere o DaVinci Resolve. Primero, es una solución gratuita, lo que la hace accesible para cualquier persona que desee estabilizar sus vídeos. Además, el proceso es automatizable, por lo que se pueden estabilizar múltiples vídeos de manera eficiente. Por último, la flexibilidad y personalización que ofrece ffmpeg permiten ajustar los parámetros de estabilización según las necesidades específicas de cada vídeo.

Se me olvidaba: es gratis y no hace falta abrir un solo programa.

Proceso

Al aplicar el método de estabilización utilizando ffmpeg y las librerías libvidstab-dev, podrá obtener vídeos estables y de mayor calidad visual. Recuerde seguir los pasos mencionados anteriormente y ajustar los parámetros según sus necesidades específicas.

Paso 0 - Instalar las librerías necesarias

Primero, debe instalar las librerías libvidstab-dev. Puede hacerlo ejecutando el siguiente comando en la terminal:

sudo apt-get install libvidstab-dev

Voy a incluir en este paso 0 una cosa importante. Cuando abrimos terminal utilizando el comando ctrl+alt+t la ruta es siempre la carpeta $HOME, es decir, la carpeta principal del usuario. Los vídeos suelen estar en rutas distintas, según la organización y flujo de trabajo de cada uno. Es un auténtico coñazo tener que estar escribiendo esas rutas en terminal, por lo que recomiendo seguir este pequeño truco (el cual veréis que se aplica constantemente en el vídeo final). El truco consiste en: abrir la carpeta donde se localizan los vídeos, hacer click derecho en el espacio en blaco de la carpeta y seleccionar “Abrir en una terminal”. Esto hace que la terminal abierta parte de la ruta actual, donde se localizan los vídeos. De esta forma, los códigos de ejecución de ffmpeg se simplifican una barbaridad, haciéndolos más claros y fáciles de customizar.

Paso 1 - Generar información de inestabilidad del vídeo

Una vez que haya instalado las librerías, puede generar la información de inestabilidad del vídeo. Utilice el siguiente comando, reemplazando “try.mp4” con el nombre de su archivo de vídeo:

ffmpeg -i try.mp4 -vf vidstabdetect=shakiness=7 -f null -

El parámetro shakiness va de 1 a 10. Utiliza 10 si tu vídeo parece una batidora, 1 si tienes un pulso de acero.

Paso 2 - Estabilizar el vídeo

Después de generar la información de inestabilidad, puede proceder a estabilizar el vídeo. Utilice el siguiente comando, reemplazando “try.mp4” con el nombre de su archivo de vídeo:

ffmpeg -i try.mp4 -vf vidstabtransform=smoothing=30:zoom=0:input="transforms.trf" try_stab.mp4

En este caso, smoothing tiene valores de 0 a 100, cuanto más alto el valor, mayor suavidad en el vídeo (ojo, no siempre es mejor). El nivel de zoom va de 0 a 10. Si quieres evitar al máximo el recorte de los bordes déjalo en 0.

Paso 3 - Comparar el vídeo original con el vídeo estabilizado lado a lado

Si desea comparar el vídeo original con el vídeo estabilizado lado a lado, puede utilizar el siguiente comando:

ffmpeg -i try.mp4 -i try_stab.mp4 -filter_complex "[0:v:0]pad=iw*2:ih[bg]; [bg][1:v:0]overlay=w" sidebyside.mp4

No hace falta entrar en los parámetros en este caso pues el código símplemente deja el primer imput (try.mp4) en el lado izquierdo y el segundo input (try_stab.mp4) en el lado derecho. La velocidad de reproducción y duración es idéntica en este proceso, por lo que se puede visualizar en tiempo real la mejora en la estabilización del vídeo.

He aquí el resultado comparativo de la estabilización para el vídeo grabado en la frontal del Castillo de Chambord:

PASO PRO - Estabilizar múltiples vídeos (batch processing)

Si tenemos claros los parámetros que mejor funcionan para una serie de vídeos que están desestabilizados podemos programar ligeramente la herramienta de ffmpeg. Este bloque de código realiza todos los pasos anteriores sobre todos los vídeos (en formato .mp4) de una misma carpeta. Si desea estabilizar múltiples vídeos en masa, puede utilizar el siguiente comando:

for i in *.mp4; do
  ffmpeg -i "$i" -vf vidstabdetect=shakiness=10 -f null -;
  ffmpeg -i "$i" -vf vidstabtransform "$i.stab.mp4" -y;
  ffmpeg -i "$i" -i "$i.stab.mp4" -filter_complex "[0:v:0]pad=iw*2:ih[bg]; [bg][1:v:0]overlay=w" "$i.stacked.mp4" -y;
done

Desventajas de la estabilización

Aunque la estabilización de vídeos puede mejorar significativamente la calidad visual, también puede presentar algunas desventajas. Las que yo he detectado en este caso son las siguientes que podrás ver en mayor detalle en el vídeo tutorial del proceso de estabilización.

  1. Ligero recorte de los bordes producido en el propio reencuadre frame a frame para similar la estabilización.
  2. Ligera pérdida de nitidez. Como se recorta el frame ligeramente pero el vídeo producido tiene las mismas dimensiones que el original los píxeles sufren distorsión.
  3. Como consecuencia de las anteriores se reduce ligeramente el bitrate.

Sin embargo, como podéis comprobar, las pérdidas son asumibles, pues estamos recuperando un vídeo inservible para stock en uno que puede tener posibilidades de ser comercializado. Hablo por experiencia propia.

Tutorial del proceso de estabilización

Os recomiendo ver el siguiente vídeo, para poder comprobar de primera mano que todo lo aquí expuesto es real. No dura mucho y así me ayudáis con las visualizaciones.

Un avance

Este vídeo ha sido editado en Blender 4.0, recientemente estrenado. Hay bastantes mejoras en el Video Sequencer Editor (VSE) que me gustaría explorar en futuros vídeos. Sin embargo, precisamente el tema de la estabilización no está incluido. Ojalá alguien se curre un buen addon para estabilizar vídeos directamente en el editor. Mientras tanto, utilizad ffmpeg desde terminal.

Aquí va la prueba de vida de que la edición completa de este vídeo ha sido realizada en Blender 4.0.

Blender 4.0 VSE

Conclusiones

Espero que hayas apreciado el esfuerzo en todo esto. Podrías apoyarme de muchas formas: contratándome, contactándome o símplemente compartiéndolo.


También podrían interesarte las siguientes entradas del blog...