Introducción
Hoy veremos cómo podemos agregar, a un vídeo, una marca de agua con ffmpeg. Ffmpeg es una herramienta que funciona para múltiples cosas, como cortar un vídeo, unir 2 vídeos, etcétera.
Lo que explicaré en este post es cómo podemos agregar una imagen a un vídeo MP4 como marca de agua en cualquier posición del vídeo (centro, esquina, etcétera).
Agregar marca de agua con ffmpeg
Lo que hacemos es poner la imagen encima del vídeo.
Suponiendo que nuestra imagen es marca_de_agua.png, el vídeo se llama video.mp4 el comando quedaría así y sacaría un nuevo vídeo llamado video_con_marca.mp4:
ffmpeg -i video.mp4 -i marca_de_agua.png -filter_complex "overlay=1:1" video_con_marca.mp4
Eso fue un comando rápido pero analicemos las opciones más importantes. Como vemos, ponemos overlay=1:1 eso indica la posición de la imagen sobre el vídeo en X y Y.
Así que con 1:1 la imagen estará a un pixel de distancia de la izquierda y a un pixel de distancia de la parte superior; esto es la esquina superior izquierda.
Variables
ffmpeg proporciona algunas variables que podemos usar. Son:
- main_h: la altura del vídeo
- main_w: la anchura del vídeo
- overlay_h: la altura de nuestra imagen
- overlay_w: la anchura de nuestra imagen
Cómo centrar la marca de agua
Nos ayudamos de las variables. Para centrar horizontalmente restamos main_w menos overlay_w y dividimos entre 2.
Lo mismo para centrar verticalmente. Entonces el comando para centrar una imagen quedaría así:
ffmpeg -i video.mp4 -i marca_de_agua.png -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2" video_con_marca.mp4
Marca de agua en la parte inferior derecha
Igualmente utilizamos las variables, sólo que ahora no dividimos, sólo restamos. El comando quedaría así:
ffmpeg -i video.mp4 -i marca_de_agua.png -filter_complex "overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)" video_con_marca.mp4
Con eso nuestra marca de agua quedaría en la parte inferior derecha.
Notas
La imagen medirá lo que mida, este comando no redimensiona nada
La imagen debe ser transparente, y tal vez con una opacidad baja. Si quieres saber cómo bajar la opacidad a una imagen haz click aquí.
Recuerda visitar el sitio oficial de ffmpeg aquí.
Hola, ya apliqué las órdenes y todo salió bien pero me surgieron unas dudas.
1) ¿Como consigo que la marca de agua aparezca en un punto y desaparezca unos segundos después?
2) Y si deseo que la marca de agua aparezca en un punto durante varios segundos para que luego se desvanezca y posteriormente vuelva a aparecer en otro ponto y vuelva a desvanecerse, ¿ como se le hace?
Para consultas puede contactarme en https://parzibyte.me/#contacto