Voy a resumir algo que encontré muy interesante, una serie de 7 comandos con FFMPEG desde lo más elemental hasta cosas muy interesantes como veréis:
Convertir formatos de audio:
ffmpeg -i my_audio.wav my_audio.mp3
Es sólo un ejemplo de lo que puedes hacer, -i significa “input”. Para saber qué formatos soporta, basta con ejecutar el siguiente comando:
ffmpeg -formats
Aparecerá una larga lista de formatos con una D y/o una E delante que indican si se puede decodificar, codificar o ambas cosas a la vez.
Convertir video con ffmpeg
La misma mecánica anterior con un parámetro extra:
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv
El parámetro -s indica el tamaño que tendrá el video.
Extraer imágenes de un video:
ffmpeg -i test.mpg image%d.jpg
El comando anterior indica que simplemente queremos imágenes (ojo con el %d al final del archivo). Pero esto puede resultar un lío, ya que, a menos que queramos hacer un gif animado enorme, una serie de imágenes estáticas de un video no tienen mayor utilidad y más aún si aparecerán probablemente 25 imágenes por cada segundo lo cual lo hará aún peor.
ffmpeg -i test.mpg -r 1 image%d.jpg
Aquí ya ha mejorado la cosa, aparece el parámetro -r con el que le estamos indicando a ffmpeg que queremos sólo una imagen por segundo, un “frame” por segundo. Pero todavía no es suficiente, necesitamos controlar cómo escoger la imagen desde el momento apropiado.
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png
El parámetro -ss nos permite indicarle a ffmpeg un lapso de tiempo. El -r 25 es la cantidad de frames por defecto (de hecho, no hace falta ponerlo) y puede estar bien para un gif animado pero ser demasiado para una ilustración.
Extraer un audio de un video
También es una tarea sencilla con ffmpeg:
ffmpeg -i video.avi -f mp3 audio.mp3
Ojo con el parámetro “-f mp3″ puesto en ese lugar para que fuerce a un formato de video a ser convertido a audio. El mismo efecto se logra con el comando “-vn”.
Crear una captura de video (screencast)
Mira, esto es interesante:
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg
En este caso no es extrapolable a Windows. El x11grab es una especie de códec que nos permite capturar lo que estamos haciendo en pantalla. El parámetro -s el tamaño y la forma del video que creará (anteriormente sólo indicamos el códec a utilizar) y el parámetro -i en este caso como no hay archivo, pues, el origen exacto del video que es :0.0 el número de nuestro servidor X.
A mi la wxga no me funcionó, usé vga y empezó a grabar.
Convertir imágenes a video:
Recuerdan el paso anterior para convertir videos en imágenes. Suponiendo que teníamos un lote de imágenes guardadas y las queremos volver a “animar”, ffmpeg nos permite hacerlo de la siguiente manera:
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
-f image2 es el “forzador de formato” genérico para convertir imágenes. Como ven, es tan sencillo como el ejercicio inverso.
Capturar video desde una webcam
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
Este comando nos permite capturar tanto el audio del micrófono (/dev/dsp) como el video (/dev/video0), por regla general debería funcionar, pero en mi caso no ha sido así y no consigo encontrar la solución. Eso para que no me pregunten.
El comando también puede emplearse sin audio quitando “-f oss -i /dev/dsp” llegando también a comandos tan breves como:
ffmpeg -sameq -s 640x480 -i /dev/video0 output-filename.mpg
Evidentemente hay muchas más cosas que se pueden hacer con ffmpeg (ahora mismo se me ocurre que podría hacer una captura de pantalla con ffmpeg aunque para eso ya tenemos a scrot). Existe un programa llamado Super que permite utilizar de forma gráfica ffmpeg en Windows.
Del original de Linuxaria