DLNAサーバーを導入

  • MediaTomb 0.12.1

PS3などで、DLNAを利用して動画、音楽、写真を鑑賞する。メインは動画。

MediaTomb
http://mediatomb.cc/

Fedora 13

■インストール

公式からダウンロードしようと思ったら、Fedora13のリポジトリと同じバージョンだったので、yumで導入。
SVNにあるMediatombには、DVD用のインポートJSがあった。ISO対応しているかも。

sudo yum -y install mediatomb
...
インストールしました:
  mediatomb.i686 0:0.12.1-1.fc13

#必要とされるライブラリを導入(詳細はマニュアルの<mimetype-contenttype>箇所参照)
#3rd Partyのリポジトリ必要。
sudo yum -y install id3lib ffmpeg
■設定
sudo vi /etc/mediatomb.conf
#MT_INTERFACE="NOT_SET"
#使用するインターフェースを指定
MT_INTERFACE="eth0"
#ポートはデフォルト(WEBアクセス用)
MT_PORT="50500"
■メディア設定ファイル作成

一度起動して、設定ファイルを作成する。
デフォルトのDBはSQLiteMySQLに変更も可能。

sudo service mediatomb start
sudo service mediatomb stop
#確認
sudo ls /etc/mediatomb/
config.xml  mediatomb.db  mediatomb.html
■メディア設定
sudo vi /etc/mediatomb/config.xml
# Serverセクション
  <server>
    <!-- PS3で利用する。「extend="no"」を「extend="yes"」に変更 -->
    <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->
...
    <!-- DLNAクライアント上で、PCディレクトリを隠す」 -->
    <pc-directory upnp-hide="yes"/>
  </server>

# Importセクション
  <!-- 公開していないファイルは非表示 -->
  <import hidden-files="yes">
    <!-- 文字コードの設定。デフォルトではシステムのロケールから取得 -->
    <filesystem-charset>UTF-8</filesystem-charset>
    <!-- mp3tagなどの文字コードにShif_JISを使っているときは、CP932を指定すること -->
    <metadata-charset>UTF-8</metadata-charset>
    <scripting script-charset="UTF-8">
...
# Mappingセクション(Importセクションの属性)
     <mappings>
       <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="flac" to="audio/x-flac"/>
        <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="mts" to="video/mpeg"/>
        <map from="ts" to="video/mpeg"/>
        <map from="m2ts" to="video/mpeg"/>
        <map from="mkv" to="video/mpeg"/>
        <map from="mkv" to="video/x-matroska"/>
        <map from="mov" to="video/x-quicktime"/>
        <map from="vob" to="video/mpeg"/>
        <map from="iso" to="application/x-iso9660-image"/>
...
        <!-- PS3でdivxを有効にする -->
        <map from="avi" to="video/divx"/>
     </extension-mimetype>
...
    </mappings>
...
  </import>
  
# transcodingセクション
<!-- 設定しないと、flvやdivxの再生ができない-->
  <!-- トランスコーディングを有効にする。「enable=no」を「enable=yes」に修正 -->
  <transcoding enabled="yes">
    <mimetype-profile-mappings>
      <!-- divx設定を追加し、flvのusingを変更する -->
      <transcode mimetype="video/divx" using="my_ffmpeg"/>
      <transcode mimetype="video/x-flv" using="my_ffmepg"/>
...
    </mimetype-profile-mappings>
    <profiles>
...
      <!-- デフォルトではvlcコマンドだが、音が聞こえなかった -->
      <!-- vlcをyumでいれると、QTが入ってくるので入れたくない -->
      <!-- 以下追加。コマンド「my_ffmpeg」は別途作成する -->
      <profile name="my_ffmpeg" enabled="yes" type="external">
        <mimetype>video/mpeg</mimetype>
        <accept-url>yes</accept-url>
        <first-resource>yes</first-resource>
        <hide-original-resource>yes</hide-original-resource>
        <accept-ogg-theora>yes</accept-ogg-theora>
        <agent command="flvs" arguments="%in %out"/>
        <buffer size="14400000" chunk-size="512000" fill-size="512000"/>
      </profile>
    </profiles>
  </transcoding>
■トランスコード用のシェルを作成

設定値を変えてもMediatombを再起動する必要がなくなる。
当方、ffmpegのトランスコードに関する知識はない。

sudo vi  /usr/local/bin/my_ffmpeg
#!/bin/sh

FFMPEG_PATH="/usr/bin/ffmpeg"
INPUT="$1"
OUTPUT="$2"
VIDEO_CODEC="mpeg2video"
VIDEO_BITRATE="4096k"
VIDEO_FRAMERATE="30"
AUDIO_CODEC="mp2"
AUDIO_BITRATE="192k"
AUDIO_SAMPLERATE="44100"
AUDIO_CHANNELS="2"
FORMAT="dvd"

nice -5 "${FFMPEG_PATH}" -i "${INPUT}" -vcodec ${VIDEO_CODEC} -b ${VIDEO_BITRATE} \
-r ${VIDEO_FRAMERATE} -acodec ${AUDIO_CODEC} -ab ${AUDIO_BITRATE} -ar ${AUDIO_SAMPLERATE} \
-ac ${AUDIO_CHANNELS} -f ${FORMAT} - > "${OUTPUT}" 2>/dev/null
sudo chmod +x /usr/local/bin/my_ffmpeg
ポート

1900/udpUPnP discovery(DLNAアクセス)
50500/tcp:MediaTomb(WEB管理アクセス)

■起動
sudo service mediatomb start
自動起動設定
sudo chkconfig mediatomb on
sudo chkconfig --list mediatomb
mediatomb       0:off   1:off   2:on    3:on    4:on    5:on    6:off
■動作確認

PCブラウザで以下へアクセスする
http://MediaTombサーバ:50500/

PS3でMediaTombアイコンを確認する

■メモ
DLNA
Digital Living Network Alliance
http://ja.wikipedia.org/wiki/Digital_Living_Network_Alliance