web-dev-qa-db-ja.com

soxを使用してwavファイルをmp3形式に変換するにはどうすればよいですか?

コマンドラインから直接soxを実行すると、

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

次のエラーメッセージが表示されます。

sox:「747a.mp3」の不明な出力ファイル形式:ファイルタイプ「mp3」は不明です

私のマシンはCentOSオペレーティングシステムを実行しています。

19
john

適切なMP3エンコーダをインストールする必要があります。 [〜#〜] lame [〜#〜] 、またはliblameサポートを使用してSoxを再コンパイルします。

これはPerlプログラミングとは無関係です:)

10
Jeremy Smyth

別の方法として(WaveファイルをMP3にエンコードするだけでよい場合)、LAMEを使用して同じ結果を得ることができます。次に例を示します。

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

LAMEは、yumを使用して簡単にCentOSにインストールできます。最初に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
10
Juan

CentOSの場合、libmadライブラリとlame-develライブラリがインストールされた状態で(ベースリポジトリにはsox srpmが含まれている)SOXを再コンパイルする必要があります(rpmforgeにはそれらが含まれています)。 mp3ライブラリがインストールされている場合、

sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename>
4
user166329
0
user377782