24 January 2014

(Ubuntu) DLNAサーバ mediatomb のインストール

DLNAサーバ mediatombをインストールする

検証環境

・Ubuntu 12.04.4 LTS
・mediatomb 0.12.1

インストール作業

# apt-get install mediatomb

設定ファイルは、次の場所に格納されている

・/etc/init.d/mediatomb …… /lib/init/upstart-jobへのシンボリックリンク
・/etc/default/mediatomb …… 設定ファイル(サービスとして起動する場合)
・/etc/mediatomb/config.xml …… 設定ファイル(サービスとして起動する場合)

ユーザ権限で(コマンドで)起動する場合、上記のファイルは使われず、ホームディレクトリの設定ファイルが使われる。

・~/.mediatomb/config.xml

サービスとして起動する場合、/etc/default/mediatomb で指定されたユーザ名:グループ名で稼働するため、メディアファイルはそのユーザ名でアクセスできる必要がある。

/etc/default/mediatomb
# The user and group that MediaTomb should be run as.
USER="mediatomb"
GROUP="mediatomb"

また、バインドするネットワークインターフェースも明示的に指定しないといけない場合がある。

/etc/default/mediatomb
# For example: INTERFACE="eth0"
#INTERFACE=""
#         ↓
INTERFACE="eth0"

メディアファイルの格納場所のアクセス権限上の問題でサービスとしての起動が難しい場合、たとえば「現在のログオンユーザ」で起動したい場合は、サービスの自動起動を無効化してから、コマンドラインからmediatombを起動する。

※ サービスの自動起動無効化は、mediatombにバグがあるため、回避方法はこちら

一度mediatombを実行すると設定ファイル(config.xml)が自動作成されるため、それを編集する。

まず、Web設定のユーザ認証を有効化し、ユーザ名とパスワードをクリアテキストで記述する。

config.xml
    <ui enabled="yes" show-tooltips="yes">
      <accounts enabled="yes" session-timeout="30">
        <account user="test" password="password"/>
      </accounts>
    </ui>

日本語のタグ名に対応させるため、少し追加

config.xml
  </server>
  <import hidden-files="no">
    <filesystem-charset>UTF-8</filesystem-charset>  <!-- add -->
    <metadata-charset>CP932</metadata-charset>  <!-- add -->
    <scripting script-charset="UTF-8">
      <virtual-layout type="builtin"/>
    </scripting>

メディアファイルのカタログDBは、デフォルトで sqlite が使われている。 mysql に変更する場合は、ここで変更しておく。

config.xml
    <storage>
      <sqlite3 enabled="yes">
        <database-file>mediatomb.db</database-file>
      </sqlite3>
      <mysql enabled="no">
        <host>localhost</host>
        <username>mediatomb</username>
        <database>mediatomb</database>
      </mysql>
    </storage>

mediatombの起動

サービスとして起動するなら

# service mediatomb start

ユーザのプログラムとして起動するなら、/etc/default/mediatombが使われないため、バインドするネットワークインターフェースを強制指定する

# mediatomb -e eth0 [-p 49152]

バインドするネットワークとポート番号は、~/.mediatomb/config.xml内でも設定できる。

config.xml
  <server>
    <interface>eth0</interface>
    <port>49152</port>
    <ui enabled="yes" show-tooltips="yes">
    〜 以下省略 〜

また、実行するユーザが /var/lib/mediatomb 内のファイルに書き込めるよう権限設定する

# chmod go+w /var/lib/mediatomb

ファイアウォールの設定

# iptables -A INPUT -p udp --dport 1900 -j ACCEPT
# iptables -A INPUT -p tcp --dport 49152 -j ACCEPT

49152/tcp はWeb設定用のポート。ブラウザから http://172.0.0.1:49152/ というようにアクセスする。

Web設定画面

mediatomb起動時のログ(サービスの場合は /var/log/mediatomb )に書き出されているWebアクセス用URL (例 : http://192.168.1.101:49152/ )にアクセスする。

config.xmlでユーザ認証を有効化(accounts enabled="yes")している場合は、次のログオン画面が表示される。

20140124-mediatomb-web01.jpg

ファイルの追加は、ディレクトリツリーの「Filesystem」の方を選び、追加したいディレクトリやファイルの横にある「+」ボタンを押す。

20140124-mediatomb-web02.jpg