Está en la página 1de 14

MANUAL BSICO DEL COMANDO FFMPEG

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

Autor: Joaqun V. lvarez Martn

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-ncsa/3.0/ o envie una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, US

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

ndice de contenido
1.Introduccin.......................................................................................................................................4 2.Instalacin del comando ffmpeg........................................................................................................4 3.Ejemplos de manipulacin de vdeo y audio.....................................................................................4 4.Bibliografa......................................................................................................................................14

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

1. Introduccin
FFmpeg es un maravilloso ejemplo de software libre para la manipulacin de vdeo, audio y fotografa. Aunque naci para GNU/Linux, puede compilarse en la mayora de sistemas operativos. Entre otras cosas permite: a) Cambiar de formato. b) Comprimir, extraer imgenes y vdeo. c) Hacer un vdeo a partir de imgenes. d) Insertar marcas de agua (texto o fotografas) en un vdeo. e) Etc.

2. Instalacin del comando ffmpeg


a) En Ubuntu: sudo apt-get install ffmpeg b) En Debian: apt-get install ffmpeg

3. Ejemplos de manipulacin de vdeo y audio


1. De wmv flv:
ffmpeg -i entrada.wmv salida.flv

2. De wmv mpeg:
ffmpeg -i entrada.wmv salida.mpeg

3. De avi gif:
ffmpeg -i entrada.avi salida.gif

4. De wmv flv especificando parmetros:


ffmpeg -i entrada.wmv -ab 56 -ar 22050 -r 15 -s 320240 salida.flv

Notas: a) -ab es lel bitrate del audio, es decir, es el nmero de bits por segundo para el audio (a mayor nmero mayor calidad). b) -ar es la frecuencia del sonido en Hz. 4

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

c) -s indica la resolucin (ancho x alto) del vdeo que queremos obtener. Como es una resolucin no panormica, dar problemas si el vdeo original no est en formato panormico. d) -r es el nmero de imgenes por segundo (1 Hz = 1 / seg). Es opcional. 5. Cuando el nombre del vdeo est formado por varias palabras (por ej emplo de wmw DVD tipo PAL):
ffmpeg -i "video de entrada".wmv -target pal-dvd salida.mpeg

Nota: a) El uso de las es necesario para poder usar nombres de archivos formados por ms de una palabra. 6. De flv mp4 especificando varios parmetros:
ffmpeg -i entrada.flv -vcodec mpeg4 -s 640360 -ac 2 salida.mp4

Notas: a) -vcodec es la codificacin que queremos emplear en el vdeo. 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=estreo, 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.

7. De avi videocd (PAL):


ffmpeg -i entrada.avi -target pal-vcd salida.mpeg

Nota: a) -target especifica el tipo de formato dvd compatible. Algunas opciones a "vcd" son: "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd"...

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

8. De avi divx:
ffmpeg -i entrada.avi -s 320240 -vcodec msmpeg4v2 salida.avi

9. De dv DVD:
ffmpeg -i entrada.dv -target pal-dvd salida.mpeg

10. De mpeg xvid:


ffmpeg -i entrada.mpeg -acodec libmp3lame -vcodec xvid -b 1200kb salida.avi

Nota:
a)

-b es el bitrate del vdeo.

11. De avi dv (Digital video):


ffmpeg -i entrada.avi -target pal-dv salida.dv

12. De dv flv:
ffmpeg -i entrada.dv -ar 22050 -qscale 4 -s 380x284 -f flv saluda.flv

Notas: a) -qscale = quantum scale esto afecta a como se comprime el vdeo. A menor numero mejor calidad, aunque afecta al tamao del vdeo final. El valor 4 resulta aceptable. b) -f = formato al que se quiere forzar. 13. Extraer 120 segundos de un vdeo a partir del segundo 60:
ffmpeg -i entrada.mpeg -t 120 -ss 60 -sameq vdeo_salida.mpeg

Notas: a) -t es la duracin en segundos del vdeo que se desea extraer (en este caso 120 segundos). b) -ss es el tiempo en segundos desde donde se desea cortar el vdeo (en este caso desde e1 minuto). 6

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

c) -sameq para que el vdeo de salida mantenga la misma calidad que el vdeo de entrada. d) El tiempo tambin se puede indicar mediante el formato "hh:mm:ss[.xxx]". 14. De mpeg (por ejemplo) 3gp (tpico de telfonos mviles):
ffmpeg -i entrada.mpeg -s qcif -r 15 -ac 1 -ar 8000 -b 256000 -ab 15 salida.3gp

