LinuxForum.Fans
Тема

Cent OS 5.5 проблема поддержки mp3 в программе sox

Автор: Xlighte 13 сообщений 6125 просмотров
#82613

Приветствую! Столкнулся с такой проблемой:
1. Установлена программа sox:

Показать
[root@asterisk-org etc]# sox -h
sox: Version 12.18.1

Usage: [ gopts ] [ fopts ] ifile [ fopts ] ofile [ effect [ effopts ] ]

gopts: -e -h -p -q -S -V

fopts: -r rate -c channels -s/-u/-U/-A/-a/-i/-g/-f -b/-w/-l/-d -v volume -x

effect: avg band bandpass bandreject chorus compand copy dcshift deemph earwax echo echos fade filter flanger highp highpass lowp lowpass mask mcompand noiseprof noisered pan phaser pick pitch polyphase rate repeat resample reverb reverse silence speed stat stretch swap synth trim vibro vol

effopts: depends on effect

Supported file formats: aiff al alsa au auto avr cdr cvs dat vms gsm hcom la lu maud nul ossdsp prc raw sb sf sl smp sndt sph 8svx sw txw ub ul uw voc vorbis vox wav wve

2. Там есть строчка - Supported file formats в которой отсутствует формат mp3
3. В мане sox вычитал следующее в разделе FILE TYPES:

Показать
.mp3 MP3 Compressed Audio
MP3 audio files come from the MPEG standards for audio and video compression. They are a lossy compression format that achieves good compression rates with a minimum amount of quality loss. Also see Ogg Vorbis for a simi-
lar format. MP3 support in SoX is optional and requires access to either or both the external libmad and libmp3lame libraries. To see if there is support for Mp3 run sox -h and look for it under the list of supported file
formats as "mp3".

