FreeBSDでは、標準のコマンドである「dd」を利用してCDDAデータをリッピングすることが可能です。
リッピングしたデータは、「午後のこ〜だ」や「lame」等のエンコーダを利用して、簡単にMP3ファイルに変換することができます。
このページでは、CDからMP3ファイルをリッピングするだけではなく、標準的なプレイリスト形式であるM3Uファイルを自動生成する方法についても説明します。
標準のコマンドの「cdcontrol」で、ドライブにセットしたCDのトラック情報をシステムに読み込ませます。
FreeBSD 5.x以降ではdevfsが採用されているため、FreeBSD 4.xの時のように、オーディオトラックデバイスを作成する必要はありません。
システムに認識されたトラックは、デバイス「/dev/acd?t??」でアクセスすることが可能になります。
$ cdcontrol -f /dev/acd0 info
上記の例では、「/dev/acd0」にセットされたCDのトラック情報をシステムに読み込ませます。
トラック1は「/dev/acd0t01」、トラック15は「/dev/acd0t15」のように、デバイス名の末尾はトラック番号をゼロパディングした形式になる点に注意してください。
なお、CDDAの仕様上、ひとつのCDに存在するトラック数は最大99トラックまでとなっています。
標準のコマンドである「dd」を利用し、CDからRAW PCMを吸い出します。
$ dd if=/dev/acd0t15 of=target.raw bs=2352
上記の「オーディオトラック情報の読み込み」の手順を踏んでいないと、デバイスが見つかりませんのでご注意ください。
上記の例では、「/dev/acd0」にセットされたCDの15トラック目のデータを「target.raw」として保存します。
エンコーダーを利用してRAW PCMデータをMP3ファイルにエンコードします。
エンコーダーは何を利用してもいいのですが、ここでは「lame」ベースの高速なMP3エンコーダー「午後のこ〜だ」を利用しています。
$ gogo -offset 0 target.raw
「午後のこ〜だ」は、バージョンが2.xの「gogo」と、3.xの「gogo-petit」の二種類がportsに収録されています。
どちらを利用しても構いませんが、パラメータの設定方法が違いますので、注意してください。
portsからのインストールは、「ports.tar.gz」を展開した後、下記の手順で行います。
$ cd /usr/ports/audio/gogo $ make config-recursive $ make install clean
$ cd /usr/ports/audio/gogo-petit $ make config-recursive $ make install clean
M3UファイルはWinAMP、RealPlayer、Windows Media Player、そしてmplayer等で利用可能なプレイリスト形式で、その実態は下記のようなテキストファイルです。
#EXTM3U #EXTINF:241,track 01 track_01.mp3 #EXTINF:314,track 02 track_02.mp3 #EXTINF:277,track 03 track_03.mp3
「#EXTM3U」はファイルの先頭にひとつだけ存在する識別子です。
曲情報を示す識別子「#EXTINF:」に続く数値は、曲データ長さ(秒)、カンマ「,」を挟み曲のタイトルになります。
改行を挟み、ファイルへのパス(相対パス、絶対パスの何れも指定可能)になります。
CDDAから抽出したRAWデータは「44.1KHz 16bitサンプリング、ステレオ」なので、一秒あたりのデータサイズは「44,100×2(byte)×2(ch)=176,400(byte)」になります。
このため、曲データの長さ(秒)は、RAWファイルのサイズから176,400を割った値になります。
CDから各トラックをMP3にリッピングし、デフォルトのM3Uファイルを生成するperlスクリプトを作成してみました。(ダウンロードはこちら)
微妙ですが、おまけ機能として、リッピングが終了後、CD-ROMドライブをejectします。
利用する環境に合わせてカスタマイズしてみてください。
$ perl rip_cd.pl
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。