Victor Castelan en Agosto 6, 2008

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.

Esta es la marca de agua que colocaremos en la imagen. PNG32, fondo transparente y el logo es transparente en alpha al 50% Esta es la imagen fuente. La imagen de la izquierda, será sobrepuesta en esta imagen.
(click para agrandar)

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.



Victor Castelan en Agosto 5, 2008

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á.
Victor Castelan en Agosto 5, 2008

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.