テレビをRegzaから日立のプラズマWooo(XP03)に買い換えました。
Woooからmediatombが見え、ファイルの一覧までは表示出来るものの
mpeg2すら再生出来ません・・・
色々と調べてみるとmediatombはDLNA規格に準じていないらしく
BraviaやWoooでは正常に動かないらしいです。
Twonkyは有償なので入れたくありませんし、フリーのDNLAサーバーがないか調べてみました。
するとMiniDLNAというソフトがありました。
インストールはコンパイルからやる必要があるようで、以下を参考にインストールしました。
MiniDLNA | KURO-BOXの館 ZQwoonetSNS-CoDE-
※既にリンク先のサイトはなくなっているようです
ますソースの取得です。
# cvs -d:pserver:anonymous@minidlna.cvs.sourceforge.net:/cvsroot/minidlna login
パスワードの入力が求められるので、そのままエンターキーで。
# cvs -z3 -d:pserver:anonymous@minidlna.cvs.sourceforge.net:/cvsroot/minidlna co minidlna
KazHatよりバグ情報がありました。
tagutils/tagutils.cに一行追加することで、タイトル、アーティスト、ALBUMなどが正しく表示されるようです。
#include “../config.h” ←この1行を追加
#ifdef HAVE_ICONV_H
#include
#endif
参考URL
http://kazhat.at.webry.info/201007/article_5.html
コンパイルを行います。
# cd minidlna
# make
この時に必要なパッケージが足りないと、エラーと共に必要なライブラリが表示されます。
足りないパッケージは、お使いの環境で変わってきます。
殆どのパッケージは出てるライブラリの後ろに「-dev」を付けてapt-getすればいけると思います。
libid3tagは「0-dev」を付けてlibid3tag0-devで取得できました。
コンパイルが終わったらインストールします。
# make install
実行スクリプトを/etc/init.dにコピー
# cd linux
# cp minidlna.init.d.script /etc/init.d/minidlna
コピーした実行スクリプトをrc.dに登録し、OS起動時にデーモンとして起動するようにします。
# update-rc.d minidlna defaults
※OS起動時の自動実行を無効にするには、update-rc.dコマンドに「-f」オプションを付けて実行します。
/etc/minidlna.confにて設定を行い起動します。(OS再起動でもOK)
# /etc/init.d/minidlna start
設定ファイルの設定内容は、下の方に書いています。
MiniDLNAを動かすと無事Woooにてmpeg2を再生可能に!
ただMiniDLNAはmediatombのように使い勝手は良くありません。
※WoooのDLNAクライアント機能は、mpeg2しか再生できません。
confファイルもさわってあげないとDaemonをrestartしてもファイルの更新もしません。
(/tmpにDBファイル「/tmp/minidlna/files.db」があるので、OSをRebootすれば更新されます)
MiniDLNA version 1.0.17では、正常に更新されます。
ちなみにmediatombとの共存も可能なので、Woooで再生する可能性がある動画のみ
MiniDLNA用の動画ディレクトリに保存するようにしました。
通常はmediatombでWoooからのみMiniDLNAという感じで運用しています。
設定ファイルについて
/etc/minidlna.confの内容を少し書いておきます。(MiniDLNA version 1.0.17)
port
minidlnaが使用するポートを設定します。(通常は変更の必要はありません)
HTTPを利用したDLNAの提供時に利用?
network_interface
LANが複数ある場合に使用するLANを指定出来ます。
デフォルトではコメントアウトされているので、必要な場合は設定を行ってください。
media_dir
初期設定では/optとなっています。
ここで指定されているフォルダが、minidlnaが管理するフォルダとなります。
設定は「audio」「video」「images」と、それぞれ個別にフォルダを設定することも可能です。
分ける場合の例です。
media_dir=A,/mnt/disk1/share/minidlna/Music
media_dir=V,/mnt/disk1/share/minidlna/Movie
media_dir=P,/mnt/disk1/share/minidlna/Photo
friendly_name
DLNAクライアントに表示する名称を設定できます。
デフォルトはコメントアウトされていますので、DLNAサーバーを変更したい場合は設定してください。
db_dir
minidlnaはデータベースにSQLLiteを使用しています。
データベースファイルの保存先を変更したい場合は、設定を変更してください。
デフォルトはコメントアウトされており、/tmp/minidlnaに保存されます。
/tmp以下はOSを再起動するとファイルが消えてしまい、サービス起動でデータベースファイルが再作成されます。
当然ながら初期設定ですと、OS起動時の負荷も増えます。
コメントアウトを外し保存先の設定を変更した方が良いと思います。
保存されるDBファイル名は「files.db」です。
inotify
カーネルからのファイル変更通知を受け取り、自動的にデータを更新するかの設定です。
デフォルトはyesになっており、ファイルの更新があると自動的にデータが更新されます。
実際にファイルを更新しfiles.dbを確認したところ、データベース上のデータは更新されていました。
もちろんクライアント上の表示も更新されていました。
strict_dlna
yes指定で、サイズが大きいJPGをサーバー側でダウンスケーリングするみたいです。
特に支障がなければ変更の必要は無いと思います。
コメントを見る限りではSonyのDLNAでは必要?
presentation_url
HTTPを利用したDLNAの提供時に利用?
notify_interval
データの更新間隔ですが、inotify=yesであれば基本的に長間隔で良いと思います。
サービス停止時にファイルが更新されれば、データは更新されませんので
定期的に更新チェックをさせるための機能と思われます。
files.dbについて
files.dbを開いて見てみました。
ALBUM_ART、CAPTIONSというテーブルがありIDとパス項目があるので、このテーブルにイメージのパスをセットすれば、クライアントでのアルバムや動画のイメージ表示に使えるかもしれません。
DETAILSというテーブルに基本的なファイル情報が保存されています。
このテーブルのTITLE項目を変更すれば、クライアント上でのファイル名の表示が変更可能です。
これらの情報を変更するGUIをphpで作ろうかと思いましたが、なんとなく作成意欲が湧かないので作りません(笑)
作っちゃいました(笑)