4. Ясно, что нужно поставить две либы libmad\libmp3lame и подружить их с sox.
5. Поставил libmad (нашел вот такую доку: http://www.bog.pp.ru/dw/audiolib.html#libmad, поставил либу)
6. Поставил libmp3lame (Вот тут нашел rpm: http://www.rpmfind.net/linux/rpm2html/search.php?query=libmp3lame поставил «libmp3lame-3.96.1-4.i386.rpm»

Sox по прежнему не понимает mp3 вывод sox -h остался такой же, как я приводил выше.
Ну и собственно вопрос - как сбороть сию оказию?

#82627
Xlighte написал:
Sox по прежнему не понимает

что значит "не понимает"? подробнее напишите

#82630

вообще то так:
yum install libmad
yum install ffmpeg
yum install lame
yum install sox

в итоге:
#whereis libmp3lame
libmp3lame: /usr/lib/libmp3lame.so

пакет libmp3lame входит в состав ffmpeg или lame, точно сказать сейчас не могу, вот как то так)

#82639

Hrafn
При наборе команды sox -h (дает общую информацию о пакете и о поддерживаемых форматах)
Выдает:

Показать
[root@asterisk-org etc]# sox -h
sox: Version 12.18.1

Usage: [ gopts ] [ fopts ] ifile [ fopts ] ofile [ effect [ effopts ] ]

gopts: -e -h -p -q -S -V

fopts: -r rate -c channels -s/-u/-U/-A/-a/-i/-g/-f -b/-w/-l/-d -v volume -x

effect: avg band bandpass bandreject chorus compand copy dcshift deemph earwax echo echos fade filter flanger highp highpass lowp lowpass mask mcompand noiseprof noisered pan phaser pick pitch polyphase rate repeat resample reverb reverse silence speed stat stretch swap synth trim vibro vol

effopts: depends on effect

Supported file formats: aiff al alsa au auto avr cdr cvs dat vms gsm hcom la lu maud nul ossdsp prc raw sb sf sl smp sndt sph 8svx sw txw ub ul uw voc vorbis vox wav wve

, где в "поддерживаемых форматах файлов" mp3 по прежнему не значится.

#82641

Насколько я понимаю, необходимо пересобирать sox, поскольку закрытый формат, и сам sox собирается без поддержки этого формата.

#82647

Hrafn
А как его интересно пересобрать? Вы имеете в виду из тарбола и (возможно) при ./configure указать что то типо --with-libmp3lame --with-libmad?
Я просто ставил его yum-ом. И переустанавливал (yum reinstall) после подгруза библиотек.

i2ks
Не получается проинсталлировать ничего из предложенных вами пакетов, хотя yum вроде настроен и репы там есть (умолчальные правда, сам ничего не добавлял, т.к. не знаю что)
вот вывод:

Показать

[root@asterisk-org etc]# yum install libmad
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: [url=ftp://ftp.chg.ru]ftp.chg.ru[/url]
* base: [url=ftp://ftp.chg.ru]ftp.chg.ru[/url]
* epel: [url=ftp://ftp.rhd.ru]ftp.rhd.ru[/url]
* extras: [url=ftp://ftp.chg.ru]ftp.chg.ru[/url]
* ius: download.srv.ro
* updates: [url=ftp://ftp.chg.ru]ftp.chg.ru[/url]
Setting up Install Process
No package libmad available.
Nothing to do

пакет libmp3lame входит в состав lame, тут вы совершенно правы.

#82650
Xlighte написал:
Не получается проинсталлировать ничего из предложенных вами пакетов, хотя yum вроде настроен и репы там есть (умолчальные правда, сам ничего не добавлял, т.к. не знаю что)

добавьте репу: rpmfusion-free

а пересобирать из src.rpm

#82651

Xlighte, репозиторий rpmforge надо подкл, тогда поставится

#82659

i2ks, Hrafn
Ага, спасибо!
Подключил rpmforge, пакеты поставил:
libmad
lame


Потом сделал yum reinstal sox

Все установки, переустановки - без проблем.

Показать
[root@asterisk-org etc]# rpm -q libmad
libmad-0.15.1b-4.el5.rf
[root@asterisk-org etc]# whereis libmad
libmad: /usr/local/lib/libmad.a /usr/local/lib/libmad.so /usr/local/lib/libmad.la

А вот с libmp3lame что то не срослось:

text
[root@asterisk-org etc]# rpm -q libmp3lame 
package libmp3lame is not installed

Хотя, он должен идти в комплекте с lame (спецом проверил пакет ffmpeg, там этой либы нет)
Ну и печальный итог, по прежнему sox mp3 не поддерживает!
P.S Ах, да .. просто проинсталить либу, тоже не может: yum install libmp3lame результатов не дает - не находит пакет.

#82674

Xlighte, покажи whereis libmp3lame

#82676

i2ks, показывает пустоту:

[root@asterisk-org monitor]# whereis libmp3lame
libmp3lame:
[root@asterisk-org monitor]#

Так, что остаются 2-е проблемы. Установка этой либы и как советует человек с другого форума (опеннет.ру):

Нужно пересобрать sox с линковкой этих двух либ.

# ldd /path/sox | grep libmad
#82678

Xlighte, библиотека libmp3lame входит в состав ffmpeg, если собирать из src, то вот так вот:

text

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

cd ffmpeg

./configure --enable-gpl --enable-pp --enable-pthreads --enable-swscaler --enable-encoder=libvorbis --enable-encoder=libogg --enable-encoder=liba52 --enable-encoder=libgsm --enable-encoder=dc1394 --enable-encoder=libxvid --disable-debug --enable-encoder=libfaac --enable-encoder=libmp3lame --enable-encoder=libx264 --enable-encoder=libfaad --enable-encoder=libtheora --enable-decoder=libvorbis --enable-decoder=libogg --enable-decoder=liba52 --enable-decoder=libgsm --enable-decoder=dc1394 --enable-decoder=libxvid --enable-decoder=libfaac --enable-decoder=libmp3lame --enable-decoder=libx264 --enable-decoder=libfaad

make

make install ---------

my config file looks like: /usr/local/lib /usr/lib include /etc/ld.so.conf.d/*.conf

вы точно поставили ffmpeg?

#82684

i2ks, Нет не поставил, исправляю:

Показать
Total 1.0 MB/s | 9.0 MB 00:08
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : faac 1/13
Installing : giflib 2/13
Installing : SDL 3/13
Installing : x264 4/13
Installing : a52dec 5/13
Installing : libtheora 6/13
Installing : libid3tag 7/13
Installing : imlib2 8/13
Installing : opencore-amr 9/13
Installing : cppunit 10/13
Installing : dirac 11/13
Installing : ffmpeg 12/13
Installing : ffmpeg-libpostproc 13/13

Installed:
ffmpeg.i386 0:0.5.2-2.el5.rf

Dependency Installed:
SDL.i386 0:1.2.10-8.el5 a52dec.i386 0:0.7.4-8.el5.rf cppunit.i386 0:1.12.0-4.el5.1 dirac.i386 0:1.0.2-1.el5.rf faac.i386 0:1.26-1.el5.rf ffmpeg-libpostproc.i386 0:0.5.2-2.el5.rf giflib.i386 0:4.1.3-7.1.el5_3.1 imlib2.i386 0:1.4.4-1.el5.rf
libid3tag.i386 0:0.15.1b-5.el5 libtheora.i386 0:1.0alpha7-1 opencore-amr.i386 0:0.1.2-1.el5.rf x264.i386 0:0.0.0-0.4.20090708.el5.rf

Complete!

Не вижу я там все таки libmp3lame в составе ffmpeg.

После установки whereis libmp3lame не дает результатов :(

Соответственно у пакета sox библиотек так и нет:

Показать
[root@asterisk-org monitor]# ldd /usr/bin/sox
linux-gate.so.1 => (0x00efd000)
libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00bc3000)
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00bdb000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00cd8000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00bbb000)
libm.so.6 => /lib/libm.so.6 (0x00b90000)
libasound.so.2 => /lib/libasound.so.2 (0x03aa9000)
libc.so.6 => /lib/libc.so.6 (0x00a14000)
/lib/ld-linux.so.2 (0x009f0000)
libdl.so.2 => /lib/libdl.so.2 (0x00b6e000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00b75000)
librt.so.1 => /lib/librt.so.1 (0x00bd0000)
Войдите или зарегистрируйтесь, чтобы ответить.