Aug 19 2008

ffmpeg, codecs, libmp3lame, libxvid y otras hierbas

Published by admin at 12:16 pm under SysAdmin, Vídeo

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

Ahí, entre otras cosas, veremos:

DE mp3 MPEG audio layer 3
DEA mp3
D A mp3adu
D A mp3on4

La D indica "decoder". La E indica "encoder". La A no sé qué indica :-O
Es decir, podemos codificar (encode) si usamos la opción "-vcodec mp3 "
y no "-vcodec libmp3lame" como estábamos haciendo.

Si lo probamos:


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

7 Responses to “ffmpeg, codecs, libmp3lame, libxvid y otras hierbas”

  1. Andreu Correa Casablancaon 19 Aug 2008 at 5:32 pm

    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.

  2. OntzAon 19 Aug 2008 at 5:43 pm

    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.

  3. adminon 19 Aug 2008 at 8:47 pm

    @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.

  4. hanonimiouson 20 Aug 2008 at 2:09 pm

    Pocoyo rules!

    Gran serie de animacion :D

  5. Convertir WAV a MP3 [ffmpeg]on 07 Oct 2008 at 7:27 pm

    [...] 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). [...]

  6. [...] 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 [...]

  7. Informático de Guardiaon 11 Jun 2009 at 6:35 pm

    Por si le sirve a alguien comentar que

    A = Audio
    V = Vídeo

    Salu2

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment