MacからPS3にDLNAで映像や音楽を配信

ちょっと前になるが、PlayStation3DLNAクライアント機能に対応した。これを使えば、市販のDLNA対応メディアサーバから映像/音楽をストリーミングしてPS3で再生できる。

ただし、我が家では大半のコンテンツはMacに繋がったHDDに入っているし、DLNA対応サーバ等持っていない(^^;)。Macに入ったコンテンツをPS3に繋がった大画面TVで再生できると嬉しいので、Mac OS X上でDLNAサーバを立ててみた。

最初はlibupnpとuShareを改造して何とかコンパイルし、一応の成功を見ていたのだが、PS3対応になったMediaTomb 0.9.1を使うと早送りや巻き戻し等も出来ると聞き、挑戦してみた。

といっても、こちらは既にFinkにパッケージが上がっているので簡単だ。
まず、finkを入れ、/sw/etc/fink.confを書き換えてunstableパッケージが利用できるようにする。

Trees: local/main stable/main stable/crypto unstable/crypto unstable/main ←書き換えたのはこの行 

そうしておいて、

 % sudo fink selfupdate
 % sudo fink install mediatomb 

とし、適当に質問に答えればインストールは完了。

追記:
必要なライブラリがfinkで全くインストールされていない場合、大量のコンパイルが行われるため、きわめて長時間を要する。
あらかじめ下記のコマンドで必要なライブラリをバイナリ・インストールしておくと、大幅にインストールを高速化できる。

sudo apt-get install doxygen file file-dev file-shlibs gnome-keyring gnome-keyring-dev gnome-keyring-shlibs gnome-vfs2-unified graphviz gtkglext1 gtkglext1-shlibs guile18 guile18-dev guile18-libs guile18-shlibs libbonoboui2 libbonoboui2-dev libbonoboui2-shlibs libcroco3 libcroco3-shlibs libexif12 libexif12-shlibs libgcrypt libgcrypt-shlibs libgnome2 libgnome2-dev libgnome2-shlibs libgnomeui2-shlibs libgpg-error libgpg-error-shlibs librsvg2 librsvg2-shlibs lua51 lua51-dev lua51-shlibs ruby18 ruby18-dev ruby18-shlibs swig taglib taglib-shlibs

念のためファイアウォール機能をOFFにし、

 % mediatomb 

とかやって起動してみる。この時点でPS3の画面に「MT」というロゴが登場。ただしまだ何のファイルも入っていない。

設定ファイルが ~/.mediatomb/config.xml に作られている。デフォルトの状態だと、どうもMIMEタイプが一部しか設定されていないようだったので、

    <mappings>
      <extension-mimetype ignore-unknown="no">
        <map from="jpg" to="image/jpeg"/>
        <map from="jpeg" to="image/jpeg"/>
        <map from="gif" to="image/gif"/>
        <map from="png" to="image/png"/>
        <map from="mp3" to="audio/mpeg"/>
        <map from="m4v" to="video/mp4"/>
        <map from="mp4" to="video/mp4"/>
        <map from="mpg" to="video/mpeg"/>
        <map from="mpeg" to="video/mpeg"/>

あたりを追加しておいた。

※11/18追記:

        <map from="avi" to="video/avi"/> 

も追加しておこう。

ついでに、serverディレクティブ内に、

  

と追記。これで早送り等が出来るそうだ。

ついでに、ファイル名の文字コードについても設定を行っておく。Macファイルシステム文字コードは一応UTF-8だが、いわゆるNormalization Form Dを使っており、「だ」を「た」+「゛」と表記する。そのため、iconvで普通にUTF-8を指定すると、濁点などが化けてしまう。これを回避するには、最近のiconvで追加されているUTF-8-MACというコードセットを使えば良い。finkでインストールしたMediaTombも「最近のiconv」を使っているので、importディレクティブの中で

   ←この中に
    UTF-8-MAC  ←追加

と書けば良い。

こうしておいて、

  % mediatomb --add /Users/somebody/Public/ 

ディレクトリを追加してやると、何やらガラガラ…とHDDに書き込みをする。これが収まった頃に、PS3に出現した「MT」アイコンをたどってみると、Publicフォルだ内に入れてあった画像やMP3ファイルがPS3で試聴できた! めでたしめでたし。

ちなみに追加したファイルを移動したら、MediaTombを再起動してもエントリが残ったままになってしまった。削除の仕方が分からなかったので、 ~/.mediatomb/mediatomb.db を削除して作り直した。こいつはSQLite3のデータベースファイルであるが、MediaTombはMySQLにも対応している。MySQLを使用するようにした方が動作が速いらしい。finkのMediaTombは--without-mysqlオプション付きでコンパイルされているため、外してconfigure & 再コンパイルが必要だ。後でやってみようかな。