Sobreponer imagen o texto a un video con ffmpeg – Uso de hooks [1ra parte]
Ésta vez aprenderemos algo bastante útil a la hora de editar videos con ffmpeg, y es el uso de hooks. Los hooks permiten esencialmente modificar videos. Se utilizan añadiendo la opción -vhook al ffmpeg, se pueden usar cuantos sean necesarios, y se ejecutarán en el orden en que son escritos en el comando.
Los hooks utilizan módulos externos para realizar las tareas de edición del video. Dichos módulos no son más que librerías dinámicas (.so, .dll, .dylib), que por lo general se encuentran en /usr/lib/vhook/. Dependiendo de la tarea deseada, utilizamos alguno de estos módulos; para el caso de sobreponer una imagen o texto utilizaremos imlib2.so.
Uso de imlib2.so
Usando este módulo es posible sobreponer una imagen o texto a un video. Podemos especificar el texto directamente, o indicar un archivo de texto donde se encuentre.
| ‘-C <rgb.txt>’ | Nombre de archivo para leer el tipo de colores RGB a usar |
| ‘-c <color>’ | El color del texto |
| ‘-F <fontname>’ | Tipo de fuente y tamaño |
| ‘-t <text>’ | El texto |
| ‘-f <filename>’ | El nombre del archivo desde donde se leerá el texto |
| ‘-x <expression>’ | coordenada x del texto o imagen |
| ‘-y <expression>’ | coordenada y del texto o imagen |
| ‘-i <filename>’ | Nombre del archivo de imagen |
| ‘-R <expression>’ | Valor para color R (red=rojo) |
| ‘-G <expression>’ | Valor para color G (green=verde) |
| ‘-B <expression>’ | Valor para color B (blue=azul) |
| ‘-A <expression>’ | Valor para el canal Alpha |
Por lo general es necesario especificar el tipo de fuente a usar, a menos que los archivos de fuente estén dentro del la variable de entorno FONTPATH, además de indicar el tamaño de la misma, por ejemplo:
-F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/20
donde 20 es el tamaño.
Ejemplo 1 – Sobreponiendo texto en un video
En esta ocasión vamos a sobreponer un texto en un video, lo que resulta útil para poner una marca. Supongamos que queremos que en la parte superior izquierda del video aparezca el siguiente texto: “http://casidiablo.net“. El comando para realizar esto sería:
ffmpeg -i entrada.avi -vhook '/usr/lib/vhook/imlib2.so -F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/15 -x 10 -y 10 -t http://casidiablo.net' salida.mpgExplicación…
Es un comando algo largo pero no es complicado. Veamos:
- Primero añadimos la opción
-vhookal comandoffmpeg, y entre comillas simples ponemos las opciones del hook. /usr/lib/vhook/imlib2.so, indica que el módulo a usar será imlib2.so-F /var/lib/defoma/gs.d/dirs/fonts/Purisa.ttf/15, indica que la fuente será Purisa y tendrá un tamaño de 22.-x 10y-y10, indican las coordenadas que tendrá el texto-t "Creado usando Linux", es el texto a insertar
De igual manera, es posible insertar una imágen, lo cual veremos en el segundo ejemplo.
Ejemplo 2 – Sobreponiendo imagen en un video
Ahora vamos a sobreponer una imagen en un video, por ejemplo esta:

El comando para realizar esto sería:
ffmpeg -i entrada.avi -vhook '/usr/lib/vhook/imlib2.so -x 10 -y 10 -i tux.png' salida.mpgExplicación…
Esta vez es un poco más sencillo; veamos:
- Primero añadimos la opción
-vhookal comandoffmpeg, y entre comillas simples ponemos las opciones del hook. /usr/lib/vhook/imlib2.so, indica que el módulo a usar será imlib2.so-x 10y-y10, indican las coordenadas que tendrá la imagen-i tux.png, es la imagen a insertar
8 Comentarios | deja el tuyo



Buen artículo
¿Sabes si se puede indicar un límite temporal para que aparezca sólo unos segundos (por ej, al inicio o al fin del vídeo)?
Claro Dani…ya hay escrito algo sobre eso, pero la entrada está programada para mañana o pasado mañana
Un saludo!
Gracias, estaré esperándolo
para agregarle color al tipo de letra como seria?