19 cosas útiles que puedes hacer con ffmpeg

Esta es una recopilación de ejemplos de cosas útiles que se pueden hacer con ffmpeg, como puede ser convertir vídeos para PSP, iPod o iPhone, extraer el audio de un vídeo o extraer imágenes de un vídeo.

Obtener información de un vídeo

ffmpeg -i video.avi

Combinar una serie de imágenes en un vídeo

ffmpeg -f image2 -i imagen%d.jpg video.mpg

Con este comando convertiríamos todas las imágenes del directorio actual (con nombres imagen1.jpg, imagen2.jpg, etc…) en un video llamado video.mpg.

Convertir un vídeo en imágenes

ffmpeg -i video.mpg imagen%d.jpg

Con este comando se crearan varias imágenes imagen1.jpg, imagen2.jpg, … Para las imágenes resultantes se pueden usar los formatos PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF o SGI.

Convertir un vídeo para verlo 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 320×180 -title X salida.mp4

* Video original: entrada.avi
* Codec de audio: aac
* Bitrate del audio: 128kb/s
* Codec de vídeo: mpeg4
* Bitrate del vídeo: 1200kb/s
* Tamaño del vídeo: 320×180
* Vídeo generado: salida.mp4

Convertir un vídeo para verlo en la PSP

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

* Video original: entrada.avi
* Codec de audio: aac
* Bitrate del audio: 32kb/s
* Codec de vídeo: xvid
* Bitrate del vídeo: 1200kb/s
* Tamaño del vídeo: 320×180
* Vídeo generado: salida.mp4

Extraer el sonido de un vídeo, y guardarlo como MP3

ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 audio.mp3

* Video original: video.avi
* Codec de audio: mp3
* Bitrate del audio: 192kb/s
* Archivo generado: audio.mp3

Convertir un wav en MP3

ffmpeg -i audio.wav -ar 44100 audio.mp3

Convertir un avi a mpg

ffmpeg -i entrada.avi salida.mpg

Convertir un mpg a avi

ffmpeg -i entrada.mpg salida.avi

Convertir un avi a gif

ffmpeg -i entrada.avi salida.gif

Añadir el sonido de un archivo de audio a un vídeo

ffmpeg -i audio.wav -i video_entrada.avi video_salida.mpg

Convertir avi a flv

ffmpeg -i entrada.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320×240 -f flv salida.flv

Convertir avi a dv

ffmpeg -i entrada.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 salida.dv

o bien

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

Convertir avi a mpeg para reproductores de dvd

ffmpeg -i entrada.avi -target pal-dvd -ps 2000000000 -aspect 16:9 salida.mpeg

* target pal-dvd: Formato de salida
* ps 2000000000: Tamaño máximo del archivo resultante en bits (en el ejemplo, 2Gb)
* aspect 16:9: Panorámico

Comprimir avi a divx

ffmpeg -i entrada.avi -s 320×240 -vcodec msmpeg4v2 salida.avi

Comprimir Ogg Theora a Mpeg dvd

ffmpeg -i entrada.ogm -s 720×576 -vcodec mpeg2video -acodec mp3 salida.mpg

Comprimir avi a SVCD mpeg2
Para PAL:

ffmpeg -i entrada.avi -target pal-svcd salida.mpg

Para NTSC:

ffmpeg -i entrada.avi -target ntsc-svcd salida.mpg

Comprimir avi a VCD mpeg2
Para PAL:

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

Para NTSC:

ffmpeg -i entrada.avi -target ntsc-vcd salida.mpg

Codificación con varias pasadas

ffmpeg -i entrada -pass 2 -passlogfile ffmpeg2pass salida

¿Se os ocurre algún otro comando que merezca ser el 20?

Traducción de 19 comandos ffmpeg para todas las necesidades, adaptado a su vez de ffmpeg mediante ejemplos

