sábado, 18 de mayo de 2019

Estabilizar imagen temblorosa de un vídeo con Kdenlive usando vidstab



Para estabilizar vídeo con el editor de vídeo no lineal Kdenlive. Necesitamos primero instalar dicho editor en vídeo y también el paquete mlt con todas sus dependencias; pues la mayoría de los efectos y filtros dependen de este framework o entorno de trabajo que es el corazón de Kdenlive.

Así que entra en modo root en Debian y escribe los siguientes comandos:

root@debian:/home/user# apt install kdenlive
root@debian:/home/user# apt install mlt

Nota: la versión de Kdenlive que viene con Debian 9, me causó problemas a la hora de estabilizar vídeo. Lo que hice fue descargarme una app image de la sección de descargas de la web oficial de Kdenlive. Y para ejecutar esta app image en Debian, primero di permisos de ejecución al archivo en modo root:
root@debian:/home/user# chmod +x kdenlive-18.12.1b-x86_64.appimage

Y a continuación, para ejecutar la app image con kdenlive:

root@debian:/home/user# ./kdenlive-18.12.1b-x86_64.appimage

Los pasos a seguir para estabilizar un vídeo con Kdenlive son los siguientes:

  1. Añadir un vídeo con la imagen temblorosa que queremos estabilizar a la lista de clips de Kdenlive.
  2. Posicionarse con e cursor sobre el vídeo, desplegar menú contextual con el botón derecho del ratón y elegir la opción “clip jobs” (si tienes la interfaz del Kdenlive en inglés) y a continuación la opción “Stabilise” vidstab.
  3. Stabilise se puede dejar tal como está los valores predeterminados de las diferentes opciones de vidstab pero también se pueden modificar (yo hice modificaciones pero no demasiadas) y se da a “ok”.
  4. Al darle ok, Kdenlive ejecuta un trabajo de estabilización y genera un archivo de vídeo con extensión. mlt, que posteriormente, debemos añadir a un track de vídeo en la línea de tiempo para ver como queda su visionado en el monitor que incorpora Kdenlive.
  5. Si estamos de acuerdo con el proceso de estabilización del vídeo, debemos hacer un “render” de vídeo, seleccionar un nombre y un formato de vídeo de salida, yo elegí .mp4 porque los vídeos que grabo con el teléfono celular están en dicho formato y un fps con valor de 29. Cuánto más fps tengan tus vídeos mejor, menos se notará el temblor en un vídeo si lo hubiere.

A continuación voy a explicar un poco las opciones de estabilizar vídeo con vidstab en Kdenlive:



shutter angle es el ángulo máximo que la imagen puede ser rotada para conseguir estabilizar el vídeo.

optzoom permite hacer un zoom óptimo sobre el vídeo que es calculado mediante transformación.. Hace que el zoom de vídeo hasta el 90% de las transformaciones esté oculto.

accuracy nos permite determina con precisión la detección de temblores. Si el valor es bajo el procesado de la imagen será rápido, en cambio si es alto, el procesado será más lento y consumirá más recursos de la computadora, El valor por defecto 4 pero un internauta recomienda el valor 8. Yo he usado el valor 7 para el vídeo tutorial que incluyo en este artículo y me fue bastante bien.

maxangle representa el máximo ángulo de rotación de frames (degree*PI/180) expresado en radianes. Si el valor es -1 índica que no hay límite en el ángulo de rotación.

zoom con esta opción,  el usuario puede añadir un zoom adicional durante la transformación. El zoom especificado aquí es añadido al zoom calculado por optzoom. Si zoom > 0 = zoom in. Si zoom <0 = zoom out

shakiness sirve para determinar lo tembloroso que es el vídeo a juicio del usuario editor de vídeo. Los valores altos influyen en la precisión, normalmente no es necesario superar el valor 7. Como en el caso de Accuracy, si elegimos un valor muy bajo el procesado será rápido pero si elegimos un valor muy alto, el procesado será lento.

sharpen con esta opción aumentamos o disminuimos la nitidez de la imagen. El valor por defecto es 0,8 con esto conseguimos que se note un poco menos el temblor en la imagen del vídeo.

stepsize tamaño de paso del proceso de búsqueda, la región alrededor se escanea con un mínimo de 1 pixel de resolución. Parece que el vídeo mejora, cuando mayor sea la región en pixels.

mincontrast Por debajo de este nivel de contraste, el campo se descarta en el proceso de estabilización. Rango 0-1, valor por defecto =0.3. Para vídeo con un contraste muy bajo necesitaremos bajar este valor.

smoothing  es la cantidad de suavizado en la estabilización de la imagen de un vídeo tembloroso. Cuanto mayor sea el valor de suavizado más se compensan los movimientos de la cámara. El clip resultante sufre un cambio menor en la velocidad de la cámara. Técnicamente es el número de fotogramas para el filtrado que equivale a = suavizado * 2 + 1.

maxshift  es el máximo número de píxeles para traducir la imagen. (Por defecto = -1 sin límite).

crop es el borde de las imágenes transformadas contiene píxeles de los fotogramas anteriores. Si esta opción está marcada en ocasiones puede verse un marco de color negro tembloroso en los bordes del vídeo, si no está marcada, solamente se verá la imagen temblorosa del vídeo sin bordes negros.

Casi todo este tutorial es gracias al administrador de la web https://gnulinuxvagos.es/. Ubuntu significa algo más que “Yo no tengo instalado Debian”, yo soy lo que soy gracias a otros.

Fuente oficial del proyecto kdenlive: https://kdenlive.org/es