DEL COMANDO
FFMPEG
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
Autor:
Joaquín V. Álvarez Martín
Licencia:
Esta obra está bajo una licencia Attribution-NonCommercial-ShareAlike 3.0 Unported de Creative
Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-
sa/3.0/ o envie una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco,
California 94105, US
2
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
Índice de contenido
1.Introducción.......................................................................................................................................4
2.Instalación del comando ffmpeg........................................................................................................4
3.Ejemplos de manipulación de vídeo y audio.....................................................................................4
4.Bibliografía......................................................................................................................................14
3
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
1. Introducción
FFmpeg es un maravilloso ejemplo de software libre para la manipulación de vídeo, audio y
fotografía. Aunque nació para GNU/Linux, puede compilarse en la mayoría de sistemas operativos.
Entre otras cosas permite:
a) Cambiar de formato.
b) Comprimir, extraer imágenes y vídeo.
c) Hacer un vídeo a partir de imágenes.
d) Insertar marcas de agua (texto o fotografías) en un vídeo.
e) Etc.
2. De wmv → mpeg:
3. De avi → gif:
Notas:
a) -ab es lel bitrate del audio, es decir, es el número de bits por segundo para el audio (a
mayor número mayor calidad).
b) -ar es la frecuencia del sonido en Hz.
4
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
c) -s indica la resolución (ancho x alto) del vídeo que queremos obtener. Como es una
resolución no panorámica, dará problemas si el vídeo original no está en formato
panorámico.
d) -r es el número de imágenes por segundo (1 Hz = 1 / seg). Es opcional.
5. Cuando el nombre del vídeo está formado por varias palabras (por ejemplo de wmw →
DVD tipo PAL):
Nota:
a) El uso de las “” es necesario para poder usar nombres de archivos formados por más de
una palabra.
Notas:
a) -vcodec es la codificación que queremos emplear en el vídeo. Es opcional. Si no
sabemos cual usar hay dos opciones: no poner nada o poner -vcodec copy.
b) -ac son los canales de audio establecidos (1=mono, 2=estéreo, 6=envolvente). Si no los
establecemos, por defecto se determina un canal.
c) -acodec especifica el codec de audio que queremos emplear. Si no sabemos cual usar
hay dos opciones: no poner nada o poner -acodec copy.
Nota:
a) -target especifica el tipo de formato dvd compatible. Algunas opciones a "vcd" son:
"svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd"...
5
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
8. De avi → divx:
9. De dv → DVD:
Nota:
a) -b es el bitrate del vídeo.
12. De dv → flv:
Notas:
a) -qscale = quantum scale esto afecta a como se comprime el vídeo. A menor numero
mejor calidad, aunque afecta al tamaño del vídeo final. El valor 4 resulta aceptable.
b) -f = formato al que se quiere forzar.
Notas:
a) -t es la duración en segundos del vídeo que se desea extraer (en este caso 120 segundos).
b) -ss es el tiempo en segundos desde donde se desea cortar el vídeo (en este caso desde e1
minuto).
6
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
c) -sameq para que el vídeo de salida mantenga la misma calidad que el vídeo de entrada.
d) El tiempo también se puede indicar mediante el formato "hh:mm:ss[.xxx]".
ffmpeg -i entrada.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell
-aic 2 -cmp 2 -subcmp 2 -s 320×180 -title elquequeramos salida.mp4
ffmpeg -i entrada.avi -b 300 -s 320×240 -vcodec xvid -ab 32 -ar 24000 -acodec aac salida.mp4
Nota:
a) -pix_fmt rgb48le ayuda a minimizar la pérdida de calidad, pues permite cambiar el
formato del pixel de 16 bits de información a 48.
20. Convertir un vídeo para que ocupe menos y podamos subirlo a internet sin tener que
esperar demasiado tiempo y sin que se note de forma significativa la pérdida de
calidad:
7
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
Nota:
a) La idea es utilizar el contenedor webm con vídeo codificado en VP8 y audio codificado
con theora ogg vorbis. Esto es otro ejemplo de lo que se puede hacer gracias al código
abierto.
22. Extraer una imagen concreta de un vídeo (por ejemplo del segundo 10):
Nota:
a) -itsoffset 0 establece el retraso en segundos sobre la captura. El formato
"[-]hh:mm:ss[.xxx]" también está soportado.
b) -vframes 1 indica que sólo se desea un frame.
23. Hacer un vídeo (de 5 segundos por ejemplo) con una imagen:
Nota:
a) -loop input permite establecer un bucle temporal sobre la imagen.
24. Hacer que un vídeo pase a cámara lenta (slow motion). Son tres pasos:
Primero:
Segundo:
ffmpeg -vcodec copy -acodec copy -i entrada.flv -ss 00:00:05 -t 0:0:10 salida.flv
Tercero:
8
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
Notas:
a) Con el paso segundo se recorta el vídeo empezando en el segundo 5 y con una duración
de 10 segundos.
b) Con el tercer paso se reduce el framerate de 30 a 12 fps, dando lugar al efecto de cámara
lenta.
c) Si en lugar de poner el framerate a 12 fps se le da un valor superior a 30 fps , se obtiene
un vídeo a cámara rápida.
26. Convertir un vídeo desde el segundo 10 hasta el segundo 12 en imágenes (hay que
poner el %):
Nota:
a) Las imágenes pueden llamarse como se desee siempre que al final del nombre se inclya
la terminación %d.
27. convertir una secuencia de imágenes en un vídeo (hay que poner el %):
Notas:
a) El vídeo obtenido no tiene audio.
b) Para que el código anterior tenga éxito es necesario que las imágenes estén nombradas
como imagen1.jpg, imagen2.jpg,... Si las imágenes se llamaran 1.jpg, 2.jpg,... la línea de
código sería: ffmpeg -i %d.jpg video.mpeg
9
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
28. Hacer un vídeo avi (la calidad aceptable depende de cada uno) de un vídeo dv (u otro
de mayor calidad):
ffmpeg -i entrada.dv -vcodec mpeg4 -vtag xvid -acodec libmp3lame -ar 22050 -ab 128k -qscale 4 -s
460x360 -f avi salida.avi
Nota:
a) -vtag es el video tag o etiqueta. No afecta a la calidad del vídeo, sólo lo etiqueta como
xvid sin más.
30. Crear un vídeo avi a partir de varios VOB de un dvd (son dos pasos):
Primer paso:
Segundo paso:
ffmpeg -i salida.mpeg -vcodec libx264 -s 560x420 ar 24000 -ab 128k -f avi la-peli.avi
Notas:
a) -padtop 100 encoge de arriba 100px.
b) -padbottom 100 encoge de abajo 100px.
c) Otras opciones son: -padleft para encoger a la izquierda y -padright para encoger a la
derecha.
10
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
Notas
a) -croptop 100 borra de arriba 100px.
b) -cropbottom 100 borra de abajo 100px.
c) Otras opciones son: -cropleft para borrar a la izquierda y -cropright para borrar a la
derecha.
ffmpeg -i video.avi
ffmpeg -y -i entrada.flv -r 30000/1001 -b 2M -bt 4M -vcodec libx264 -pass 1 -vpre fastfirstpass -an
salida.mp4
11
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
ffmpeg -y -i entrada.flv -r 30000/1001 -b 2M -bt 4M -vcodec libx264 -pass 2 -vpre hq -acodec aac -ac
2 -ar 48000 -ab 192k salida.mp4
Notas:
a) Si aac no lo admite por estar en estado experimental, puede reemplazarse por otro, por
ejemplo libmp3lame.
b) hq indica calidad alta.
c) -y indica que los archivos de salida se van a sobreescribir.
ffmpeg -i cancion.wma
Nota:
a) -vn: video no.
12
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
44. Extraer un fragmento de un audio (es igual que para extraer un fragmento de un
vídeo):
45. Extraer los 11 segundos primeros de un audio (igual que para un vídeo):
Notas:
a) -acodec libmp3lame (codec de audio mp3) se indica dos veces, una para cada pista.
b) -newaudio indica que se añade una pista nueva de audio al archivo de salida salida.avi.
47. Extraer dos canales de audio (60 segundos por ejemplo) de un vídeo (por ejemplo si
está en varios idiomas):
49. Conocer los codecs y formatos que maneja la versión instalada del comando ffmpeg:
fffmpeg -formats
13
Joaquín V. Álvarez Martín. Manual básico del comando ffmpeg
4. Bibliografía
• http://www.ffmpeg.org/
• man ffmpeg
• http://foro.noticias3d.com/vbulletin/showthread.php?t=345633
• http://www.guardarcomofilms.net
• http://mundogeek.net
• http://gnometips.com
• http://casidiablo.net
• http://www.usuadio.com
• http://www.rodrigopolo.com/ffmpeg/guia.html
• http://www.vagos.es/showthread.php?p=1055859910
• http://es.wikipedia.org/wiki/FFmpeg
14