84 comentarios en «19 cosas útiles que puedes hacer con ffmpeg»

  1. Convertir 3gp a mpeg4 …

    ffmpeg -i archivo.3gp -vcodec mpeg4 -acodec mp3 nuevoarchivo.avi

    Convertir mpeg a 3gp…
    ffmpeg -i archivo.mpeg -s qcif -r 15 -ac 1 -ar 8000 -b 256000 -ab 15 nuevoarchivo.3gp

  2. Lo de cómo convertir vídeos para el iPod Touch me viene como anillo al dedo para no tener que arrancar el apestoso Windows XP. Bueno, qué digo, si necesito el iTunes para meter los vídeos. ¿O acaso hay alguna alternativa funcional?

    1. Hola DoodoM, el gtkpod va muy bien y puedes pasar del apestoso itunes que te amarra a una sola máquina. También puedes probar de instalar el RockBox, desafortunadamente no funciona con todas las razas de ipod’s, pero en caso que lo puedas instalar vale la pena probarlo pues además de los formatos «normales» tiene codecs para ogg, flac y otros.

  3. Sencillamente genial!
    Hace años que me agarro a trompadas con todas las interfaces gráficas que existen para poder convertir video.
    Con este post estoy hecho: abro la terminal, escribo una línea, y pronto!
    Por las dudas, alguien sabe cómo bajarle la calidad a un video?
    Gracias

  4. Estos los encontré hace unos días y son interesantes, pero no son del todo buenos. Especialmente los que apuntan a formatos. El del iPod es bastante malote.

    Si recuerdo llegando a casa comparto los que he sacado al final del iPod touch que funcionan de maravilla. El que está aquí funciona fatal.

    Uno de los problemas de manejar ffmpeg es que para ser realmente poderoso tienes que hacerte (o compilar) una versión con muchísimas librerías y eso no es trivial. Voy a ver si mi version actual la puedo compilar para windows y linux, ya que tengo el fuente listo para mac.

    NOTA: lo de «input» sobra en los ejemplos si ya hay un fichero. Es un marcador de donde iría el nombre del fichero a convertir. Lo estais poniendo asi que podeis quitar lo de input.

    NOTA2: Xoan: Si conviertes a MP4 se bueno y no le pongas extensión avi. MP4 es un contenedor, principalmente. No esta bien «convertir a mp4» y dejar un «avi» al final.

    NOTA3: Hay muchos programas que manejan ffmpeg «tras bambalinas». La mayoría innecesariamente complicados. Si quereis algunos simples siempre podeis usar WinFF para Windows y Linux o Handbrake para mac. Hasta hace unos dias la mejor opcion en Mac eran VisualHub y iSquint pero han decidido salirse del mercado y no han compartido su codigo fuente. El ultimo beta de Handbrake, sin embargo, permite convertir cualquier fichero y no solo DVDs. Y tiene unos valores predeterminados excelentes.

  5. Convertir un mpg a avi
    ffmpeg -i entrada.mpg salida.avi

    Lo he probado con una película, ya que mi reproductor de DVD no reproduce el formato mpg.
    Lo que pasa es que al pasar el videa a avi pierde muchísima calidad!
    ¿Hay alguna manera de que no sea así?

    Gracias!!

  6. Pues no lo he probado pero diria que es interesante, poner una marca de agua en el video:

    ffmpeg -i /tmp/clip.mp4
    -vhook “/usr/lib/vhook/drawtext.so
    -f /usr/share/fonts/corefonts/comic.ttf -x 5 -y 5
    -t ThisIsATest.com”
    /tmp/out.avi

  7. Un problema de estos «trucos» es que están dando la impresión de que convertir cosas con ffmpeg de forma aceptable es algo simple.

    Para dejar claro cuan poco simple es, nada mejor que un ejemplo real:

    ffmpeg -i video1 -pass 1 -s 320×240 -vcodec mpeg4 -vtag XVID -b 500kb -mbd rd -flags +4mv+trell+aic -cmp 2 -subcmp 2 -g 300 -acodec copy video2.mp4

    ffmpeg -i video -pass 2 -s 320×240 -vcodec mpeg4 -vtag XVID -b 500kb -mbd rd -flags +4mv+trell+aic -cmp 2 -subcmp 2 -g 300 -acodec mp3 -ab 128 -ac 2 -async 1 D2-video1

    Eso son dos pasadas para convertir un video asegurandose que se sincronizan correctaente, se controla el tamaño y el bitrate y se especifican los formatos de destino.

    Recordad, siempre, que «avi», «mp4», «mov», «mkv» son contenedores, no codecs. Un «avi» sin mas no especifica qué codecs utiliza, un «mp4» puede contener 16 codecs diferentes de video.

    Eso sin incluir que los parametros de cada codec pueden dictar si se ve en un iPod touch, o en una PSP.

    Es por eso que surgen entradas como esta, enseñando atajos para cosas más simples.

  8. Alvaro: Lo permite, sin problema. Lo complicado viene con la fuente de esos subtitulos. Si hablas de SRT empieza a complicarse y empiezas a tener que usar mencoder o mp4box y tus opciones de formatos empiezan a limitarse.

    Si quieres que los subtitulos sean activables/desactivables entonces queda chulisimo pero bastante, bastante complicado de configurar en principio. Asi es como tengo yo subtitulos en mp4s en el ipod:
    http://www.flickr.com/photos/eduo/2798521797/in/set-72157602209052558/

  9. muy bueno el artículo, yo uso este que está faltando
    flv–>avi
    como cuando lo bajas desde youtube 😀
    ffmpeg -i entrada.flv salida.avi

  10. Falta de un formato dpg que es el formato que usa el moonshell. el reproductor para el Nintendo DS. Una vez vi como se convertia pero ya no recuerdo la pagina donde lo vi

  11. El 20.
    Que tal, crear un ringtone de un video ;).

    Si quieres el audio de un video puedes hacer esto:

    ffmpeg -i Video.flv -vn -acodec copy sonido.mp3

    o
    ffmpeg -i http://webpage.com/ruta/Video.flv -vn -acodec copy sonido.mp3

    El formato del video puede variar ;). La opcion de «-acodec copy» funciona solo si el audio del video viene en mp3, si no es asi, usa «-acodec mp3»

    Si quieres extraer solo una parte del audio, puedes hacer lo siguiente:

    ffmpeg -i Video.flv -vn -acodec copy -ss 43 -t 5 sonido.mp3

    o

    ffmpeg -i http://webpage.com/ruta/Video.flv -vn -acodec copy -ss 43 -t 5 sonido.mp3

    Este comando usa las opciones -ss (START TIME) y -t (DURATION) que permiten extraer solo una parte del audio de un video ;).

    Que tal, se queda?

  12. Bueno yo utilizo un script para convertir los videos a formato PSP. Aqui se los dejo:
    __________________________________________________

    #!/bin/bash
    [ $# -eq 1 ] || exit -1

    NUM=$RANDOM
    [ $NUM -lt 10000 ] && NUM=1$NUM

    ffmpeg -i «$1» -acodec aac -ab 128 -vcodec h264 -b 768kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -s 480×272 -aspect 16:9 -r 30000/1001 -title «$1» -f psp -flags loop -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 MAQ${NUM}.MP4

    ffmpeg -y -i «$1» -f image2 -ss 15 -vframes 1 -r 1 -s 160×120 -an MAQ${NUM}.THM

    __________________________________________________

  13. Falta el comando para convertir películas de Pajares y Esteso en películas de Hale Berry. Aparte de eso, imprescindible entrada que me guardo en los favoritos para estudiarla con detenimiento. Gracias.

  14. es muy interesante, no solo el articulo, sino los comentarios.
    Te vengo leyendo hace rato y te lo tengo que decir… sos groso, sabelo

  15. Hola,
    he intentado hacer un video a partir de imagenes y na de na!!
    La salida que me da es esta :
    manuel@manuel-laptop:~/Imágenes/perpi y psiqui y gatos$ ffmpeg -f image2 -i imagen%d.jpg video.mpg
    FFmpeg version r11872+debian_3:0.svn20080206-12ubuntu3, Copyright (c) 2000-2008 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-pp –enable-swscaler –enable-x11grab –prefix=/usr –enable-libgsm –enable-libtheora –enable-libvorbis –enable-pthreads –disable-strip –enable-libfaad –enable-libfaadbin –enable-liba52 –enable-liba52bin –enable-libdc1394 –disable-armv5te –disable-armv6 –disable-altivec –disable-vis –enable-shared –disable-static
    libavutil version: 49.6.0
    libavcodec version: 51.50.0
    libavformat version: 52.7.0
    libavdevice version: 52.0.0
    built on Oct 3 2008 22:40:31, gcc: 4.3.2
    imagen%d.jpg: I/O error occured
    Usually that means that input file is truncated and/or corrupted.
    Podeis ayudarme? ya me ha ocurrido con otras versiones de ubuntu, ahora uso la beta de intrepid y en general me va bien.
    Saludos cordiales

  16. @manuel: intentalo con mencoder:

    mencoder «mf://*.JPG» -mf fps=0.25 -vf scale=480:360 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4

    Espero que te sirva 😉

  17. Me encanta lo que escribes Raul, pero creo que no probaste antes de ponerlos XD.

    En fin, gran aporte, yo también estoy escribiendo tips sobre lo mismo, aunque un poco más completo.

    Un saludo!

  18. Hola me echan una mano es que subo videos a VIMEO y estube lellendo como hacer los video en formato para Vimeo y la verdad no me entere bien pero mencionaron esto de la consola no se si alguien sabra algo para combertirlo desde un avi

  19. Hola, muy buen tutorial pero para pasar de swf a mpg, vi una orden como esta: ffmpeg -i archivo.swf salida.mpg pero al ejecutar me sale esto:
    ———————————-
    FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-pp –enable-swscaler –enable-pthreads –enable-libvorbis –enable-libtheora –enable-libogg –enable-libgsm –enable-dc1394 –disable-debug –enable-libmp3lame –enable-libfaadbin –enable-libfaad –enable-libfaac –enable-xvid –enable-x264 –enable-liba52 –enable-amr_nb –enable-amr_wb –enable-shared –prefix=/usr
    libavutil version: 1d.49.3.0
    libavcodec version: 1d.51.38.0
    libavformat version: 1d.51.10.0
    built on Jul 29 2008 18:21:25, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
    [swf @ 0xb7f99110]Compressed SWF format not supported
    about.swf: I/O error occured
    Usually that means that input file is truncated and/or corrupted.
    ————————————–

    Espero me puedan ayudar, gracias

  20. Pingback: duckman notes » Comandos utiles con ffmpeg (o “la gloria de la edicion de video” en linux)

  21. Hola muy bueno el recurso…

    Estoy investigando acerca de programas que permiten capturar la actividad del usuario en la pantalla. ffmpeg tiene alguna opción para realizar trabajos como camtasia, camstudio… sobretodo en la plataforma Windows ????

    De antemano gracias…

  22. He instalado ffmpeg desde los repositorios de Ubuntú, pero al tratar de convertir a mp4 me figura el siguiente problema:
    Unknown decoder ‘aac’

    He googleado mucho, pero nada… Soy un usuario nuevo de Ubuntú y agradecería quien me ayude explicándome de la forma más básica que pueda.

    Entonces, ¿cómo instalo ffmpeg para que sea compatible con aac?

  23. A Eduardo:
    ……………..

    scan@bar:~/video/mpeg$ ffmpeg -i as.mpeg as.swf
    FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-pp –enable-swscaler –enable-pthreads –enable-libvorbis –enable-libtheora –enable-libogg –enable-libgsm –enable-dc1394 –disable-debug –enable-shared –prefix=/usr
    libavutil version: 1d.49.3.0
    libavcodec version: 1d.51.38.0
    libavformat version: 1d.51.10.0
    built on Jul 23 2008 22:38:24, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu7)

    Seems stream 0 codec frame rate differs from container frame rate: 2997.00 (2997/1) -> 29.97 (30000/1001)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘as.mpeg’:
    Duration: 00:09:35.0, start: 0.000000, bitrate: 448 kb/s
    Stream #0.0(und): Video: mpeg4, yuv420p, 320×240, 29.97 fps(r)
    Stream #0.1(und): Audio: mp2, 22050 Hz, mono, 128 kb/s
    Output #0, swf, to ‘as.swf’:
    Stream #0.0: Video: flv, yuv420p, 320×240, q=2-31, 200 kb/s, 29.97 fps(c)
    Stream #0.1: Audio: 0x0000, 22050 Hz, mono, 64 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Unsupported codec for output stream #0.1

    ……………….
    A mí lo que me falta es averiguar el codec: Unsupported codec for output stream #0.1

  24. Hola, he estado probando a pasar imágenes a mpg y avi, pero en el vídeo resultante, las imágenes pasaban demasiado rápido.Al final he podido solucionarlo. Si a alguien le ha pasado lo mismo el comando que he utilizado es el siguiente:

    ffmpeg -f image2 -r 1 -i imagen%d.jpg -r 25 video.avi
    Esto deja un segundo por imagen aprox. Y si quereis que vayan más despacio:

    ffmpeg -f image2 -r 0.2 -i imagen%d.jpg -r 25 video.avi
    Este último deja unos 5 segundos por imagen

    Por otra parte, sólo puedo convertir las 9 primeras fotos del directorio, desde la «imagen1.jpg» hasta «imagen9.jpg». Desde la «imagen10.jpg» en adelante no me las reconoce.
    ¿Alguien sabe la expresión que tengo que poner en vez de «imagen%d.jpg» para poder convertir las 27 fotos que tengo?

    1. por lo q no te funciona de la 9 en adelante es por tu cogigo establece 1 digito para q te jale de la 10 al 99 tenes q hacer otro codigo imagen%2d

  25. Pasar imágenes a mpg y avi solucionado:

    Al final lo he podido solucionar visitando la página web del proyecto ffmpeg (http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html#SEC7)
    , la expresión que hay que utilizar es : «imagen%02d.jpg» (esto vale para las fotos con nombre: imagen00.jpg, imagen01.jpg, imagen02.jpg etc… hasta la imagen99.jpg
    Si utilizamos la expresión: «imagen%03d.jpg» valdrá para las fotos con nombre: imagen000.jpg, imagen001.jpg, imagen002.jpg etc… hasta la imagen999.jpg

  26. ¡Felicidades!

    Tu página me ha sacado de unos buenos líos … muchas gracias y un cordial saludo.

    … realmente tan bueno ésto … en inglés no encontré algo tan bonito.

  27. Pingback: Capturar fotogramas de un vídeo desde la consola

  28. Muy buenos los consejos!!! Me encantan los comandos!! lo malo es que no me s ninguno…

    Una pregunta:
    ¿Como puedo seleccionar una pista de audio de un archivo mkv al pasarlo a mpeg para DVD?
    Por defecto me coge la 1 que esta en ingles.

    Gracias

  29. Me tira el siguiente error cuando quiero pasar d avi a flv… haber si puedes ayudarme

    leslie@cheer:~/Escritorio/Super.2009.Cam.Latino.part/Super.2009.Cam.Latino.part1$ ffmpeg -i Super.Cam.Latino.\[Www.TheBarsally.coM\].avi -ab 56 -ar 44100 -b 200 -r 15 -s 320×240 -f flv super.flv

    FFmpeg version git-91be88c, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-nonfree –enable-shared –enable-pthreads –enable-libx264 –enable-libfaac –enable-libtheora
    libavutil 50. 3. 0 / 50. 3. 0
    libavcodec 52.32. 0 / 52.20. 0
    libavformat 52.36. 0 / 52.31. 0
    libavdevice 52. 2. 0 / 52. 1. 0
    libswscale 0. 7. 1 / 0. 7. 1
    built on Jul 24 2009 21:22:03, gcc: 4.3.3

    Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -> 29.97 (30000/1001)
    Input #0, avi, from ‘Super.Cam.Latino.[Www.TheBarsally.coM].avi’:
    Duration: 01:18:05.58, start: 0.000000, bitrate: 1340 kb/s
    Stream #0.0, 1001/30000: Video: mpeg4, yuv420p, 352×264 [PAR 1:1 DAR 4:3], 1/30000, 29.97 tbr, 29.97 tbn, 30k tbc
    Stream #0.1, 1/16000: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
    WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
    WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
    Incorrect frame size

  30. ¿Alguien sabe como cambiar la calidad de un archivo mp3 sin que borre la ID3 tag del archivo en cuestión? He estado buscando en el manual y no encuentro nada. Gracias

  31. Estoy intentando cambiar un .flv a .swf y me da el siguiente error:

    Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.92 (359/12)
    Input #0, flv, from ‘atento_01.flv’:
    Duration: 00:01:21.71, start: 0.000000, bitrate: 128 kb/s
    Stream #0.0: Video: flv, yuv420p, 320×176, 29.92 tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
    File ‘atento_01.swf’ already exists. Overwrite ? [y/N] y
    Output #0, swf, to ‘atento_01.swf’:
    Stream #0.0: Video: flv, yuv420p, 320×176, q=2-31, 200 kb/s, 90k tbn, 29.92 tbc
    Stream #0.1: Audio: 0x0000, 44100 Hz, stereo, s16, 64 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Unsupported codec for output stream #0.1

    Alguien podría ayudarme ?

    Gracias !

  32. En windows se puede crear con SUPER un 3gp que lo podemos ver mientras lo estamos descargando. Pero no he podido hacer eso con ffmpeg para 3gp en linux. Alguien sabe como hacerlo?

    1. Explícate mejor, no entiendo lo que quieres hacer :/. ffmpeg sirve para encodar/transformar multiples formatos de vídeo, no para descargar, si quieres descargar un vídeo esta wget o de forma gráfica tienes el clásico JDonwloader.

      Para muxear o transformar vídeos esta ffmpeg y mencoder ambos son la mar de buenos, en Windows yo utilizaba un programa algo feo y que tenía muchos errores llamado TotalvideoConverter también probé con otro que se llamaba FormatFactory que decían que era el mejor, y si que lo era pero aun así no podía con muchos formatos y era un martirio, realmente era un fastidio que no encontrará eb aquella epoca ffmpeg, sin duda el mejor de todos y con mencoder ya son dos caballos de batalla que no tienen rival, rápidos eficaces nunca me han fallado.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.