最新更新日 2002.06.11.

WMA 形式のファイルを聞こう。
 最近、MP3 よりも圧縮効率が良いと言う事で WMA 形式でデータを固める人が多いかと思います。WMA 形式とは Windows Media Audio と言う形式で Windows Media Player で再生出来るファイル形式です。これは、FreeBSD 上で動く xmms であるとか Realplay、KDE メディアプレーヤー (noatun) では再生出来ません。これを何とか再生できる様にチャレンジしてみましょう。

 尚、今回は音声データがメインです。WMV(Windows Media Video) などにはまだお話が及びません。下の方にちょっとだけは書きましたけど;-)。はたまた DVD の画像や動画についてもお話は及びませんあしからずご了承ください。手元にデータが無いので・・(^^;;。

 と、言う事でいろいろと調べてみると、/usr/ports/graphics/mplayer(MPlayer-0.60.tar.bz2) とかで聞けそうです。ports から make してみましたが、確かに行けそうですが、mplayer は音声と画像を同時にしか再生出来ない様です。そぉ、Windows Media Player7 の様に・・。と、言う事で今回は WMA 形式の音楽データがメインなので残念ながら諦めることにしましょう。

 ちなみに、mplayer は、動画を再生しようとしている人にはなかなか面白いかもしれません。そっち方面でチャレンジしてみたい人は是非試してみてください;-)。

 次に考えられるのは、xmms ですが、Windows 版の Winamp では WMA 形式のファイルの再生が出来ます。FreeBSD の xmms には /usr/ports/graphics/xmms-avi と言うのが有り、これを利用すると xmms で WMA 形式のファイルを再生出来るかもしれないのですが、実際に ports を make してみると、

----------------
# make
===>  xmms-avi-1.2.2 is marked as broken: Maintainer is working on a fix.
----------------

 と、言う事でもうおしまい・・。さてと、いよいよ真打ち登場です;-)。 /usr/ports/graphics/avifile(avifile-0.6.0-20011220admin.tgz) これを make します。こいつ、X のツールキットに QT を利用しています。なので KDE を使っていない人にはちょっと辛いか・・。私は KDE を使っているので全然問題無いですが;-P。

 configure 自体のオプションには --enable-kde と言うのがあったりします。これ使うと artsd 経由で音が出るようになるのか?と言われればそうでも無いみたいです。素直に /dev/dsp を掴みに行っている様です。しくしく。plugin としては artsd 経由でも行けるみたいです。が、私はまだ深くは追って無いです;-P。

 また、依存関係により、win32-codecs-011002.0.0.60 と言うのがインストールされます。 /usr/local/lib/win32 なんて渋いディレクトリが出来ます;-)。中を覗いてみると、おーー、dll とか入ってますね;-)。

 と、言う事で、avifile をインストールすると、/usr/local/bin/aviplay がインストールされます。これを実行する前にカーネルをちっと作り替えましょう。カーネルコンフィグファイルに以下のオプションを追加してカーネルを作り替えます。