15. De 3gp mp4:


ffmpeg -i entrada.3gp -vcodec mpeg4 -acodec libmp3lame salida.mp4

16. Para poder ver un vdeo en el iPod/iPhone:


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 320180 -title elquequeramos salida.mp4

17. Para poder ver un vdeo en la PSP:


ffmpeg -i entrada.avi -b 300 -s 320240 -vcodec xvid -ab 32 -ar 24000 -acodec aac salida.mp4

18. Hacer una codificacin con varias pasadas:


ffmpeg -i entrada -pass 2 -passlogfile ffmpeg2pass salida

19. Pasar un vdeo a Full HD (formato 16:9):


ffmpeg -i entrada.flv -sameq -pix_fmt rgb48le -s 1920x1080 -aspect 16:9 salida.mp4

Nota: a) -pix_fmt rgb48le ayuda a minimizar la prdida de calidad, pues permite cambiar el formato del pixel de 16 bits de informacin a 48. 20. Convertir un vdeo para que ocupe menos y podamos subirlo a internet sin tener que esperar demasiado tiempo y sin que se note de forma significativa la prdida de calidad:
ffmpeg -i entrada.mpeg -sameq salida.webm

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

Nota: a) La idea es utilizar el contenedor webm con vdeo codificado en VP8 y audio codificado con theora ogg vorbis. Esto es otro ejemplo de lo que se puede hacer gracias al cdigo abierto. 21. Convertir un vdeo en imgenes jpg (hay que poner el %):
ffmpeg -i video.mpeg imagen%d.jpg

22. Extraer una imagen concreta de un vdeo (por ejemplo del segundo 10):
ffmpeg -itsoffset 0 -i video.mpeg -ss 10 -vcodec png -vframes 1 imagen.png

Nota: a) -itsoffset 0 establece el retraso en segundos sobre la captura. El formato "[-]hh:mm:ss[.xxx]" tambin est soportado. b) -vframes 1 indica que slo se desea un frame. 23. Hacer un vdeo (de 5 segundos por ejemplo) con una imagen:
ffmpeg -loop_input -i aun.png -t 5 mas_tiempo.mpeg

Nota: a) -loop input permite establecer un bucle temporal sobre la imagen. 24. Hacer que un vdeo pase a cmara lenta (slow motion). Son tres pasos: Primero:
sudo aptitude install ffmpeg mjpegtools

Segundo:
ffmpeg -vcodec copy -acodec copy -i entrada.flv -ss 00:00:05 -t 0:0:10 salida.flv

Tercero: 8

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

ffmpeg -i salida.flv -f yuv4mpegpipe - | yuvfps -s 12:1 -r 12:1 | ffmpeg -f yuv4mpegpipe -i - -b 28800k camara_lenta.flv

Notas: a) Con el paso segundo se recorta el vdeo empezando en el segundo 5 y con una duracin de 10 segundos.
b)

Con el tercer paso se reduce el framerate de 30 a 12 fps, dando lugar al efecto de cmara lenta.

c) Si en lugar de poner el framerate a 12 fps se le da un valor superior a 30 fps , se obtiene un vdeo a cmara rpida. 25. Extraer los 11 segundos (por ejemplo) primeros de un vdeo:
ffmpeg -i entrada.mpeg -t 11 salida.mpeg

26. Convertir un vdeo desde el segundo 10 hasta el segundo 12 en imgenes (hay que poner el %):
ffmpeg -i entrada.avi -ss 00:00:10 -t 2 captura%d.jpg

Nota: a) Las imgenes pueden llamarse como se desee siempre que al final del nombre se inclya la terminacin %d. 27. convertir una secuencia de imgenes en un vdeo (hay que poner el %):
ffmpeg -i imagen%d.jpg video.mpeg

Notas: a) El vdeo obtenido no tiene audio. b) Para que el cdigo anterior tenga xito es necesario que las imgenes estn nombradas como imagen1.jpg, imagen2.jpg,... Si las imgenes se llamaran 1.jpg, 2.jpg,... la lnea de cdigo sera: ffmpeg -i %d.jpg video.mpeg

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

