MediaTomb

提供: ArchWiki
移動先: 案内検索

関連記事

MediaTomb - Free UPnP MediaServer より:

MediaTomb はオープンソース (GPL) の UPnP メディアサーバーです。ウェブユーザーインターフェイスが内蔵されており、デジタルメディアをホームネットワークにストリーミングして様々な UPnP 互換のデバイスから視聴することができます。

MediaTomb は PlayStation 3 (Xbox 360 はサポートされていません) などの UPnP に対応するデバイスにデジタルメディアをストリーミングすることができます。FUPPES, ps3mediaserver, uShare などと同じサーバーの一つです。MediaTomb の特徴して、抽出されたメタデータにあわせてサーバーレイアウトをカスタマイズすることができます (スクリプタブルな下層コンテナ)。MediaTomb は高度な柔軟性が確保されています。

インストール

MediaTomb は AURmediatombAUR パッケージでインストールすることができます。

最新の開発版も AURmediatomb-gitAUR パッケージでインストール可能です。

Mediatomb は内蔵されているデーターベースと、ローカルの MariaDB サーバーのどちらかを使うことができます。MariaDB を利用する方法は ドキュメント を見て下さい。

設定

大抵の場合、デフォルト設定で問題ありませんが、PlayStation 3 を使うには設定の変更が必要です。MediaTomb はユーザー個別にも設定・実行することも、ユーザー全体のデーモンとして設定することもできます。インストール後、以下を実行すると現在のユーザーで MediaTomb が起動して ~/.mediatomb/config.xml にデフォルト設定が生成されます:

$ mediatomb

もしくは、次のコマンドを実行すると MediaTomb デーモンが起動して /var/lib/mediatomb/.mediatomb/config.xml にデフォルト設定が生成されます:

# systemctl start mediatomb

MariaDB データベースバックエンドを使う場合、次を実行してください:

# systemctl start mediatomb-mariadb

MariaDB が立ち上がっているか確認されてから MediaTomb が起動します。

使用方法

デフォルトで使用されるデーモンのポートは 50500 です。ウェブインターフェイスにアクセスしてメディアをインポートするには、お好きなブラウザで http://127.0.0.1:50500/ を開いて下さい (JavaScript が必要です)。

ユーザー個別に MediaTomb のインスタンスを起動した場合、デフォルトのポートは 49152 です。ただし、サーバーを再起動するとポートが変わってしまう可能性があります。起動時にウェブインターフェイスの URL が出力されます。ユーザーは手動でポートを指定することも可能です:

$ mediatomb -p 50500

メディアプレイヤーにフルパスを表示しない

デフォルトでは、フォルダをデバイスで閲覧したときはディレクトリのフルパスが表示されます。

例えば、/media/my_media/video_data/videos/movies ディレクトリを追加した場合、接続したときに root から 'movies' ディレクトリに移動する必要があります。

フルパスを非表示にして追加したディレクトリだけを表示するには、インポートスクリプトを修正します。

例えば、以下のスクリプトは自動的に video_root 変数で指定したディレクトリまで切り詰めます。動画ルートパス直下に追加されたディレクトリは UPnP 端末ですぐ表示されます。

function addVideo(obj)
{
   var video_root = "/media/main_core/Server_Core_Folder/FTP_Services/Media/";

   var absolute_path = obj.location;

   var relative_path = absolute_path;

   if(absolute_path.indexOf(video_root) == 0)
      relative_path = absolute_path.replace(video_root, "")

  var chain = new Array();

  var pathSplit = relative_path.split("/");

  for(var i = 0; i < pathSplit.length - 1; i++) 
      chain.push(pathSplit[i]);

  addCdsObject(obj, createContainerChain(chain));
}

UPnP デバイスのディレクトリ表示からデフォルトの PC Directory フォルダを表示しないようにするには、以下を config.xml ファイルの server ノードの下に追加してください:

<pc-directory upnp-hide="yes"/>

Playstation 3 サポート

このセクションでは MediaTomb をシステム全体のデーモンとして実行していることを前提としています。ユーザー個別でインストールしている場合、設定ファイルの場所が異なります (上を参照)。

PlayStation 3 をサポートするには、<protocolInfo extend="yes"/> を設定する必要があります。DivX を使用する場合は "avi" mimetype のマッピングもアンコメントしてください。

/var/lib/mediatomb/.mediatomb/config.xml
...

