The Linux MP3 HOWTO By Philip Kerr, phil@websentric.com v1.10, September 1999 さいとうかん can-s@geocities.jp v1.10j1, 1999年12月30日 本文書は MP3 音声ファイルを Linux でエンコードおよびデコードするために 必要となる、ハードウェア、ソフトウェアおよび手順について記述していま す。 ______________________________________________________________________ 目次 1. はじめに 2. 本文書の著作権 3. 本文書の入手場所 4. 謝辞 5. 免責事項 6. ハードウェアの必要条件および性能の問題 7. 推奨ソフトウェア 8. システム設定 8.1 アナログ音声録音の設定 8.2 CD-ROM 音声録音の設定 8.3 追加の設定 9. 音声のエンコード 10. CD-ROM からのエンコード 11. MP3 の再生 12. フィードバック ______________________________________________________________________ 1. はじめに 本文書は MP3 音声ファイルを Linux でエンコードおよびデコードするために 必要となる、ハードウェア、ソフトウェアおよび手順について記述していま す。 2. 本文書の著作権 This HOWTO is copyrighted 1999 Philip Kerr. Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. 他に定めない限り、Linux の HOWTO 文書は各々の著者が著作権を保持しま す。 Linux の HOWTO 文書は著作権表示を完全に保存している限り、そのすべ てあるいは一部を物理的か電子的な媒体により、複製、配布してかまいませ ん。商業的再配布を許可しますし、奨励します : しかし、どのような形式の 配布の場合であれ、著者は連絡を希望しているものです。 All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO co-ordinator at the address given below. すべての翻訳、派生著作物、あるいは複数の Linux HOWTO 文書を集める編集 作業は、この著作権表示を保持しなければなりません。HOWTO から派生著作物 を作成して、それに配布制限を追加することは認めていません。特定の条件の もと、例外を認めるかもしれません : 以下に示す Linux HOWTO の調整役へ連 絡してください。 In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. 簡単に言うと、著者はできるだけ多くの経路を通じ、この情報の流通を促進し たいと願っています。しかし、この HOWTO 文書の著作権を保持することを望 んでおり、再配布のいかなる計画も知らせてほしいと思います。 If you have questions, please contact Tim Bynum, the Linux HOWTO co- ordinator, at linux-howto@metalab.unc.edu via email. 御質問があれば、Linux HOWTO 調整役の Tim Bynum linux- howto@metalab.unc.edu へメールで連絡してください。 3. 本文書の入手場所 本文書の最新バージョンは Linux Documentation Project から手に入れることができます。 [訳注 : 日本語訳の最新バージョンは JF プロジェクト にあります。] 4. 謝辞 この HOWTO を書くにあたり、Jeff Tranter の Sound-HOWTO および Yoo C. Chung の Sound-Playing-HOWTO を大変参考にさせて頂きました。 著者が参考にした他の HOWTO を書いた皆さま、ありがとうございます。 Lars Wirzenius の Linux System Administrators Guide Olaf Kirch の Linux Network Administrators Guide Stein Gjoen の Multi Disk System Tuning HOWTO [ 訳注 : JF プロジェクトによる日本語訳 Sound-HOWTO , Sound-Playing- HOWTO およ び Multi-Disk-HOWTO があります。] 5. 免責事項 本文書中の情報は御自身の判断に基づき利用してください。著者は本文書の内 容に関するいかなる責任も負いません。本文書中の構想、事例、およびその他 の内容に関しては、完全に御自身の責任です(つまり、at your own risk)。 特に記述がない限り、著作権はすべて著作者が保持します。本文書中にある表 現の使用は、登録商標あるいは意匠権を侵害していないはずです。 特定の商品あるいはブランドの名前は、決して推奨し載せているのではありま せん。重要なインストールの前に、および定期的にシステムのバックアップを 取ることを強く推奨します。 6. ハードウェアの必要条件および性能の問題 デジタル音声処理はシステムの処理能力および I/O 能力にとても依存する、 多くの資源を要求する処理です。最低でも Pentium クラスのマシンを強く推 奨します。 アナログ音源をエンコードするなら、PCI サウンドカードが最良の結果をもた らします。ISA バスカードと PCI バスカードにおいて I/O 能力の差ははっき りしており、PCI バスには 132 Mbits/sec 以上の能力があります (PCI-HOWTO からの引用です)。もちろん、信号 - 雑音比 (訳注 : S/N 比) という点にお いても、サウンドカードの品質は良ければ良いほど、MP3 へのエンコードも良 い結果となるでしょう。著者は Soundblaster PCI128 を使っていて、ちょう ど今 Soundblaster Live Value へ切り替えました。双方とも良いオーディオ 性能を持っていますが、Live は明らかに S/N 比が高く、セミプロ級の仕事に も充分です。データ処理の古くからある格言、「入れたのがゴミなら出てくる のもゴミ(garbage in - garbage out)」を覚えておいてください。 ハードディスクにアナログ音声を記録することを、ダイレクトディスク録音あ るいは d2d 録音と一般に呼びます。その際には、ディスクの性能とそのイン ターフェイスが重要です。IDE ベースのシステムを使っているなら、モード 4 あるいは UDMA は転送速度がまずまずなので望ましいです。 理想的な解は SCSI ベースのシステムを使うことです。なぜなら、ドライブと インターフェイスが SCSI-1 の 5MB/s から Ultra-Wide SCSI の 80MB/s ま で、連続した良い転送能力を持っているからです。IDE でも 8.3 MB/s から Ultra-ATA の 33 MB/s まで到達できますが、この速度はピーク時のものであ り、平均転送速度は若干遅いでしょう。もし AV SCSI ドライブを見つけられ て、そしてそれを使う余裕があるなら、これを使ってみてください。AV ドラ イブは連続するデータ転送に対して、データを読み書きするヘッドシステムを 最適化しています。通常、他の SCSI および IDE のドライブは書込みヘッド が熱くなるため、連続したデータを転送できないのです。 通常、ヘッドが上がったり情報を扱えなくなったら、キャッシュがバッファと して動作します。従って、キャッシュを持っていないドライブよりも持ってい るドライブの方が確実です。 充分な性能のドライブでないと、信号の記録に失敗した箇所で録音データの脱 落および異常に悩まされるでしょう。ライブなどの一度限りのイベントを録音 するなら、良い SCSI ベースのシステムに投資してください。 システムへの高い負荷もデジタル録音の際のデータ脱落の原因になります。録 音の際に、バックグラウンドタスクはシステムに一瞬の気まぐれを引き起こす ことがあります。特にネットワーク系のサービスは、できる限り少数のバック グラウンドサービスだけを動かすことをお奨めします。ネットワークサービス の設定や起動スクリプトについては、SAG および NAG を参照してください。 [ 訳注 : SAG: Linux System Administration Guide , NAG: Linux Network Administration Guide . 現在のところ日本語訳はあり ません。 ] 仮想記憶ページングはデータ欠損を発生するので、できるだけ多くの物理メモ リで動作させてください。少なくとも 32MB のメモリを推奨したいのですが、 更に多くのメモリが必要になるかもしれません。 システムから最大限の性能を引き出したいなら、恐らくカーネルを最適化して も害はないでしょう。 上に挙げたハードウェア仕様のシステムは音声データのエンコード用としては かなり高い能力のものです。だから、手近で使っていて能力の劣る旧式のシス テムを叩き売ったりはしないでください。 システム管理者にとって、優れた結果を出すよう能力の低いシステムを調整す ることは、良い挑戦になるでしょう。 もうひとつの重要な点はオーディオケーブルです。安くて粗末なケーブルを使 うと、録音の品質も貧弱になってしまいます。サウンドカードに (しばしば RCA と呼ばれる)アナログレコードを使うためのオプションがあれば、それを 使ってください。金メッキのコネクタは音質を維持するためにも役立ちます。 相互干渉の危険があるので、オーディオケーブルはデータケーブルから遠ざけ てください。 資金を最良のオーディオケーブルに費やしても、システムの他の部分が最適化 できていなければ、無駄に終ることを忘れないでください。 CD-ROM から MP3 へエンコードするために、CD-ROM から生データを読み込み ます。その際に必要となる時間は、速度やドライブの型により決まります。恐 らく、かなり辛抱強い人以外にとって、標準速ドライブは非常に遅いでしょ う。 CD-ROM は内部コネクタを用いて、あるいはへッドホン出力をサウンドカード のライン入力へ接続することで、サウンドカードへつながっていなければなり ません。 サウンドカードの設定に関する詳細な解説書には Sound-HOWTO を読むと良い でしょう。 [ 訳注 : JF プロジェクトによる日本語訳 Sound-HOWTO があります。] 7. 推奨ソフトウェア 通常、音声を MP3 へ変換するには 2 段階の工程があります。まず音声を WAV フォーマットで録音し、その後 WAV ファイルを MP3 へ変換します。CD ある いは 直接の音声入力からなど、どのフォーマットから音声をエンコードする のかにより、WAV ファイルを作成するために必要となるソフトウェアツールが 決まります。 [ 訳注 : に関連するリンクがい くつか載っています。] 音声入力からエンコードしたいなら、サウンドカードの入力から録音するプロ グラムと、それを WAV フォーマットで保存するプログラムが必要です。以下 に役に立つソフトウェアを挙げます。 Wavrec Wavrec は wavplay の一部として配布され、 からダウンロード できます。 CD の音声データを WAV フォーマットへ変換することは、CD リッピングとし て知られています : CDDA2WAV Cdparanoia [ 訳注 : 読取りエラーの修正を試みるため、Cdparanoia 方がはるかに性能が 良いです。日本語のマニュアルもあります。] WAV ファイルを MP3 フォーマットへ変換します : Blade's MP3 Encoder [ 訳注 : 今となっては、bladeenc の音質はかなり悪いほうです。原著には 載っていませんけど、音質は lame が優秀で す。それを高速にしたものが 午後のこーだ です。 ] MP3 を再生します(プレイヤーとして必要です) : Xmms (Formerly known as X11Amp) [ 訳注 : X11Amp は登録商標だったので、名前を変更したようです。外見も音 質も美しく、これが最高でしょう。日本語化 xmms 、そして歌詞表示プラグイ ン もあります。 ] Xaudio ミキサープログラムも必要になるかも知れません。 Xmixer は良く働き、多く のディストリビューションに含まれています。 [ 訳注 : Xmms ならミキサーも付いています。Gnome には gmix が、KDE には kmix が付属しています。 ] 8. システム設定 この節では、アナログ入力あるいは CD-ROM から音声を録音するために、 Linux システム設定の基礎について述べます。 この節では、Redhat 5.2 が動いている Intel ベースの Linux システムを基 本とします。しかし、当然各ディストリビューションについて普遍的な記述で もあるはずです。著者は短期間で Sparc バージョンを動かせるでしょう。(も し他のハードウェア上でこの HOWTO を用いて成功したなら、私に連絡を取っ てください。) 当たり前ですが、前提条件はサウンドカードが動作していることです。これに ついては、Jeff Tranter が書いた優れた Linux Sound HOWTO を読むよう勧め ます。その後、Yoo C. Chung による良い読み物である Linux Sound Playing HOWTO を勧めます。上に挙げた HOWTO は両方とも、私ができるよりもずっと 優れた内容で、Linux でサウンドシステムを動作させる詳細について扱ってい ます。 [ 訳注 : JF プロジェクトによる日本語訳 Sound-HOWTO , Sound-Playing- HOWTO があ ります。] 8.1. アナログ音声録音の設定 まず、オーディオの設定をしてください。Linux Box へ音声を伝える方法は複 数あり、いくつかの共通の手法は以下の通りです : オーディオ装置のライン出力と Linux Box のライン入力をつなぎます。多く のオーディオ装置にはライン出力端子があります。ライン出力レベルはオー ディオ装置が送り出す電圧および電流を規定している標準です。私の記憶が確 かなら、家庭用およびセミプロ用装置が 500mA で、プロ用装置が 750mA で す。大部分のサウンドカードの標準は 500mA でしょうけど、いくつかの新し いプロ用オーディオ装置は高品位の標準に基づいているかもしれません。高水 準の録音をしない限り、たいした違いはありません。 通常、ラインレベル出力は HI-FI 装置をアンプに接続するために用いるの で、テープデッキ、チューナ、CD プレイヤー、DAT および MD プレイヤーは 問題なく接続できます。アナログレコードプレイヤーはより多くの問題がある かもしれないので、以下の更なる情報をご覧ください。 VTR から音声を高品質で録音できます。多くの VTR は音声のライン出力、あ るいはお使いの VTR に SCART ソケットがあるなら、そこからライン出力を取 り出せます。 [ 訳注 : SCART ソケットとは欧州で VTR や TV を接続するための PAL 規格 に規定のあるコネクタです。(アナログ RGBマルチと同じ)角型の 21 ピンのコ ネクタで、1 個のコネクタの中に、ステレオ音声、コンポジット、そして Y/C (輝度/色) などの信号があります。このコネクタの付いたケーブル1本あれ ば、VTRやTV間を迷わずに接続できるようになっています。NTSC 規格を採用し ている日本や米国では、縁のないものです。] アンプのテープ出力を Linux box のライン入力へ、Linux box のライン出力 をアンプのテープ入力へ接続してください。この作業は HI-FI アンプにつな がっている古典的なテープレコーダを、Linux システムで置き換えることを意 味します。テープへ入るライン出力で録音レベルを確認できます。 マイクはマイク入力へつないでください。マイクが発生する電圧はラインレベ ルより非常に小さく、マイクをライン入力へ接続しても何も録音できないで しょう。 警告: この逆に、ラインレベル装置をマイク入力へ接続すると、サウンドカー ドに損傷を与えるかもしれません。 アナログレコードプレイヤーはマイク入力へつなぎます。悲しいことに、現時 点で著者はこのことについて全く情報を持っていません。私の記憶が確かなら ば、レコードプレイヤーはマイク入力へ接続すべきで、低い電圧の音声を録音 することと似た仕組みを使っています。 音楽用キーボードおよびシンセサイザはライン入力へ接続すべきで、ギターは DI ボックス (Direct Injection : 信号をラインレベルへ変換するために使用 する) を経由してライン入力へ接続します。 サウンドカードへ何かを接続する前に、ボリュームが最小になっているかどう か確かめてください。マイクを使用するなら、マイクが切ってあるか、あるい はスピーカから離してあるかどうか、確かめてください。 8.2. CD-ROM 音声録音の設定 CD-ROM から音声データを取り出すために Linux システムを設定することは、 かなり簡単です。 サウンドカードへ接続したスピーカやアンプを通じ CD-ROM で再生しているト ラックが聴こえるなら、それを録音するのは難しくありません。 8.3. 追加の設定 システムに普通にログインし、ミキサープログラムを用いて、録音レベルを大 きすぎず音がひずまない程度の、充分な大きさへ設定してください。通常、筆 者は耳で聞いて判断しているだけですが、しばらくすればればあなたも自分の 道具にちょうどいいレベルが分かってくるでしょう。 音源からエンコードする際には特に、不必要なすべてのサービスを停止する か、シングルユーザモードへ移ることを勧めます。これは不要なサービスのな い最小限の状態で動かし、録音時におけるシステムの一時的な不安定要因をで きるだけ少なくするためのものです。 著者は資源を独占的に使用して録音ができるよう SCSI ドライブを分離して設 定し、/mnt/mp3 として参照しています。性能向上を主目的として、SCSI ドラ イブを使っています。また、明らかなことですが、音声データを書き込んでい る際にディスクヘッドが突然他の部分へ飛んで行かないよう、専用のドライブ で録音すると良いでしょう。 複数のディスクを持つ Linux システムを設定する詳細については、Stein Gjoen による良い読み物である Multi-Disk-HOWTO が役立つでしょう。 [ 訳注 : JF プロジェクトによる日本語訳 Multi-Disk-HOWTO があります。] 9. 音声のエンコード まず、ドライブに充分な空き容量があることを確かめてください。44.1 kHz サンプリング 16bit 量子化ステレオの CD レベル音質では、1 分でほぼ 5MB 必要です。 通常、著者は 48kHz サンプリング 16bit 量子化ステレオの DAT レベル音質 で録音します。 著者は以下の方法で wavrec を使います : /usr/local/bin/wavrec -t 60 -s 48000 -S /mnt/mp3/temp.wav 最初の部分は waverec の絶対パスです。'-t 60' は録音時間を秒で指定しま す。3 つめのオプション '-s 48000' は bit/sec でサンプリングレートを指 定します。(48000 が DAT 用で、44100 が CD 用です。) 最後のオプションは 出力ファイルのパスです。 オプションのすべてを見るには、'waverec -help' とするか、マニュアルをご 覧ください。これが WAV ファイルを作成します。 次に、MP3 フォーマットへエンコードする必要があります。以下のように bladeenc を使ってください。 /usr/local/bin/bladeenc [source file] [destination file] -br 256000 オプション '-br' はビットレートを設定し、この場合には最大ビットレート を 256kbps に設定しました。あなたのシステムでは bladeenc までの手順 が、私の使った例とは異なるかもしれません。 正確には '-help' は無効なオプションなのですが、すべてのオプションを見 たいのなら、'bladeenc -help' としてオプションのリストを表示します。 10. CD-ROM からのエンコード もう一度、システムに充分なディスクの空き容量があるかを確かめてくださ い。 著者は CD からトラックをリップして(吸い出して)エンコードする、非常に単 純な Perl スクリプトを書きました。 ______________________________________________________________________ #!/usr/bin/perl if ($ARGV[0] ne "") { $count = 1; do { $cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav"); $track = "$ARGV[1]/track".$count.".mp3"; $benc = system("bladeenc /tmp/cdda.wav $track -br 256000"); $count++; } until $count > $ARGV[0]; exit; } else { print "Usage cdriper [no of tracks] [destination directory]\n\n"; } ______________________________________________________________________ ポイントになる行はこれです : $cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav"); この行は CD リッパである cdparanoia を呼び出しています。 cdparanoia は CD の音声データを WAV フォーマットへ変換します。 目につくオプションはリップするトラック数を表す $count で、次が出力する WAV ファイルのパスです。著者の例では、このパスは MP3 用の SCSI ドライ ブにある、tmp ディレクトリになっています。 各トラックごとにリップとエンコードをせずに済むように、そして cdparanoia のバッチモードを使わず CD を吸い出せるように、著者はこの Perl スクリプトを書きました。cdparanoia をバッチモードで動かすと CD 全 体を吸い出し、600MB 以上の空き容量を必要とします。しかし、このスクリプ トを使えば、使用するディスクの容量を削減できます。 確認 : 上のスクリプトは非常に初歩的で、エラー確認のような技がありませ ん。皆さんがお暇なときに改良してください。 11. MP3 の再生 さあ、再生可能な MP3 ファイルがいくつかできていることでしょう。 Linux で最も人気のある 2 つの MP3 プレイヤーは Xaudio と Xmms (以前は X11Amp として知られていました)です。プレイヤーの Web ページへのリンク は両方とも 7 節に書いてあります。 この HOWTO では著者が使っている Xaudio に基本に説明します。X 上でも X が動いていなくても使えるから、というのが一番大きな理由です。Xaudio は シェアウエアです。Xaudio は最も興味のある xaudio と mxaudio を含む、統 合プログラムです。 ファイルをシステムへインストールしたあと、コマンドラインバージョンの xaudio か X バージョンの mxaudio のどちらかを動かします。mxaudio はす ばらしいインターフェイスを持ち、簡単に使えます。xaudio のオプションは -help オプションをつけてプログラムを動かすことで見られます。 どれか 1 つのトラックを再生するには、"xaudio track.mp3" としてくださ い。 [ 訳注 : track.mp3 は再生したい MP3 ファイルの名前です。] ディレクトリにあるすべてのファイルを再生するには、 "xaudio *.mp3" とし てください。 xaudio および mxaudio には、両方とも README があります。 12. フィードバック 新しいハードウェアおよびソフトウェアが常に発表されています。本文書で挙 げているハードウェアかソフトウェアの新しいバージョンを使っている、ある いは本文書に何か追加できるのなら、phil@websentric.com まで情報を送って ください。著者は次のリリースへその情報を含めます。 [ 訳注 : 本文書の日本語訳に関しては さいとうかん までお願いします。] Happy MP3'ing!!