28. Hacer un vdeo avi (la calidad aceptable depende de cada uno) de un vdeo 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 vdeo, slo lo etiqueta como xvid sin ms. 29. Grabar el escritorio (por ejemplo a 800x600):
ffmpeg -f x11grab -s 800x600 -r 25 -i :0.0 -sameq grabacion.avi

30. Crear un vdeo avi a partir de varios VOB de un dvd (son dos pasos): Primer paso:
cat VTS_01_1.VOB salida.mpeg VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB >

Segundo paso:
ffmpeg -i salida.mpeg -vcodec libx264 -s 560x420 ar 24000 -ab 128k -f avi la-peli.avi

31. Recortar un vdeo sin cambiarlo de tamao:


ffmpeg -i entrada.flv -sameq -padtop 100 -padbottom 100 salida.flv

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. 32. Recortar un vdeo cambiandolo de tamao:
ffmpeg -i entrada.flv -sameq -croptop 100 -cropbottom 100 salida.flv

10

Joaqun V. lvarez Martn. Manual bsico 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. 33. Unir varios vdeos en un nico vdeo (son dos pasos): Primero se pasan a mpeg para que estn en un formato comn:
ffmpeg -i video1.avi -sameq video1.mpeg

ffmpeg -i video2.avi -sameq video2.mpeg

En segundo y ltimo lugar se unen los vdeos resultantes usando cat:


cat video1.mpeg video2.mpeg > nuevo_video.mpeg

34. Desentrelazar un vdeo:


ffmpeg -i entrada.dv -deinterlace -acodec copy salida.dv

35. Conocer los codecs asociados a un vdeo (muy til):


ffmpeg -i video.avi

36. Poner vdeo en alta calidad con dos pases: Primer comando a ejecutar (crea una serie de archivos necesarios para el segundo paso):
ffmpeg -y -i entrada.flv -r 30000/1001 -b 2M -bt 4M -vcodec libx264 -pass 1 -vpre fastfirstpass -an salida.mp4

Segundo comando a ejecutar (a su terminacin pueden borrarse los archivos temporales usados):

11

Joaqun V. lvarez Martn. Manual bsico 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. 37. Quitar el sonido a un vdeo:
ffmpeg -i entrada.avi -sameq -an salida.avi

38. Conocer los codecs asociados a un audio (muy til):


ffmpeg -i cancion.wma

39. De mp3 wma:


ffmpeg -i entrada.mp3 salida.wma

40. Extraer audio de un vdeo:


ffmpeg -i video.mpeg -vn audio.mp3

Nota: a) -vn: video no. 41. Unir audio y un vdeo:


ffmpeg -i video.avi -i audio.mp3 todojunto.avi

42. Unir audio y un vdeo especificando un codec de audio concreto:


ffmpeg -i video.avi -i audio.mp3 -acodec libmp3lame todojunto.avi

12

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

43. Unir audio y vdeo especificando un codec de vdeo concreto:


ffmpeg -i video.avi -vcodec mpeg4 -vtag xvid todojunto.avi

44. Extraer un fragmento de un audio (es igual que para extraer un fragmento de un vdeo):
ffmpeg -i entrada.mp3 -t 120 -ss 60 -sameq salida.mp3

45. Extraer los 11 segundos primeros de un audio (igual que para un vdeo):
ffmpeg -i entrada.mp3 -t 11 salida.mp3

46. Aadir un nuevo canal de audio a un vdeo:


ffmpeg -i entrada.avi -i audio-espaol.mp3 -sameq -acodec libmp3lame -acodec libmp3lame salida.avi -newaudio

Notas:
a)

-acodec libmp3lame (codec de audio mp3) se indica dos veces, una para cada pista.

b) -newaudio indica que se aade una pista nueva de audio al archivo de salida salida.avi. 47. Extraer dos canales de audio (60 segundos por ejemplo) de un vdeo (por ejemplo si est en varios idiomas):
ffmpeg -i entrada.avi -t 60 -map 0:1 -f mp3 -ab 128 -ac 2 cancion1.mp3

ffmpeg -i entrada.avi -t 60 -map 0:2 -f mp3 -ab 128 -ac 2 cancion2.mp3

48. Unir varios audios:


cat musica1.mp3 musica2. mp3 > juntos.mp3

49. Conocer los codecs y formatos que maneja la versin instalada del comando ffmpeg:
fffmpeg -formats

13

Joaqun V. lvarez Martn. Manual bsico del comando ffmpeg

4. Bibliografa

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

También podría gustarte