PS3 Media Player へ、DLNA環境をWindows Media Playerから乗り換えました。使用したバージョンはpms-setup-windows-1.21.1 です。理由はBRAVIAでFLASHやmp4なども再生したかったからです。ただし、非力なマシンをサーバにすると、コマ落ちして、まともに視聴できないので注意。
※ mp3の早送りは以前書いた通りできません
まずはPMSはJavaが必要なので、Java(Oracle版)をインストール。ここで重要なのが、32bit版Javaをインストールしてあげてください。というのも、あとで述べる自動起動のためのWindowsサービス化ではまります。
つぎにBRAVIA用の設定ファイルの追加です。DTV関係ファイル置き場から、pms avcmod plus v1.21.1.1 というのをダウンロードし、解凍して出てきたrenderersフォルダ内のファイルを、PMSインストールディレクトリのrenderersフォルダにコピーします。また、update.jar をPMSインストールディレクトリにコピーします。
以上で基本的な準備は終了。デスクトップ上にできているショートカットからPMSを起動し、BRAVIAからDLNAアクセスできるか確認しておきましょう。mp4ファイルなどもトランスコードで再生できるはずです。
次にPMSの自動起動設定です。サービスの登録はPMSの基本設定のタブにある、「Windowsサービスに登録」ボタンをクリックするだけです。
が、、これだけでは起動しません。
まず、ショートカットで起動させたPMSを一度終了させ(javawプロセスがいなくなったことをきとんと確認するべし)、サービスで起動させようとすると、プロセスが強制終了したとかいうエラーに 遭遇。ログを読んでみたところ、javaコマンドへのPATHが登録されていないのが原因です。
Windowsの環境設定で、環境変数PATH にjavaコマンドのあるディレクトリを登録してあげます。
具体的にはコントロールパネルのシステムから、システムの詳細設定を選択し、環境変数PATHに、
;C:\Program Files (x86)\Java\jre6\bin
を追加します。※上記は64bit Windowsの場合のデフォルトインストール先です
これでサービスから起動することができるようになりますが、BRAVIAからmp4ファイルをトランスコードで再生できません。そもそも先ほど設定した内容が全く反映されていません。
まずトランスコードできないのは、ショートカットから起動する場合と、サービスから起動する場合でjavaコマンドに渡すオプションが違うのが原因のようです。よって、 C:\Program Files (x86)\PS3 Media Server\win32\service\wrapper.conf を以下のように編集します。
編集前
~ 省略 ~ wrapper.java.classpath.1=win32/service/wrapper.jar wrapper.java.classpath.2=pms.jar ~ 省略 ~ wrapper.java.additional.1=-Djava.encoding=UTF-8 wrapper.java.additional.2=-Djava.net.preferIPv4Stack=true wrapper.java.additional.3=-Dstart.service=true
編集後
~ 省略 ~ wrapper.java.classpath.1=win32/service/wrapper.jar wrapper.java.classpath.2=update.jar wrapper.java.classpath.3=pms.jar ~ 省略 ~ wrapper.java.additional.1=-Dfile.encoding=UTF-8 wrapper.java.additional.2=-Djava.net.preferIPv4Stack=true wrapper.java.additional.3=-Dstart.service=true
これで、サービスを再起動すれば、無事トランスコードで再生できるようになりました。
が、やはり設定が反映されていません。これは、サービスとして起動させると作業フォルダが異なるのが原因のようです。ショートカットで起動した時の設定は、C:\Users\{ユーザ名}\AppData\Roaming\PMS にPMS.conf, WEB.conf というファイル名で存在します。これをPMSのインストール先ディレクトリC:\Program Files (x86)\PS3 Media Server\にコピーすることで、無事設定の反映させることができました。もしくは、サービスのログオンアカウントを、現在作業しているアカウントに変更する方法でもOKです。
ちなみに、最初に少し述べましたが、64bitのJavaでサービス起動させようとすると、サービス化のために使用しているライブラリwrapper.dllが32bitのため、うまくサービスとして起動できないので注意です。