lunes, mayo 19, 2008

Mini: ¿Cómo Codificar archivos MP3 con LAME en GNU/Linux Debian?


Paso 1: Descargar el código fuente de LAME

Para quien nunca ha escuchado hablar de LAME, aquí transcribo la descripción brindada por Wikipedia:

"LAME LAME (acrónimo recursivo de LAME Ain't an MP3 Encoder, Lame no es un códec MP3) es un codificador (códec) de MPEG Audio Layer III (MP3) que puede ser usado con la mayoría de programas que convierten archivos WAV a archivos MP3 o desde otros formatos o soportes.

Destaca por su espectacular rapidez, por la posibilidad de elegir la tasa de bits (calidad, 128 Kbps, 160 Kbps, variable, ..) y el modo joint stereo. Este software tiene una licencia código abierto, lo cual permite que personas de todo el mundo trabajen en su desarrollo.

Este códec funciona por intérprete de órdenes o bien integrado en otras aplicaciones capaces de usarlo como: Audacity, AudioCrusher, Audiograbber, Text Aloud MP3, Easy CD-DA Extraction, CDex, ALF, etc."

LAME puede ser descargado de:

http://lame.sourceforge.net/download.php

Paso 2: Descomprimir LAME

denis@debian2:~/mp3debian$ ls
lame-3.97.tar.gz

denis@debian2:~/mp3debian$ tar -xvzf lame-3.97.tar.gz
lame-3.97/
lame-3.97/mac/
lame-3.97/mac/Precompile_Common.h
lame-3.97/mac/MacDLLMain.c
lame-3.97/mac/LAME_Classic_Final.pch
lame-3.97/mac/LAME_Classic_Debug.pch
.....
lame-3.97/acinclude.m4
lame-3.97/README
denis@debian2:~/mp3debian$

Paso 3: Compilar LAME

En este paso dentro de la carpeta recién descomprimida, ejecutar el script ./configure el cual revisará que se cumplan todos los requisitos de librerías y dependencias en nuestro sistema para poder proceder luego a compilar el código fuente, en este paso es probable que aparezcan mensajes de que nos falta X o Y programa o librería, estos tipos de problemas se solucionan fácil y rápido instalando el programa o librería necesaria y luego ejecutar nuevamente ./configure hasta que todo salga bien.

denis@debian2:~/mp3debian/lame-3.97$ ls
acinclude.m4 configure frontend lame.spec.in Makefile.am.global README.WINGTK
aclocal.m4 configure.in HACKING lame_vc6.dsw Makefile.in STYLEGUIDE
ACM COPYING include lame_vc7.sln Makefile.MSVC testcase.mp3
API debian INSTALL libmp3lame Makefile.unix testcase.wav
ChangeLog DEFINES INSTALL.configure LICENSE misc TODO
config.guess depcomp install-sh ltconfig missing USAGE
config.h.in Dll lame.bat ltmain.sh mkinstalldirs
configMS.h doc lame_projects_vc6.dsp mac mpglib
config.sub dshow lame.spec Makefile.am README


denis@debian2:~/mp3debian/lame-3.97$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
......
config.status: creating ACM/tinyxml/Makefile
config.status: creating lame.spec
config.status: creating mac/Makefile
config.status: creating config.h
config.status: executing depfiles commands
denis@debian2:~/mp3debian/lame-3.97$

Una vez ejecutado el script configure proceder a compilar LAME con "make"


denis@debian2:~/mp3debian/lame-3.97$ make
make all-recursive
make[1]: se ingresa al directorio `/home/denis/mp3debian/lame-3.97'
Making all in mpglib
make[2]: se ingresa al directorio `/home/denis/mp3debian/lame-3.97/mpglib'
......
make[2]: se sale del directorio `/home/denis/mp3debian/lame-3.97/mac'
make[2]: se ingresa al directorio `/home/denis/mp3debian/lame-3.97'
make[2]: No se hace nada para `all-am'.
make[2]: se sale del directorio `/home/denis/mp3debian/lame-3.97'
make[1]: se sale del directorio `/home/denis/mp3debian/lame-3.97'


Paso 4: Instalar LAME

Si todo sale bien, estamos listos para instalar LAME en nuestro GNU/Linux Debian, para lo cual necesitamos estar como super usuario y ejecutar el comando: make install

denis@debian2:~/mp3debian/lame-3.97$ su
Password:
debian2:/home/denis/mp3debian/lame-3.97# make install
Making install in mpglib
make[1]: se ingresa al directorio `/home/denis/mp3debian/lame-3.97/mpglib'
make[2]: se ingresa al directorio `/home/denis/mp3debian/lame-3.97/mpglib'
make[2]: No se hace nada para `install-exec-am'.
make[2]: No se hace nada para `install-data-am'.
make[2]: se sale del directorio `/home/denis/mp3debian/lame-3.97/mpglib'
make[1]: se sale del directorio `/home/denis/mp3debian/lame-3.97/mpglib'
Making install in libmp3lame
make[1]: se ingresa al directorio `/home/denis/mp3debian/lame-3.97/libmp3lame'
Making install in i386
....
make[2]: No se hace nada para `install-exec-am'.
make[2]: No se hace nada para `install-data-am'.
make[2]: se sale del directorio `/home/denis/mp3debian/lame-3.97'
make[1]: se sale del directorio `/home/denis/mp3debian/lame-3.97'

