音楽CDからMP3をリッピングする

対象プラットフォーム: FreeBSD 7.x / FreeBSD 6.x


はじめに

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トラックまでとなっています。

RAW PCMデータの吸出し

標準のコマンドである「dd」を利用し、CDからRAW PCMを吸い出します。

RAW PCMデータの吸出し
$ dd if=/dev/acd0t15 of=target.raw bs=2352

上記の「オーディオトラック情報の読み込み」の手順を踏んでいないと、デバイスが見つかりませんのでご注意ください。
上記の例では、「/dev/acd0」にセットされたCDの15トラック目のデータを「target.raw」として保存します。

MP3へのエンコード

エンコーダーを利用してRAW PCMデータをMP3ファイルにエンコードします。
エンコーダーは何を利用してもいいのですが、ここでは「lame」ベースの高速なMP3エンコーダー「午後のこ〜だ」を利用しています。

「午後のこ〜だ」を利用したMP3へのエンコード
$ gogo -offset 0 target.raw

「午後のこ〜だ」は、バージョンが2.xの「gogo」と、3.xの「gogo-petit」の二種類がportsに収録されています。
どちらを利用しても構いませんが、パラメータの設定方法が違いますので、注意してください。

portsからのインストールは、「ports.tar.gz」を展開した後、下記の手順で行います。

「gogo」のビルド方法
$ cd /usr/ports/audio/gogo
$ make config-recursive
$ make install clean

「gogo-petit」のビルド方法
$ cd /usr/ports/audio/gogo-petit
$ make config-recursive
$ make install clean

M3Uファイルの作成

M3UファイルはWinAMP、RealPlayer、Windows Media Player、そしてmplayer等で利用可能なプレイリスト形式で、その実態は下記のようなテキストファイルです。

M3Uファイルの例
#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を割った値になります。

perlによる全自動化スクリプト

CDから各トラックをMP3にリッピングし、デフォルトのM3Uファイルを生成するperlスクリプトを作成してみました。(ダウンロードはこちら
微妙ですが、おまけ機能として、リッピングが終了後、CD-ROMドライブをejectします。

利用する環境に合わせてカスタマイズしてみてください。

全自動化スクリプトの利用方法
$ perl rip_cd.pl


あなたの探し物は見つかりましたか?
まさにこれだ 参考になった ちょっと違う これじゃない
何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まだ評価がありません

表示できるメッセージはありません。


目次に戻る
image