DLNAサーバーを立ててみる

HDD容量に余裕が出来たし、これからはサーバーに音楽や動画ファイルなんかも保存できる。

て事で、DLNAサーバー立ててスマホやテレビでサーバー内の動画を見てみようと思い立ったんです。
まあ実際には家のテレビにはDLNA機能が無くてブルーレイレコーダーのディーガ DMR-BWT520が有るのみ。
そして、私のスマホがレアなパナソニックの102P...
パナ同士って事で、すでにこのスマホとディーガ間ではDLNAで録画した番組どころか放送中の番組が見れたりするんです。
つまり、102PのDLNAクライアントソフトはDTCP-IP対応なんですね。

話を戻して、やりたい事はサーバーに保存したmp4やmp3ファイルをスマホやパソコンやディーガで再生する事です。

クライアントのパソコンWindows7はメディアプレーヤが対応している、スマホの102Pも標準で対応している、問題はディーガですがネットで調べると無理みたいですね。

まあとにかく今回はDLNAサーバーソフトとしてminidlnaをインストールしてみます。
ubuntuの場合 apt-get install minidlna でインストール出来るみたいですが、Vineは出来ません。
こちらのページこちらのページ を参考にさせて頂き、ダウンロードしたminidlna_1.1.0_static.tar.gzをインストールします。

今回は珍しくすんなりと動作させることが出来ました、先人に感謝です。

とは言ってもバージョン違いから起動停止スクリプトが動作してくれませんでした。
問題は下記の2箇所だけ、下記をファイル名minidlnaで保存し/etc/rc.d/init.dの中入れ実行権限を与える。


#!/bin/sh

# chkconfig: 345 99 10
# description: MiniDLNA is server software with the aim of being fully compliant with DLNA/UPnP-AV clients.

MINIDLNA=/usr/sbin/minidlnad                ← 変更した行 minidlna を minidlnadに
ARGS='-f /etc/minidlna.conf'
PIDFILE=/var/run/minidlna/minidlna.pid      ← 変更した行 フォルダ minidlnaの中に
LOCKFILE=/var/lock/subsys/minidlna

test -f $MINIDLNA || exit 0

. /etc/rc.d/init.d/functions

start(){
echo -n "Starting minidlna : "
daemon --pidfile $PIDFILE $MINIDLNA $ARGS
RETVAL=$?
[ $RETVAL -ne 0 ] && failure
[ $RETVAL -eq 0 ] && touch $LOCKFILE && success
echo
return $RETVAL
}
stop(){
echo -n "Stopping minidlna : "
killproc -p $PIDFILE $MINIDLNA
RETVAL=$?
[ $RETVAL -ne 0 ] && failure
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE && success
echo
return $RETVAL
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
status)
status $MINIDLNA
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac

exit 0

で結果はWMP(ウインドウズメディアプレーヤ)ではmp3,wma,mp4が問題なく再生されましたがデジカメのjpgはスライドショーとして再生されますが実用的ではない。

私のスマホ102Pでは標準のDLNAソフトではmp4,jpgは正常に再生されましたが、音楽が聴けないのでskiftaて言うアプリを入れてみると mp3, mp4,jpgとも再生出来ました。

ディーガではjpgは再生出来ますが mp3, mp4は再生出来ませんでした、矢張り...

意外にも手軽にDLNAサーバーが立てらたんですが、実はmp3ファイルではすべての曲名がUNKNOWNとなってしまうんですね、wmaとかaacでは正常に表示されるんですけどね。

この問題はminidlna側の問題で曲名をデータベースに登録する時点で発生しているらしいです。
こちらのブログに詳しく書かれています、素晴らしい。

つまり、バイナリファイルではなくコード修正してビルドすれば解決するって事ですね。

で最新版の minidlna-1.1.1.tar.gzをダウンロードし問題のコードを見てみると、すでに対策されているみたいです。

あとはこれをビルドするだけなんですが、make出来ずにいるんです...
libavutil ヘッダーファイルが足りないみたいです...

そのうち何とか出来そうですが今回はここまで。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です