Paso 5: Leer la ayuda de LAME

Una vez que está instalado posiblemente te gustaría leer la ayuda, lo cual puede lograrse usando "man" o con el parámetro --help del nuevo binario que se acaba de instalar llamado "lame".

debian2:/home/denis/mp3debian/lame-3.97# exit
exit
denis@debian2:~/mp3debian/lame-3.97$ man lame
lame(1) LAME audio compressor lame(1)

NAME
lame - create mp3 audio files

SYNOPSIS
lame [options]

DESCRIPTION
LAME is a program which can be used to create compressed audio files.
(Lame ainât an MP3 encoder). These audio files can be played back by
popular MP3 players such as mpg123 or madplay. To read from stdin, use
"-" for . To write to stdout, use a "-" for .

OPTIONS
Input options:
....

denis@debian2:~/mp3debian/lame-3.97$ lame --help
LAME 32bits version 3.97 (http://www.mp3dev.org/)

usage: lame [options] [outfile]

and/or can be "-", which means stdin/stdout.

RECOMMENDED:
lame -V2 input.wav output.mp3

OPTIONS:
-b bitrate set the bitrate, default 128 kbps
-h higher quality, but a little slower. Recommended.
-f fast mode (lower quality)
-V n quality setting for VBR. default n=4
0=high quality,bigger files. 9=smaller files
--preset type type must be "medium", "standard", "extreme", "insane",
or a value for an average desired bitrate and depending
on the value specified, appropriate quality settings will
be used.
"--preset help" gives more info on these

--longhelp full list of options

denis@debian2:~/mp3debian/lame-3.97$


Paso 6: Convertir un archivo wav en mp3

Dependiendo de la calidad con que la que usted desea convertir su archvo wav en mp3 las opciones pasadas al binario lame pueden variar. La forma más sencilla de convertir un archivo wav a mp3 usando las configuraciones por defecto de lame es: lame ruta_archivo.wav

El ejemplo mostrado a continuación convertirá un archivo wav en un mp3 con variable bit rate (tasa de bits variable).

denis@debdenis:~/Desktop/english/phrases_v2/lectura$ ls
frases.wav

denis@debdenis:~/Desktop/en$ lame -V 4 frases.wav
LAME 3.97 32bits (http://www.mp3dev.org/)
Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
Encoding frases.wav to frases.wav.mp3
Encoding as 44.1 kHz VBR(q=4) j-stereo MPEG-1 Layer III (ca. 10x) qval=3
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
2200/15779 (14%)| 0:09/ 1:05| 0:12/ 1:27| 6.2740x| 1:15
32 [ 0]
40 [ 0]
48 [ 0]
56 [ 2] *
64 [ 7] *
80 [ 121] ***************
96 [ 458] ******************************************************
112 [ 579] ********************************************************************
128 [ 372] ********************************************
160 [ 418] **************************************************
192 [ 205] *************************
224 [ 37] *****
256 [ 1] *
320 [ 0]
-----------05:54---------------------------------------------------------------
kbps MS % long switch short %
127.9 100.0 38.8 17.6 43.6

denis@debdenis:~/Desktop/english/phrases_v2/lectura$ ls
frases.wav frases.wav.mp3
denis@debdenis:~/Desktop/english/phrases_v2/lectura$


Lo aquí expuesto también ha sido probado en SuSE Linux, y no dudo que pueda funcionar de manera similar en otras distribuciones de Linux.

4 comentarios:

  1. buenisimo... bajando lame

    ResponderEliminar
  2. Que bueno que te sirviera!

    ResponderEliminar
  3. excelente amigo muchisimas gracias por explicar tan bien.....

    mil gracias me sirvio muchisimo

    ResponderEliminar