Añadir una “mosca” a un vídeo con ffmpeg

8 Oct

Con ffmpeg es muy sencillo ponerle una marca de agua (o 2) a un vídeo. Lo podemos hacer con una imagen transparente que contenga la marca que queramos añadir usando el filtro overlay de ffmpeg de la siguiente manera:

ffmpeg -i "VÍDEO" -strict -2 -vf "movie=IMAGEN_CON_MARCA [watermark]; \
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out]" \
-r 25 -b:a 128k -b:v 1200k "VÍDEO_CON_MARCA"

Solo debemos fijarnos en un detalle más: los argumentos referentes a los frames por segundo y el ratio de bits por segundo de audio y vídeo (opciones -r, -b:a y b:v, respectivamente). Poned los que os interese teniendo en cuenta el consumo de recursos.

Así podemos automatizar fácilmente este proceso y “marcar” un montón de vídeos:

for video in /videos_a_marcar
do
   nombre="`basename $video | cut -d'.' -f1`"
   tipo="`basename $video | cut -d'.' -f2`"
   ffmpeg -i $video -strict -2 -vf "movie=IMAGEN_CON_MARCA [watermark]; \
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out]" \
-r 25 -b:a 128k -b:v 1200k "$nombre-CON-MARCA-$tipo"
done
¡Espero que os sea útil!

Referencias

  1. http://ffmpeg.org/ffmpeg-filters.html#overlay-1

PS: En la ayuda de ffmpeg se explica todos los argumentos, sobre todo en la referencia 1

PS: En el script falta comprobar posibles errores (que podemos leer y escribir, por ejemplo)