MediaTomb を導入して DLNA サーバを構築する.

MediaTomb のインストール

# wget http://downloads.sourceforge.net/mediatomb/mediatomb-0.11.0.tar.gz
# tar zxvf mediatomb-0.11.0.tar.gz
# cp mediatomb-0.11.0/mediatomb.spec /usr/src/redhat/SPECS/
# cp mediatomb-0.11.0.tar.gz /usr/src/redhat/SOURCES/
# vi /usr/src/redhat/SPECS/mediatomb.spec
BuildRequires: sqlite-devel, mysql-devel, libexif-devel, taglib-devel, file, js-devel, zlib-devel, expat-devel
# rpmbuild -bb --clean /usr/src/redhat/SPECS/mediatomb.spec
エラー: ビルド依存性の失敗:
        sqlite-devel は mediatomb-0.11.0-8.x86_64 に必要とされています
        mysql-devel は mediatomb-0.11.0-8.x86_64 に必要とされています
        libexif-devel は mediatomb-0.11.0-8.x86_64 に必要とされています
        taglib-devel は mediatomb-0.11.0-8.x86_64 に必要とされています
        js-devel は mediatomb-0.11.0-8.x86_64 に必要とされています
        zlib-devel は mediatomb-0.11.0-8.x86_64 に必要とされています
        expat-devel は mediatomb-0.11.0-8.x86_64 に必要とされています

依存関係で叱られたため,必要なものをインストールしていく. taglib-devel と js-devel は公式リポジトリに存在しないためRPMforge のリポジトリを登録してインストールした.

# yum -y install sqlite-devel mysql-devel libexif-devel taglib-devel js-devel zlib-devel expat-devel
# rpmbuild -bb --clean /usr/src/redhat/SPECS/mediatomb.spec
# rpm -ivh /usr/src/redhat/RPMS/x86_64/mediatomb-0.11.0-8.x86_64.rpm
準備中...                ########################################### [100%]
   1:mediatomb              ########################################### [100%]
# rm -f /usr/src/redhat/RPMS/x86_64/mediatomb-*
# rpmbuild --rmsource --rmspec /usr/src/redhat/SPECS/mediatomb.spec
# rm -rf mediatomb-0.11.0
# rm -f mediatomb-0.11.0.tar.gz

MySQL でデータベース作成

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1514
Server version: 5.0.86 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database mediatomb;
Query OK, 1 row affected (0.03 sec)

mysql> grant all privileges on mediatomb.* to mediatomb@localhost identified by 'hogehoge';
Query OK, 0 rows affected (0.02 sec)

mysql> exit
Bye

# mysql -p mediatomb < /usr/share/mediatomb/mysql.sql
Enter password:

MediaTomb の設定

# vi /etc/mediatomb.conf
## Network interface on which the server will run, you need to edit this!
MT_INTERFACE="eth0"

# /etc/rc.d/init.d/mediatomb start ← 一度起動して config.xml を作成する
Applying multicast settings to eth0... Starting mediatomb: [  OK  ]
# /etc/rc.d/init.d/mediatomb stop
Shutting down mediatomb:                                   [  OK  ]

# vi /etc/mediatomb/config.xml

<!--      <sqlite3 enabled="yes"> -->
      <sqlite3 enabled="no">

<!--      <mysql enabled="no"> -->
      <mysql enabled="yes">

        <password>設定したパスワード</password>

<!--    <protocolInfo extend="no"/>--><!-- For PS3 support change to "yes" -->
    <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->

  <import hidden-files="no">
    <filesystem-charset>UTF-8</filesystem-charset>
    <metadata-charset>CP932</metadata-charset>
    <scripting script-charset="UTF-8">

      <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="m4v" to="video/mp4"/>
        <map from="mp4" to="video/mp4"/>
        <map from="mpg" to="video/mpeg"/>
        <map from="mpeg" to="video/mpeg"/>

<!--        <map from="avi" to="video/divx"/> -->
        <map from="avi" to="video/divx"/>

iptables の設定, MediaTomb の起動および自動起動設定

# iptables -A INPUT -s 192.168.0.0/24 -p udp --dport 1900 -j ACCEPT
# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 50500 -j ACCEPT
# service iptables save
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[  OK  ]
# service iptables restart
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns     [  OK  ]
# service mediatomb start
Applying multicast settings to eth0... Starting mediatomb: [  OK  ]
# chkconfig mediatomb on
# chkconfig --list mediatomb
mediatomb       0:off   1:off   2:on    3:on    4:on    5:on    6:off