----------------
options         CPU_ENABLE_SSE
options         USER_LDT                #allow user-level control of i386 ldt
----------------

 上の行は SSE を有効にするオプション。下の行はユーザランドで i386 の LDT を有効にすると言うオプションです。 LDT ってナンヤネン?って声が聞こえてきそうですが、Windows のアドレス管理やらなんちゃらその辺りチックなお話だと思います。wine とかもこれを使っているとか居ないとか・・。私は Windows プログラミングはよー解りません。ま、エミュレータのオプションの指定と言う感じで FreeBSD 側で Windows のコーデックをエミュレーションする。と、言う事なんでしょうな(本当か?;-)。

 さてと、準備が出来たので aviplay を起動してみましょう。以下の様なウインドが現れたでしょうか?

 さて、起動したのでファイルを指定して実行してみましょう。見た目が単純(裏を返せばあんまおしゃれじゃ無い;-P)なので直感的に解るかと思います。が・・。実際に再生してみると結構音飛びが激しくて全然使い物にナラン状態で悲しいですね。そんな時には、[?]→[Config] と来て、以下の画面を表示して、[Audio resampling]→[Enable Sound resampling] にチェックを付けて、任意のサンプリングレートを設定してあげましょう。

 その後、一旦終了してから再度起動すると、今度は音かさっきよりも綺麗に出たかかと思います。私の持っている WMA 形式のデータのサンプリングレートは 48000 なのですが、aviplay の設定の方を 32000 程度にしたら、ま、それなりに聞ける状態で再生してくれるようになりました。

 とまぁ、こんな感じで WMA 形式の音声が聞けるようになったかと思います。良かったですねぇぇ。尚、私は良く知らないのですが、最近の AVI ファイルと言うのは、音声部分が、WMA 形式で持っているのがあるみたいです。特に Windows Media Encoder で作成したモノはその手もモノが多いみたいです。そんな時には是非、aviplay を試してみてください。

 「世田谷線」で検索していたら「こんなページ」を発見しました;-)。「環七踏み切り(動画) 」は WMV な形式のファイルなのですが、こいつを持ってきて aviplay で一応試してみたら、おーー、音がちゃんと出て動画の再生も出来ますねぇぇ。凄い事ですねぇぇ;-)。

 あ゛ーー。avifile をインストールすると他にも沢山のコマンドが入ります。しかし、私は WMA 形式のファイルの再生をメインに考えたので他の使い方は知りません・・(^^;;。

KDE での mime.types について
 KDE で利用する場合についてちっと書いておきます。まず、K メニューへはメニューエディタでアプリケーションの登録が簡単に行えますので、aviplay を登録してしまいまょう。右ボタンクリック時の [アプリケーションで開く]で有効な手段です。そして mime.types は konqueror の設定の画面から行います。

----------------
mime.types: application/x-mplayer2
拡張子: *.wma
アプリケ−ション: /usr/local/bin/aviplay
----------------

 これでファイルマネージャ版の konqueror から WMA 形式のファイルをクリックすると使える様になる事でしょう。めでたしめでたし;-)。

MWA ファイルの文字コードについて
 最後におまけ的に書いておきます。大量の WMA 形式のファイルを持っていて、それが日本語のファイル名であった場合、あぁぁ・・。もう目も当てられない。ls で表示できないし、konqueror でもリストしてくれないし・・。Windpows 側でファイル一個づつを rename して行くしか手が無いのか・・。

 えてして WMA 形式のファイルに日本語を利用していた場合、UTF-8 を利用している事が多々有ります。なので konqueror でも表示できない。悲しすぎですね。そんな時の裏技を;-)。

 まず、Windows 上に大量の WMA 形式のファイルを配置します。そして、 FreeBSD で動作している samba のとあるディレクトリにコピーしてあけます。すると、あぁら不思議、文字コードは EUC に変換されます;-)。samba をファイル名の文字コード変換フィルタとして利用すると言う事ですね;-)。

 samba 経由で FreeBSD 上にコピーされたファイルは ls | nkf -e であるとか、konqueror でリストアップ出来る様になります。また、aviplay のファイルの一覧でも無事に日本語が表示出来ます。これはちょっと凄いですよ。感動モンですね;-)。

 ファイルの文字コード変換の為に是非共 ja-samba を起動しておきましょう;-)。ちなみに、KDE の konqueror の smb:// 対抗でやってもダメでした。やっぱ、データのコピー元は Windows が良いみたいです;-)。

 さ、準備が全て整った様なので、思いっ切り WMA ファイルを再生しましょう。ワザワザ Windows を起動する必要は有りませんよ。そこの あ・な・た;-)。

 と、言う事で、最近のマルチメディアネタにはとんと付いていけなくなってきているのですが、一応、WMA 形式のファイルは FreeBSD で Ready になりました;-)。今度は動画系のネタですね。いつ位に書けることやら・・;-)。

 本当に一番下にですが、20020506 版の 5-CURRENT で試した結果を書いておきます。カーネルのオプションである USER_LDT は指定する必要が有りません。で、aviplay を起動すると、あっと言う間に core dump してしまいます・・。しくしく。



Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.