<protocolInfo extend="yes"/>

...

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

...

メディアをデータベースにインポートするとき、MediaTomb は <virtual-layout type="..."> オプションで定義されたとおりに仮想コンテナレイアウトを作成します。つまり、仮想データベースオブジェクトの作成によってメディアはメタデータ (アルバムやアーティストなど) で管理されます。メディアを既にファイルシステム上で管理している場合、この機能を無効化することでパフォーマンスを劇的に向上させることができます:

/var/lib/mediatomb/.mediatomb/config.xml
...

<virtual-layout type="disabled"/>

...

Users may customize the import script to fine-tune the virtual layout. The Scripting section of the MediaTomb wiki provides several examples. Starting with the built-in script available at /usr/share/mediatomb/js/import.js:

$ cp /usr/share/mediatomb/js/import.js /var/lib/mediatomb/.mediatomb/

... and edit /var/lib/mediatomb/.mediatomb/import.js as desired. To utilize the customized script, users must set <virtual-layout type="js"> and specify the script's location.

/var/lib/mediatomb/.mediatomb/config.xml
...

<virtual-layout type="js">
  <import-script>/var/lib/mediatomb/.mediatomb/import.js</import-script>
</virtual-layout>

...

MediaTomb が認識される前にインターフェイスを指定する必要があります (eth0 は接続するインターフェイスに置き換えてください):

/var/lib/mediatomb/.mediatomb/config.xml
<server>
...
  <interface>eth0</interface>
...
</server>

MediaTomb の設定が完了したら、次を実行してサーバーを再起動:

# systemctl restart mediatomb

Samsung TV サポート

Samsung TV のサポートを有効にするには AUR から mediatomb-samsung-tvAUR をインストールしてください。mediatombAUR パッケージに多少のパッチをあてたものです。TV が DLNA に対応している必要があります。また、サーバーと TV を同一のネットワークに接続してください。

このセクションでは MediaTomb をシステム全体のデーモンとして実行していることを前提としています。ユーザー個別でインストールしている場合、設定ファイルの場所が異なります (上を参照)。

機種によっては config.xml に変更が必要です。<custom-http-headers> セクションを編集したり、<mappings> セクションにエントリを2つ追加することで互換性が向上します。

/var/lib/mediatomb/.mediatomb/config.xml
...

<custom-http-headers>
   <add header="transferMode.dlna.org: Streaming"/>
   <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>
</custom-http-headers>

...

<map from="avi" to="video/mpeg"/>
<map from="mkv" to="video/mpeg"/>

...

Systemd の統合

mediatomb パッケージには systemd サービスファイルが2つ付属しています: mediatomb.servicemediatomb-mariadb.service。root で実行するのは危険なため、どちらもインストール時に作成される 'mediatomb' ユーザーで実行されます。

どちらのサービスを使うかは、mariadb が立ち上がるまで mediatomb を待機させるどうかで決めてください。つまり、mariadb バックエンドを使用する場合は mediatomb-mariadb.service を使って、逆に使用しない場合は mediatomb.service を使います。

デバイスから MediaTomb サービスが探知されない場合は、'lo' 以外のインターフェイスが使われていることを /etc/default/mediatomb で確認してください。

トラブルシューティング

ウェブフロントエンドでコンテンツを追加しても Mediatomb に表示されない

Mediatomb をユーザーで実行する場合、追加したファイルを読み込む権限をユーザーが持っていないといけないということに注意してください。

Mediatomb を 'mediatomb' ユーザーで実行するのであれば、動画ファイルの所有者を 'mediatomb' ユーザーにするか、'mediatomb' ユーザーが属しているのと同じグループにファイルを設定して、ファイルが読み込めるようにしてください ('mediatomb' has to be in the group to which the file belongs (the file then needs the read rights for the group to be set))。

30分後にクライアントからの接続が途切れる

SSNP メッセージが一度しか送信されないために、クライアントによってサーバーが落ちたと誤認識されて30分で接続を解除しているのが原因です。

config.xml に alive タグを追加してください:

<alive>180</alive>

デフォルトの 180 は UPnP の仕様書どおりです。

参照: http://mediatomb.cc/pages/documentation#id2856362

バグ

特定の IP アドレスを指定する "-i" コマンドラインオプションは機能しません。Debian上流 で2010年にバグが報告されています。ウェブサーバーは全てのインターフェイスでアクセスできるままです。