2009-06-25 8 views
16

Когда я запускаю sox непосредственно из командной строки as;Как преобразовать wav-файл в формат mp3 с помощью sox?

sox -r 8000 -c 1 <wavfilename> <mp3filename> 

Я получаю следующее сообщение об ошибке:

Сокс: неизвестный формат выходного файла для '747a.mp3': тип файла 'mp3' не известно

Мои машина работает под управлением операционной системы CentOS.

+0

Так что я думаю, это означает, что проблема никоим образом не Perl связанных? – innaM

+0

@ Манни правильно. –

+0

Так что я также предполагаю, что это не связано с программированием? – innaM

ответ

10

Вам необходимо установить соответствующий MP3-кодер, например. LAME, или перекомпилируйте Sox с поддержкой liblame.

Это зависит от вашего программирования Perl :)

+1

Угадай, что нужно выяснить, как это сделать .... – Scott

4

Для CentOS вам нужно будет перекомпилировать SOX (база репо имеет Сокс SRPM) с libmad и хромой Devel библиотек, установленных (rpmforge имеет те.) После того, как это сделано, sox -h отобразит поддерживаемые форматы. Когда mp3 библиотеки установлены,

sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename> 
+3

Подсказки для включения RpmForge (для установки libmad-devel и lame-devel): http://wiki.centos.org/AdditionalResources/Repositories/RPMForge Вы Мне также понадобятся alsa-lib-devel и libvorbis-devel И некоторая информация о SRPM: http://wiki.centos.org/HowTos/RebuildSRPM –

+1

Является ли CentOS всегда болью в тылу? – Scott

+0

@SashaYanovets Войдите на сайт, чтобы писать комментарии. Благодарности Благодарностей пока нет. что исправлено «Sox был скомпилирован без поддержки кодирования mp3» еще раз спасибо –

0

Подробнее здесь -

http://techblog.netwater.com/?p=4

+0

Я прочитал статью. Что делать, если у них уже есть более старая версия? Я установил его с помощью репозиториев dag ... Я новичок в Linux. – Scott

+0

Мертвая ссылка. Мертвая ссылка. – dotancohen

9

В качестве альтернативы (если все, что вам нужно, чтобы закодировать файл Wave в MP3), вы можете просто использовать LAME для достижения такие же результаты, например:

lame -b 32 --resample 8 -a <wavefilename> <mp3filename> 

LAME можно без проблем установить на CentOS без использования yum. Сначала вам нужно хранилище RPMForge:

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm 

Тогда:

yum install lame 
+0

Большое вам спасибо. Я пытался заставить sox работать на полтора века, но это просто работало из коробки без хлопот. Спасли меня, наверное, несколько часов, пытаясь понять, почему для меня не работали никакие другие решения. – Morgan