ひとりごと

新しい記事:[1281]  古い記事:[1279] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2004/08/17 (火)

・ MP3ジュークボックス

うちにあるCDはぜんぶ .WAV に変換してハードディスクに入れているのですが、 あまりにも残容量が少なすぎて困るので MP3 に変換することにしました。

とはいえ、ただWAVを消してMP3にしてしまうと、将来ビットレートに不満が生じたときやまったく別のエンコード方法の方が良いとわかったときに吸出しからやり直す必要があり、あまり得策とはいえません。ということで、現在 ThinkPad T20のハードディスクに入っているWAVデータをすべて『週に一度のリモートバックアップに使っている省スペース機』(以降バックアップ機)のハードディスクに移して、T20側にはMP3のみ残すことで残容量を作ることにしました。
# 実際には移すまでもなく WAV データが rsync でバックアップしていました

これまでは常時通電している ThinkPadT20 にWAVデータが入っていましたから、samba経由で吸い出したファイルを書き込んだ後、WWWブラウザでPHPページを呼び出してデータベースへの登録を行っていました。が、今度は普段電源が切れているバックアップ機の WAV ファイルを元に mp3 ファイルとデータベース登録のためのファイル名抽出をしなくてはいけません。バックアップ機に PHP をインストールして ThinkPad から ssh でリモート操作して曲リストを作るのかな~。とか曲リストを元に同じくsshとかでWAVをcatしたのをパイプしてエンコードしたらいいかな~とかいろいろ想像していました。

が、よく考えてみると WindowsでCDから吸い出したデータをバックアップ機に保存するにはどうしても samba を動かす必要があるのですね。それなら、ThinkPadで mount_smbfs にてマウントしてしまい、ThinkPadからWAVもMP3も見えるようにしてしまえば何も問題ないのです。WAV保存時と変換時を除けばWAVの保存している場所を見る必要も無いのでバックアップ機の電源が切れていても大丈夫です。

そんなわけで、/usr/ports/audio/gogo を用いて WAV の場所とMP3の場所を比較してMP3が無ければ勝手に変換するスクリプトをPHPで書いてみました。PHPはプログラミング言語としてあんまり優れていないと思いますが、ホントこういうしょーもない処理をするのには便利です。 かくして、意外に簡単に WAV から MP3 に移行できました。C++ Builderで作ったWindows側のプレーヤも変更がいるかな~と思ったのですが、何も手を加えなくても MP3 が演奏できました。ほぉ、良い時代になったものだ・・・。

192kbpsでエンコードしたのですが、57GBあったWAVファイルは7.8GBのMP3ファイルになり、空き容量は大幅に増えました。バックアップ機にはWAVデータを保存する必要がありますが、あちらは3.5インチディスクなので価格が安いですし とりあえず30GBほど余ってるのでしばらく過ごせます。で、これまでは空き容量がないもんだから毎日のバックアップ用dumpの出力をgzipで圧縮していたために深夜1時半から早朝6~8時ごろまで負荷が高くWWWサーバの動作が極めて重かったのですが、gzipしないようにすると1時間半ぐらいで終るようになりました。これなら空いてそうな時間に割り当てることが出来ますね。

ひとつだけ悪くなったとすれば、それは圧縮オーディオ採用に伴う音質の劣化ですが、そもそも今の部屋は手を打てばびんびん響く環境でありプロジェクタのスクリーン中心のレイアウトになっていますから、WAVからMP3に変わってもぜんぜん違いがわからないのでした(苦笑)。

# gogoのエンコード試験をするときに %gogo *.WAV とやって二つ目のWAVファイルが消えてしまったなんて恥ずかしくて誰にもいえません

□ 関連記事

[つっこみ]

新しい記事:[1281]  古い記事:[1279] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)