CentOS6でDLNAサーバ(MediaTomb)

スポンサーリンク

DLNAクライアント機能を持つテレビなどからネットワーク経由で動画や画像を再生できるよう、MediaTombを設定して試してみました。

スマホやPCもDLNAクライアントアプリがあるのですが、そちらは共有フォルダのsambaにアクセスできれば再生できるので、どちらでもいいですが、テレビから直接見えるのは便利ですね!

設定完了するとうちのテレビ、TOSHIBA REGZA 37RE1からだと、まずリモコンのレグザリンクボタン
WS000000143

録画番組を見る
WS000000144

機器を選択でMediaTombを選択
WS000000145

あとは動画や写真などを選択して再生できます。
WS000000146
設定してやれば家中のDLNAクライアントのテレビなどから見えるのが便利ですね!

 MediaTombのインストールと設定

yumでインストールしたいのでレポジトリを追加します。

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

使う環境のCentOSに合ったものを以下から確認してみてください。
Descriptionに説明が記載されています。
http://pkgs.repoforge.org/rpmforge-release/
今回はCentOS6 64bit用の0.5.3-1です。

yumでインストール

yum install mediatomb

コマンド一発で関連したものも全て入ります。

データベースはmysqlかsqlite3ですが、mysqlにしました。
入れた環境ではmysqlを全く使ってなかったので、まずrootユーザーのパスワードを設定します。

service mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=password("rootのパスワード") where user='root';
mysql> flush privileges;
mysql> exit

 mysqlにrootで接続します

mysql -u root –p

 ここで下のようなエラーが出ました。
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

/var/lib/mysql/mysql.sock が無いようなので作成します。

touch /var/lib/mysql/mysql.sock
chown mysql:mysql /var/lib/mysql

 mysqlにmediatombのデータベースを作成してパスワード設定します。

mysql -u root -p
mysql> create database mediatomb default character set utf8;
mysql> grant all privileges on mediatomb.* to mediatomb@localhost identified by 'MediaTombユーザーのパスワード';
mysql> exit

 mediatomb用の登録コマンドが用意されてるのでこれを実行します。

mysql -u mediatomb -p mediatomb < /usr/share/mediatomb/mysql.sql

MediaTombデーモンの設定をするため、下の設定ファイルを編集します。

vi /etc/sysconfig/mediatomb

MediaTombが使うインターフェイスをeth0にして保存します。

MT_INTERFACE="NOT_SET"
↓
MT_INTERFACE="eth0"

/etc/mediatomb/config.xml を生成させるためにMediaTombを起動し、停止します。
(起動すると上記ファイルが生成されます)

MediaTomb起動
service mediatomb start

出力されたらひとまず停止
service mediatomb stop

MediaTombの設定を修正していきます。

vi /etc/mediatomb/config.xml

ひとまずテレビから再生できるまでの設定で、下のようになりました。
赤文字が修正箇所です。

<?xml version="1.0" encoding="UTF-8"?>
<config version="2" xmlns="http://mediatomb.cc/config/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/2 http://mediatomb.cc/config/2.xsd">
 <server>
 <ui enabled="yes" show-tooltips="yes">
 <accounts enabled="no" session-timeout="30">
 <account user="mediatomb" password="mediatomb"/>
 </accounts>
 </ui>
 <name>MediaTomb</name>
 <udn>uuid:c9b6b559-9c13-4d87-a73f-c2047268c17c</udn>
 <home>/etc/mediatomb</home>
 <webroot>/usr/share/mediatomb/web</webroot>
 <storage>
 <sqlite3 enabled="no">
 <database-file>mediatomb.db</database-file>
 </sqlite3>
 <mysql enabled="yes">
 <host>localhost</host>
 <username>mediatomb</username>
 <password>mysqlのmediatombデータベースのパスワード</password>
 <database>mediatomb</database>
 </mysql>
 </storage>
 <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->
 <!--
 Uncomment the lines below to get rid of jerky avi playback on the
 DSM320 or to enable subtitles support on the DSM units
 -->
 <!--
 <custom-http-headers>
 <add header="X-User-Agent: redsonic"/>
 </custom-http-headers>
<manufacturerURL>redsonic.com</manufacturerURL>
 <modelNumber>105</modelNumber>
 -->
 <!-- Uncomment the line below if you have a Telegent TG100 -->
 <!--
 <upnp-string-limit>101</upnp-string-limit>
 -->
 <extended-runtime-options>
 <mark-played-items enabled="no" suppress-cds-updates="yes">
 <string mode="prepend">*</string>
 <mark>
 <content>video</content>
 </mark>
 </mark-played-items>
 </extended-runtime-options>
 </server>
 <import hidden-files="no">
 <filesystem-charset>UTF-8</filesystem-charset>
 <metadata-charset>CP932</metadata-charset>
