玄箱DLNAサーバ化(mediatomb)

我が家では玄箱は映像置き場にも使っていて、使い始めた当初から、Mediawiz(BaffaroだとLinktheaterなど)のサーバとして使っていました。Mediawiz系の装置はDLNA以前のものなのでDLNAとの互換性は無いですが、なに不自由無く使っていたので、特にDLNAサーバを構築する欲求は有りませんでした。


テレビをREGZAやBRAVIAに替えてから、VARDIA(東芝のHDDレコーダ)をサーバとしてHD画質をDLNAで他のテレビで見れることから、「DLNAもいいな」と考えるようになり、やってみようかとなったわけです。玄箱だとSD画質ですが(暗号化されたファイルはダメ)、MediawizだとLinktheaterを立ち上げる必要がありましたが、DLNAだとテレビ自体に機能があるので、テレビだけで操作できるので一手間省けます。そんなこんなでインストールしてみました。

d0222779_15234670.jpg




  1. mediatombのインストール
    DLNAサーバはたくさんありますが、利用者の多そうな(?)mediatombにしてみました。ただ、apt-getでバイナリからインストールできるものは0.11.0-3と多少古いようなので、最新のものをsourceからインストールしてます。これだとISOも使えるようです(まだ試してないですが)


    apt-getだとこれがインストールされる
    # apt-cache show mediatomb
    Package: mediatomb
    Priority: optional
    Section: net
    Installed-Size: 96
    Maintainer: Andres Mejia
    Architecture: all
    Version: 0.11.0-3
    Depends: mediatomb-daemon (>= 0.11.0-3), iceweasel | firefox | www-browser
    Filename: pool/main/m/mediatomb/mediatomb_0.11.0-3_all.deb
    Size: 18064
    :
    :


    今回は最新のpkgのsourceを入手して使いました。

    sourceはここから入手
    http://mediatomb.cc/pages/download
    現状最新版はmediatomb-0.12.1.tar.gz

    /usr/local/srcで展開
    tar zxvf mediatomb-0.12.1.tar.gz
    その前に、必要なpkgをインストール。メモリを圧迫するため最低限表示に必要なモノだけを入れた。
    # aptitude install build-essential
    # aptitude install zlib1g-dev
    # aptitude install libmysqlclient-dev
    # aptitude install libid3-dev
    # aptitude install libexif-dev
    # aptitude install libmagic-dev
    # aptitude install libmozjs-dev
    # aptitude install mysql-server

    mysqlをつかうかlite3を使うか微妙なところだけど、これは好みの問題で。


    mediatombのsrcを展開したディレクトリに移り、makeします。
    # ./configure
    # make
    # make install


    私の場合、どうしても「expatがないよ!」的なエラーでconfigureが正常終了しなかった。aptitude install expatを実行しても、やはりconfigureで止まってしまう。
    半ばヤケになりapt-getでインストールできるmediatomb-0.11.0でいいかな‥‥、と思いましたが、ダメもとでexpatをsourceからインストールしてみたところ、うまくいきました。


    apt-get source expatで/usr/local/sourceにダウンロードし、expat-2.0.1のディレクトリで./configureを実行。特に設定するところはないので、makeしてmake installを実行。

    その後、mediatombをconfigureを実行したところ無事終了。あとはmake;make installで終了。



  2. 設定
    起動する前に、これは先人たちのhpを参考に、sqlのおまじない。

    mysqlのデータベースを作成します。
    # mysql -p
    mysql> CREATE DATABASE mediatomb;
    mysql> GRANT ALL ON mediatomb.* TO 'mediatomb'@'localhost';
    mysql> ^d

    次にテーブルを作成します。
    # mysql -p mediatomb < /usr/local/share/mediatomb/mysql.sql(パスワードはmysqlをインストールしたときのパスワード)

    そこで一度起動すると、root/.mediatombの下にconfig.xmlが作成されます。
    ※できるディレクトリはインストール時に/etcの下にmediatomb.confがあるかないかで変わるみたいです

    config.xmlは、0.12.1ではあまりいじるところは無くて、
     <protocolInfo extend="yes"/>
    no→yesに替えたくらいです。



    mediatomb.confの設定をしておきます。
    sourceからインストールした弊害なのか、私の環境ではmediatomb.confとinit.d配下にできるはずの起動用scriptファイルmediatombが有りませんでした。仕方がないので自分で作ることに。
    sourceを展開したディレクトリの下(/usr/local/src/mediatomb-0.12.1/scripts)に元となるファイルがあるので、それを適宜コピーして、自分の環境にあわせてディレクトリを修正すればOK。

    /etc/init.d/mediatomb
    miz-testbox:/etc# less /etc/init.d/mediatomb
    #!/bin/sh
    #
    # mediatomb This script starts and stops the mediatomb daemon
    #
    # chkconfig: - 95 30
    # processname: mediatomb
    # description: mediatomb is a daemon process which provides a UPnP service
    # config: /usr/local/etc/mediatomb
    # config: /usr/local/etc/mediatomb/config.xml
    # pidfile: /usr/local/var/run/mediatomb.pid

    # Source default mediatomb configuration
    . /etc/mediatomb.conf

    MEDIATOMB="-d -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE -l $MT_LOGFILE -m $MT_HOME
    -f $MT_CFGDIR -p $MT_PORT"

    [ -f /usr/local/bin/mediatomb ] || exit 0

    [ -e /usr/local/etc/default/mediatomb ] && . /usr/local/etc/default/mediatomb

    # By default it's all good
    RETVAL=0

    # See how we were called.
    case "$1" in
    start)
    if [ ${MT_ENABLE} = false ] ; then
    echo "mediatomb startup is disabled in /usr/local/etc/default/mediatomb"
    exit 0
    fi

    # Check if MT is already running
    if [ -e /var/lock/mediatomb ] ; then
    $0 stop
    fi

    # Start daemon.
    touch $MT_PIDFILE
    chown $MT_USER.$MT_GROUP $MT_PIDFILE

    mkdir -p "/$MT_HOME/$MT_CFGDIR"
    chown $MT_USER.$MT_GROUP "/$MT_HOME/$MT_CFGDIR"

    echo -n "Starting mediatomb: "

    /usr/local/bin/mediatomb $MEDIATOMB $MT_OPTIONS

    RETVAL=$?
    if [ $RETVAL = 0 ] ; then
    touch /var/lock/mediatomb
    echo "ok"
    else
    rm -f ${MT_PIDFILE}
    echo "failed"
    fi
    ;;
    stop)
    # Stop daemons.
    echo -n "Shutting down mediatomb: "

    if [ -f ${MT_PIDFILE} ] ; then
    kill `cat ${MT_PIDFILE}` 2>/dev/null
    else
    killall mediatomb 2>/dev/null
    fi
    RETVAL=$?
    if [ $RETVAL = 0 ] ; then
    rm -f /var/lock/mediatomb
    rm -f ${MT_PIDFILE}
    echo "ok"
    else
    echo "failed"
    fi

    ;;
    restart)
    $0 stop
    $0 start
    ;;
    condrestart)
    [ -e /var/lock/mediatomb ] && $0 restart
    ;;
    *)
    $0 start
    ;;
    esac

    exit $RETVAL
    (END)



    うまく動くかどうかテストします。
    /etc/init.d/mediatomb start


    ps axで確認しプロセスが起動していることを確認。
    18533 ? Ssl 4:33 /usr/local/bin/mediatomb -d -u root -g root -P /var/r
    un/mediatomb.pid -l /var/log/mediatomb -m /etc -f mediatomb -p 50133


    玄箱のサーバのアドレスとmediatomb用にmediatomb.confで指定したポート(私は50133にした)にアクセスし、設定画面が開くことを確認します。

    d0222779_1517364.jpg



    テレビ側でDLNAで配信を受けるためには、配信するファイルをmysqlに登録する必要があります。操作は簡単、設定画面のGUIで操作するだけ。

    1.左上の"Filesystems"をクリックし、サーバのどのディレクトリを配信するか選び、右上にある"+"のマークをクリックすると、その配下のファイルおよびディレクトリがdatabaseに追加されます。
    d0222779_1519599.jpg


    その右となりの、"+"の周りに矢印がぐるっと回っているアイコンは、追加したディレクトリをスキャンして新たにファイルが追加された場合databaseに自動的に追加する設定です。これをInotifyにでもしておけば、ファイルにどかどか追加するだけで、クライアントで見れるようになります。
    d0222779_15202494.jpg


    一旦登録したファイルを消すには、databaseで該当のファイル、およびディレクトリを選択して”×”マークを押せばdatabaseから削除されます。



  3. 問題発生
    テレビからDLNAのサーバの内容が見れることは確認できましたが、肝心のファイルを選択すると、”クライアントで表示できません”的なメッセージが出ました。念のためjpgやmp3などを、BRAVIA、REGZA、iPhoneのそれぞれのDLNAクライアントで試したけど、結果は同様に表示や再生をできない旨のメッセージが出ます。

    ここで数日悩んで放置‥‥。

    で、最初から入れ直して気づきましたが、常識的なことなのかも知れませんが、mysqlで最初に登録する際のディレクトリ、およびファイルに日本語ファイルを設定してはダメです!
    なお、ディレクトリを最初に登録した後は、日本語ファイルでもいけます。これは気づかなかった。


    ということで、過去取りためたSD映像をサーバにポンポン入れておいて、必要ならばすぐ読みに行ける機能を無事に果たすようになりました。

    d0222779_15215414.jpg

    d0222779_15221096.jpg


    参考にしたhp
    http://shige-take.cocolog-nifty.com/blog/2008/02/hgdlna_d0f3.html
    [PR]
    by tkn384 | 2011-05-29 12:36 | 玄箱


今の好きなことは、暇な時いじる玄箱とか家電とか


by tkn384

プロフィールを見る
画像一覧

カテゴリ

全体
家電
玄箱
電子工作
Raspberry Pi
未分類

以前の記事

2014年 09月
2014年 08月
2014年 07月
2014年 06月
2014年 03月
2013年 08月
2012年 05月
2011年 05月
2011年 04月
2011年 03月
2011年 02月

フォロー中のブログ

メモ帳

最新のトラックバック

ライフログ

検索

タグ

その他のジャンル

ブログパーツ

最新の記事

玄箱サーバ死亡
at 2014-09-23 16:39
初代玄箱USB増設
at 2014-08-31 14:05
RaspberryPiのバッ..
at 2014-07-21 23:31
Windows7とWindo..
at 2014-07-20 12:16
Windows7のPCを買い..
at 2014-07-06 01:48

外部リンク

ファン

記事ランキング

ブログジャンル

ネット・IT技術

画像一覧