Ikasten.IO
Learning, Aprendiendo

ffmpeg, codecs, libmp3lame, libxvid y otras hierbas 19 agosto, 2008

Quiero convertir un video descargado de YouTube a formato AVI (xvid, mp3). Lo primero: eso de mp3 es tabú para el conversor ffmpeg que viene de serie en Ubuntu. Hay que instalar el ffmpeg-sin-miedos del repositorio Medibuntu.

Una vez hecho, pasemos a la conversión:


$ ffmpeg -i pocoyo_bed_time.flv -s 320×240 -r 24 -acodec libmp3lame -vcodec libxvid -vtag XVID -f avi -qscale 3 -g 300 -deinterlace -ab 56k -ar 24000 -async 1 pocoyo_bed_time.avi

….
Unknown codec ‘libmp3lame’

Vaya por dios. ¿No hay soporte libmp3lame en ffmpeg? Pero ¿no era eso lo que precisamente aportaba la versión de Medibuntu?

Veamos:


juanan@morton:~/Desktop/zen$ ffmpeg -version
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)
ffmpeg SVN-rUNKNOWN
libavutil 3212032
libavcodec 3352064
libavformat 3344896

Pues en el configure se ve claramente –enable-libmp3lame .
¿Qué ocurre? Que nos quieren volver locos con los nombres 🙂 Para averiguar el nombre del encoder necesario, hay que realizar el conjuro mágico:


$ ffmpeg -formats | grep -i mp3

juanan@morton:~/Desktop/zen$ ffmpeg -i pocoyo_bed_time.flv -s 320×240 -r 24 -acodec mp3 -vcodec libxvid -vtag XVID -f avi -qscale 3 -g 300 -deinterlace -ab 56k -ar 24000 -async 1 pocoyo_bed_time.avi

Unknown codec ‘libxvid’

El error es otro… y ya sabéis cómo resolver. La orden final correcta sería:

$ ffmpeg -i pocoyo_bed_time.flv -s 320x240 -r 24 -acodec mp3 -vcodec xvid -vtag XVID -f avi -qscale 3 -g 300 -deinterlace -ab 56k -ar 24000 -async 1 pocoyo_bed_time.avi

  • Otra opción sería pasarlo al formato abierto ogg con ffmpeg2theora 🙂 , tan facil como:

    ffmpeg2theora video.flv

    el resultado es video.ogg o video.ogv , y parece más sencillo (no sé si los resultados son peores).

    yo lo utilizo en un script juntamente con youtube-dl para automatizar la descarga y conversión de los videos de youtube, pues no tengo adobe flash instalado.

  • OntzA dice:

    Si quieres convertir video y audio de un formato a otro la mejor solución es usar mencoder, que además de soportar todos los codecs de ffmpeg añade otros y es más fácil.

    Te sugiero que no recomprimas el audio, no sé cómo será el flv que tienes pero por defecto suelen ser mp3, así que con mencoder sería cuestión de usar la opción -oac copy.
    Si necesitas recomprimirlo el mencoder que viene con ubuntu include liblame, el codec se llama mp3lame.

  • admin dice:

    @Andreu: no lo he dicho, pero el vídeo lo necesito en el formato indicado porque va a parar a un player portátil (Creative Zen) que sólo soporta xvid (y wmv, que todavía sería peor 😉

    @Ontza: mencoder también lo he probado y sí, funciona bien. Realmente no tengo ninguna pega en usar uno u otro, me he inclinado en esta ocasión por ffmpeg. Lo de recomprimir el audio, también lo he hecho para ajustarlo al formato que usa el player portátil.

  • hanonimious dice:

    Pocoyo rules!

    Gran serie de animacion 😀

  • […] salida.mp3, es el nombre que tendrá el fichero resultante. Importante: si te aparece un error como Unknown encoder ‘mp3’ intenta poner libmp3lame después de -acodec (quizas te interese leer esto). […]

  • […] primera opcion. Lo mismo sucede con el codec de audio mp3 y talvez suceda con algun otro codec. En DiarioLinux muestran como saber los codecs que pueden ser usados con ffmpeg (el corazon de WinFF) con el […]

  • Por si le sirve a alguien comentar que

    A = Audio
    V = Vídeo

    Salu2

  • Tkoth dice:

    es necesario instalar, para codificar mp3, es decir, para que el archivo de salida este en formato mp3, el paquete ubuntu-restricted-extras

  • Zorel dice:

    SOLUCIÓN

    no es necesario cambiar nada

    solo se necesita instalar libavcodec-extra-52

    es decir:

    sudo apt-get install libavcodec-extra-52

    y funciona con libmp3lame sin problemas

  • Angelo3ag dice:

    Muxas gracias Zorel, me soluciono el problema…
    solo con teclear esto en la terminal: sudo apt-get install libavcodec-extra-52

    🙂 gracias por la solución.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *