ちょっと前になるが、PlayStation3がDLNAクライアント機能に対応した。これを使えば、市販の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 & 再コンパイルが必要だ。後でやってみようかな。