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はSQLite。MySQLに変更も可能。
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
■起動
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
■参考
- MediaTomb Documentation
- http://mediatomb.cc/pages/documentation#id2858022
- Flexion.Org Wiki
- http://wiki.flexion.org/InstallingMediaTomb012.html
- MobileHackerz Knowledgebase Wiki
- http://mobilehackerz.jp/archive/wiki/index.php?FFMPEG%2F%A5%E1%A5%A4%A5%F3
■メモ
- DLNA
- Digital Living Network Alliance
http://ja.wikipedia.org/wiki/Digital_Living_Network_Alliance