2009/03/18

いまさらLossless圧縮に手を出そうと思った

特に意味はないんだけど、最近のHDDはテラバイト級だし、ストレージの容量の進化ってすごいですよねー。メディア再生用仮想マシンを整備したので、最近ローカルのHDDにおいてたいっぱいのmp3をネットワークドライブ側にコピーしてみたんですが、4Gぐらいしかありませんでした。思ったより少ないな…。

とりあえずそんな感じでサーバ側に着々といろんな機能を持たせてメインマシンをmac miniにリプレイスする準備を進めてるんですけど、メディア再生用仮想マシンを操作するにはメインマシンかMacBook Airを起動しなきゃならないので、実はあんまり変わらないんじゃないか? って気がしている今日この頃。

まぁCPUとかHDDの負荷がサーバ側にいったからメインマシンはメインの作業に注力できるからいいじゃないか、とも言えるんですけど、flv系の動画再生はともかく音楽再生の負荷なんて数%のレベルなんで別に気にしないですよね。

ともあれ、負荷の話はとってつけたおまけの話で、本来の目的としては定常的に使う機能をサーバ側に集約したいというのが一番の動機なので、ネットワーク経由でWinampとかをいじれれば(いろんな要素に目をつぶりつつ)PC起動しなくても音楽ながせるからいいよねーとか思っていろいろ実験しています。

結局の所Winampをリモートから動かす何かは見つからなかったんですけど、iTunesならiPod touchとかiPhoneとかからリモート操作できるので、じゃあiPod touchでも買ってしまうかなぁとか思っている今日この頃。ちょうどiPhone OS 3.0の発表もあって、そこでどうやらtouchのBluetooth解禁の方向も示唆されたようなので、それなら! って感じです。

さて話がそれてしまいました。

本題は「最近はHDDの大容量化してるのにいまだにmp3をチマチマ使っているのはどうなのよ」って話なのでした。

そんなわけで、サーバ側に音楽ファイルを置くんならどうせならそろそろmp3やめてLossless圧縮で持つようにした方がいいなぁということを思ったわけです。うちのmp3は昔から作り方が一貫しててcd2wavで吸い出してSCMPXでエンコードという、20世紀末に流行ったやりかたを21世紀初頭のいまになっても続けているというオールドタイプなのでした。

まぁ、LAMEとかのハイクオリティなエンコーダにしようかなぁと思ったことがなかったわけではないです。ただ、当時はしょぼいスピーカーだったので正直な所あんまり違いが分かりませんでした。

あとはあれです、LAMEってわりといい感じのペースでバージョンが上がっていて、そのたびにちょこっとずつ音質が上がってた(らしい)んです。「そんなんじゃバージョン上がるたびに再エンコードしたくなるじゃん」と思ってしまうというぼくの気質には合わない…。ということで、1999年ぐらいにバージョンアップのとまったSCMPX 1.51を使い続けてたのでした。ちなみに真の最終版は1.6で、いつのまにか作者サイトのダウンロードのところに未公開最終版としてダウンロードできるようになってました。

と、そんなわけで「どーせ非可逆圧縮なんだからどっちにしろ音質劣化してるんだしSCMPXでいいだろー」とタカをくくって10年ぐらい生きてきたんですけど、FLACとかApple Losslessとかそのへんのロスレス圧縮にそろそろ手をだしてもいいかなぁと。

何よりすばらしいのは、mp3だと「いまより高音質にエンコードできるエンコーダがでるかも…」という事実がありましたが、Losslessなフォーマットなら可逆圧縮なのでリッピングしたwavと同じ音質なので(基本的には)エンコーダの進化の恐怖から逃れられるわけです。容量でかいけど。

数年前のシリコンオーディオのレベルだと、せいぜいiPod nano(2G)の8GBとかが最大容量でしたが、いまやiPod touchが32GBとかになっているので、たとえmp3からLosslessにしてサイズが8倍になってもきっと大丈夫…。ってことでいませっせと手持ちのCDを再リッピング中です。

というわけで、ポータブルオーディオにiPodを使うことを前提にするとApple Losslessになるので、iTunesのALACエンコーダを外部から使うiTunesEncode.exeをダウンロードしてきて、EACの外部エンコーダに以下を設定しました。EAC日本語化して使っているので英語版のまま使ってる人は適当に読み替えてください。

  • エンコーダ別パラメータ: ユーザー定義のエンコーダー
  • 使用する拡張子: .m4a
  • エンコードに使用するプログラム: (ファイル置いた場所)\iTunesEncode.exe
  • 追加のコマンドラインオプション: -e "Lossless Encoder" -a "%a" -l "%g" -t "%t" -g "%m" -y "%y" -n "%n" -m "%x" -c "%e" -i %s -o %d -d
  • ID3タグを追加 → チェックをはずす

ビットレートとか高品質とかそこらへんはどうでもいいです。どうせユーザ定義エンコーダですし、Apple Lossless Encoderにオプションがそもそもありません…。

これだけ設定しておけば、あとはEACでCDDBからCD情報とってきてMP3ボタンおして変換すればApple Losslessなファイルのできあがりです。ちなみにCDDBは http://freedbtest.dyndns.org:80/~cddb/cddb.cgi 使ってます。あとはまぁこれをWinampでも聞きたかったりするわがまま者だったりしますが、そこはWinamp Essentials PackをいれればOKなので、これでApple LosslessベースでポータブルオーディオとPCからの再生がどっちも実現できそうです。

というわけで、ただの備考録記事を書きたかっただけなのに前振りが長すぎて本題を適当に端折ってしまうといういつもの展開ですが、とりあえずこの話は今日はこの辺でおしまいです。ちなみにmac miniはまだ買ってません。だって残業多すぎて買ってもどうにかできそうな気配が全くないんですもの…。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac