From Fedora Project Wiki

< FWN‎ | Beats
Revision as of 14:36, 24 March 2011 by Pcalarco (talk | contribs)

LATAM Fedora!

LATAM Fedora is a regular column of Spanish language contributions around open source software. It is our first expansion into incorporating foreign language content into FWN.

This week's contribution is from Guillermo Gómez, a primer on Ruby Ping. Enjoy!

SOX

SoX[1], la navaja suiza para la manipulación de audio.

Agregando Soporte mp3 y m4a

Fedora no incluye soporte para MP3 en sus paquetes multimedia, debido a problemas de patentes sobre el algoritmo que permite comprimir y descromprimir mp3. De forma similar ocurre con el formato m4a. Sin embargo usted puede vivir en ciertos países donde no apliquen las limitaciones de la legislación de los EEUU, entonces si es así, veamos cómo podemos agregar el soporte deseado para mp3 y m4a entre otros formatos a sox.

Agregar soporte recompilando el Source RPM (SRPM)

Requisitos
   * Herramientas para compilación
   * rpmbuild
   * yum-buildep
   * De RPM Fusion, lame, lame-libs, lame-devel, libmad, libmad-devel, ffmpeg y ffmpeg-devel

El procedimiento de instalación de software es, como root:

Herramientas para compilar

$ yum -y groupinstall "Development Tools" 
$ yum -y install rpmdevtools

Dependencias para poder compilar sox según Fedora

$ yum-builddep -y sox

Librerías adicionales para la compilación (soporte mp3)

$ yum -y install lame lame-libs lame-devel
$ yum -y install libmad libmad-devel
$ yum -y install ffmpeg ffmpeg-devel

Construcción e Instalación del RPM

Ahora para reconstruir SoX con soporte mp3 el procedimiento como usuario regular es:

$ cd
$ rpmdev-setuptree (si no lo ha hecho antes)
$ yumdownloader --source sox (descarga los fuentes srpm)
$ rpmbuild --rebuild sox-14.3.0-1.fc13.src.rpm (compila/construye rpm)
$ cd rpmbuild/RPMS/x86_64
$ su
*contraseña*
# rpm -vhi --force sox-14.3.0-1.fc13.x86_64.rpm 
Preparando...            ########################################### [100%] 
1:sox                    ########################################### [100%] 
...
# sox -h
...
AUDIO FILE FORMATS: 8svx aif aifc aiff aiffc al amb au avi avr caf cdda cdr cvs cvsd cvu dat dvms f32 f4 f64 f8 fap ffmpeg   flac fssd gsm hcom htk ima ircam la lpc lpc10 lu m4a mat mat4 mat5 maud mp2 mp3 mp4 mpg nist ogg paf prc pvf raw s1 s16 s2 s24 s3 s32 s4 s8 sb sd2 sds sf sl smp snd sndfile sndr sndt sou sox sph sw txw u1 u16 u2 u24 u3 u32 u4 u8 ub ul uw vms voc vorbis  vox w64 wav wavpcm wmv wv wve xa xi
PLAYLIST FORMATS: m3u pls
...

NOTA: Procedimiento probado en F8, F9, F10, F11, F12 y F13, en el tiempo las versiones pueden cambiar, en el ejemplo se muestra la versión más reciente. Para versiones anteriores a F13, el compilado es para i586, a partir de F12 es i686. En el caso de x86_64, el compilado está en el directorio rpmbuild/RPMS/x86_64 .

Note la inclusión de mp3 y m4a en los formatos soportados. Ahora puede reproducir su mp3 o m4a desde la consola. Sox también permite convertir entre formatos y tiene muchas otras aplicaciones. Abajo reproduzco un mp3 de AC/DC.

Convertir mp3

Otra aplicación común de sox es convertir de un formato a otro, por ejemplo de mp3 a cdr o wav, con cdr se está listo para quemar un CD Audio :)

$ sox -V Boinga.mp3 Boinga.cdr
sox: Detected file format type: mp3
sox: Input file Boinga.mp3: using sample rate 44100
size shorts, encoding MPEG audio (layer I, II or III), 2 channels
sox: Output file Boinga.cdr: using sample rate 44100
size shorts, encoding signed (2's complement), 2 channels
sox: Output file: comment "Processed by SoX" 

Convirtamos ahora a un formato libre, ogg.

$ sox -V Boinga.mp3 Boinga.ogg
sox: Detected file format type: mp3
sox: Input file Boinga.mp3: using sample rate 44100
size shorts, encoding MPEG audio (layer I, II or III), 2 channels
sox: Output file Boinga.ogg: using sample rate 44100
size shorts, encoding Vorbis, 2 channels
sox: Output file: comment "Processed by SoX" 

Veamos los tamaños resultantes solo por curiosidad incluyendo otros formatos sin ningún parámetro adicional al convertir, es decir, usando los valores por omisión.

$ ls -lh Boinga*
-rw-rw-r-- 1 gomix gomix  23M Sep 22 14:50 Boinga.au
-rw-rw-r-- 1 gomix gomix  23M Sep 22 14:51 Boinga.avr
-rw-rw-r-- 1 gomix gomix  23M Sep 22 14:24 Boinga.cdr
-rw-rw-r-- 1 gomix gomix 2.6M Nov 11  2006 Boinga.mp3
-rw-rw-r-- 1 gomix gomix 1.5M Sep 22 14:26 Boinga.ogg
-rw-rw-r-- 1 gomix gomix  23M Sep 22 14:35 Boinga.wav
AplicacionesDeUsuario_Audio_Sox_mp3_sox-play-mp3.png (25.2 kB) 

Guillermo Gómez