<scripting script-charset="UTF-8">
 <common-script>/usr/share/mediatomb/js/common.js</common-script>
 <playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script>
 <virtual-layout type="builtin">
 <import-script>/usr/share/mediatomb/js/import.js</import-script>
 </virtual-layout>
 </scripting>
 <mappings>
 <extension-mimetype ignore-unknown="no">
 <map from="jpg" to="image/jpeg"/>
 <map from="JPG" to="image/jpeg"/>
 <map from="JPEG" 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="mpg" to="video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_CI=0"/>
 <map from="mpeg" to="video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_CI=0"/>
 <map from="m2ts" to="video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_CI=0"/>
 <map from="MTS" to="video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01;DLNA.ORG_CI=0"/>
 <map from="mp3" to="audio/mpeg"/>
 <map from="ogx" to="application/ogg"/>
 <map from="ogv" to="video/ogg"/>
 <map from="oga" to="audio/ogg"/>
 <map from="ogg" to="audio/ogg"/>
 <map from="ogm" to="video/ogg"/>
 <map from="asf" to="video/x-ms-asf"/>
 <map from="asx" to="video/x-ms-asf"/>
 <map from="wma" to="audio/x-ms-wma"/>
 <map from="wax" to="audio/x-ms-wax"/>
 <map from="wmv" to="video/x-ms-wmv"/>
 <map from="wvx" to="video/x-ms-wvx"/>
 <map from="wm" to="video/x-ms-wm"/>
 <map from="wmx" to="video/x-ms-wmx"/>
 <map from="m3u" to="audio/x-mpegurl"/>
 <map from="pls" to="audio/x-scpls"/>
 <map from="flv" to="video/x-flv"/>
 <map from="mkv" to="video/x-matroska"/>
 <map from="mka" to="audio/x-matroska"/>
 <!-- Uncomment the line below for PS3 divx support -->
 <map from="avi" to="video/divx"/>
 <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
 <!-- <map from="avi" to="video/avi"/> -->
 </extension-mimetype>
 <mimetype-upnpclass>
 <map from="audio/*" to="object.item.audioItem.musicTrack"/>
 <map from="video/*" to="object.item.videoItem"/>
 <map from="image/*" to="object.item.imageItem"/>
 </mimetype-upnpclass>
 <mimetype-contenttype>
 <treat mimetype="audio/mpeg" as="mp3"/>
 <treat mimetype="application/ogg" as="ogg"/>
 <treat mimetype="audio/x-flac" as="flac"/>
 <treat mimetype="image/jpeg" as="jpg"/>
 <treat mimetype="audio/x-mpegurl" as="playlist"/>
 <treat mimetype="audio/x-scpls" as="playlist"/>
 <treat mimetype="audio/x-wav" as="pcm"/>
 <treat mimetype="audio/L16" as="pcm"/>
 <treat mimetype="video/x-msvideo" as="avi"/>
 <treat mimetype="video/mp4" as="mp4"/>
 <treat mimetype="audio/mp4" as="mp4"/>
 <treat mimetype="application/x-iso9660" as="dvd"/>
 <treat mimetype="application/x-iso9660-image" as="dvd"/>
 </mimetype-contenttype>
 </mappings>
 <online-content>
 <YouTube enabled="no" refresh="28800" update-at-start="no" purge-after="604800" racy-content="exclude" format="mp4" hd="no">
 <favorites user="mediatomb"/>
 <standardfeed feed="most_viewed" time-range="today"/>
 <playlists user="mediatomb"/>
 <uploads user="mediatomb"/>
 <standardfeed feed="recently_featured" time-range="today"/>
 </YouTube>
 </online-content>
 </import>
 <transcoding enabled="no">
 <mimetype-profile-mappings>
 <transcode mimetype="video/x-flv" using="vlcmpeg"/>
 <transcode mimetype="application/ogg" using="vlcmpeg"/>
 <transcode mimetype="application/ogg" using="oggflac2raw"/>
 <transcode mimetype="audio/x-flac" using="oggflac2raw"/>
 </mimetype-profile-mappings>
 <profiles>
 <profile name="oggflac2raw" enabled="no" type="external">
 <mimetype>audio/L16</mimetype>
 <accept-url>no</accept-url>
 <first-resource>yes</first-resource>
 <accept-ogg-theora>no</accept-ogg-theora>
 <agent command="ogg123" arguments="-d raw -o byteorder:big -f %out %in"/>
 <buffer size="1048576" chunk-size="131072" fill-size="262144"/>
 </profile>
 <profile name="vlcmpeg" enabled="no" type="external">
 <mimetype>video/mpeg</mimetype>
 <accept-url>yes</accept-url>
 <first-resource>yes</first-resource>
 <accept-ogg-theora>yes</accept-ogg-theora>
 <agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/>
 <buffer size="14400000" chunk-size="512000" fill-size="120000"/>
 </profile>
 </profiles>
 </transcoding>
</config>

<map from=”JPG” to=”image/jpeg”/> などの部分は from= が拡張子で、大文字、小文字を区別するため、デジカメの生ファイル名が大文字の.JPGなどの場合は上記のように追加しておかないと認識してくれないです。
(小文字の.jpgは既に存在するので、ファイル名を小文字に変換すれば認識してくれますが)

設定ファイルが編集できたらMediaTombを起動します。

service mediatomb start

上手く設定できた場合、「http://サーバのIP:50500」にアクセスするとMediaTombのメディア管理画面が表示されます。
WS000000140

 表示されない場合はMediaTombのログを確認してみてください。
上記は50500ポートでしたが、このログに待ち受けているURLも出力されています。

cat /var/log/mediatomb

MediaTombとmysqlが起動時に開始するようにしときます。

chkconfig mysqld on
chkconfig mediatomb on

あとはMediaTombのメディア管理画面から配信したいディレクトリなどを指定してやればOKです。

追加は「Filesystem」をクリックした後、動画や写真の入ったディレクトリを選択し、右側の「プラスとグルグルのアイコン」をクリックします。
グルグルのアイコンはファイルが追加された際などに自動で認識してくれる機能です。
WS000000141WS000000142

 「Database」に戻り、「All video」などに対象のファイルが追加されていれば完了です。
特に問題がなければ、テレビなどから再生できると思います。

 上手く動作しない場合は下のページを確認してみてください。

MediaTomb(DLNAサーバ)が動作しない時は
https://blog.aimix.jp/700/

 

Comment

タイトルとURLをコピーしました