Este es un método sencillo para colocar una marca de agua en una imagen con ImageMagick, utilizando la herramienta mogrify.
Lo primero, creamos nuestro logotipo en JPEG, GIF o PNG. En este ejemplo utilizaremos PNG32.
El comando es:
composite -gravity southwest marcaagua.png imagenfuente.png salida.png
En donde
- comoposite -> Es el comando a ejecutar. (Herramienta de ImageMagick)
- -gravity -> Indica la posición donde se colocará la marca de agua
- southwest -> Indica la parte inferior-izquierda de la imagen
- marcaagua.png -> Es la imagen que será colocada como marca de agua
- imagenfuente.png -> Es la imagen en donde será colocada la marca de agua
- salida.png -> Es el archivo final
La imagen final se verá como ésta. (click para ampliar)
Aplicar a múltiples imágenes
Para aplicar la marca de agua a varias imágenes (por ejemplo, todas las imágenes de una carpeta), escribe desde la Terminal lo siguiente:
for file in *.jpg; do newfile=$(echo $file | sed s/' '/_g) test "$file" != "$newfile" && mv "$file" $newfile echo $file renombrado a $newfile echo - composite -gravity southwest /ruta/marcaagua.png $newfile $newfile echo $newfile completado echo =================== done
Donde
- La linea 1, procesrá todos los archivos con extensión .jpg
- La linea 2, verifica los espacios en los nombres de archivo a procesar, asigna cada archivo a una variable
- La linea 3, intenta renombrar los archivos, sustituyendo espacios en blanco por “_”
- La linea 4, muestra el nombre del archivo renombrado
- La linea 6, Aplica el comando mogrify para colocar la marca de agua y guarda el archivo
- La linea 7, muestra el archivo final
Este proceso modificará tus imágenes originales y es irreversible, así que crea una copia de tus imágenes primero.
En el artículo anterior, se describe cómo convertir videos mpeg/avi a FLV. Ahora, se muestra cómo crear miniaturas de los videos con FFMPEG.
ffmpeg -i video.flv -an -ss 00:00:03 -s 100x75 -r 1 -vframes 1 -y %d.jpg
en donde ffmpeg se invoca con los siguientes parámetros:
- -i video.flv -> Es el video de entrada
- -an -> Desactiva el audio (no lo necesitamos para crear miniaturas)
- -ss 00:00:03 -> La miniatura se creará en esta posición (tiempo del video hh:mm:ss)
- -s 100×75 -> Tamaño de la miniatura
- -r 1 -> Framerate (fps)
- -vframes 1 -> Número de video frames
- -y -> Sobreescribir archivo de salida
- %d.jpg -> El archivo de salida. No sé por qué razón, pero necesitas escribir “%d” en el archivo de salida, en donde ffmpeg escribirá un número secuencial acompañado de la extención (1.jpg, 2.jpg, etc). Si omites esto, la creación de miniaturas fallará.
Convertir videos a FLV con FFMPEG puede ser muy laborioso. Pero, encontrando los parámetros correctos, nos genera en segundos nuestro video convertido con una calidad aceptable. Además FFMPEG es gratuito.
AVI a FLV
ffmpeg -y -i 'videoentrada.avi' -threads 2 -s 320x240 -r 30.00 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -acodec mp3 -ar 11025 -ac 1 -ab 16k videosalida.flv
donde ffmpeg se invoca con los siguientes parámetros:
- -y -> sobreescribe archivo de salida
- -i ‘videoentrada.avi’ -> archivo de entrada
- -threads 2 -> hilos de decodificación
- -s 320×240 -> Tamaño de salida
- -r 30.00 -> Velocidad de cuadro (fps, cuadros x segundo)
- -threads 1 -> hilo de decodificación
- -pix_fmt yuv420p -> Formato del pixel
- -g 300 -> Grupo de tamaño de imágenes
- -qmin 3 -> Escala mínima del compresor de secuencia del video
- -b 512k -> Bitrate del video en bits/s
- -async 50 -> Método de sincronización de audio.
- -acodec mp3 -> Forzar audio codec a mp3
- -ar 11025 -> Frecuencia del muestreo de audio
- -ac 1 -> Número de canales de audio
- -ab 16k -> Bitrate del audio en bits/s
- videosalida.flv -> Es el archivo de salida en formato FLV
MPEG a FLV
ffmpeg -y -i 'videoentrada.mpg' -threads 2 -s 320x240 -r 29.97 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -acodec mp3 -ar 44100 -ac 2 -ab 128k videosalida.flv
Después de varios meses probando, estos son los parámetros óptimos que he encontrado para procesar mis videos. Más información, consulta la documentación de ffmpeg.
Esta es la marca de agua que colocaremos en la imagen. PNG32, fondo transparente y el logo es transparente en alpha al 50%