次のページ 前のページ 目次へ

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 以上の空き容量を必要とします。しかし、このスクリプ トを使えば、使用するディスクの容量を削減できます。

確認 : 上のスクリプトは非常に初歩的で、エラー確認のような技がありません。 皆さんがお暇なときに改良してください。


次のページ 前のページ 目次へ