ハマログ

株式会社イーツー・インフォの社員ブログ

mediatombで自前DLNAサーバーを構築してみる

単車の乗り換え(トリッカー→CB400SF)を検討中の藤田です。

前回、iTunesサーバー(mt-daapd)を構築しましたが、今回は動画ファイルも扱いたい、
スマホ・タブレットでも見たい、という事で今回はDLNAサーバーの構築をやってみたいと思います。
ブルーレイレコーダー等にホームサーバー機能として搭載されているものですね。
自分も最近買い替えたんですが、これが便利なもんでiPad mini片手にごろ寝視聴してます。
いい感じにダメ人間化してきてます。

※DLNA(wikipedia)
http://ja.wikipedia.org/wiki/Digital_Living_Network_Alliance

というわけで、またまた業務とは一切関係のない趣味の環境構築編。

【環境】

CentOS6.5 64bit
・MySQLインストール済

【手順】

1.RPMforgeリポジトリ追加

もうあるよ!という方は飛ばして手順2へ。

# 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

2.MediaTombインストール

コマンド一発。依存関係のあるものもどかっとインストールされます。

# yum install mediatomb

3.MySQLデータベース作成

MediaTomb用のDBとユーザーを作成します。
(例ではパスワード:passwordとしていますが、実際はより強固なパスワードを設定して下さい)

# mysql -u root -p

mysql> CREATE DATABASE mediatomb DEFAULT CHARACTER SET utf8;

mysql> GRANT ALL PRIVILEGES ON mediatomb.* TO mediatomb@localhost IDENTIFIED BY 'password';

mysql> exit

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

4.MediaTomb設定

MediaTombの設定ファイルを編集

# vi /etc/sysconfig/mediatomb

MT_INTERFACE="NOT_SET"
 ↓ ↓ ↓ ↓
MT_INTERFACE="eth0"

config.xmlを生成する為に一旦動かしてすぐ止める

# service mediatomb start ; service mediatomb stop

config.xmlを編集

# vi /etc/mediatomb/config.xml
    <storage>
      <sqlite3 enabled="no"> ←sqliteを無効にする
        <database-file>mediatomb.db</database-file>
      </sqlite3>
      <mysql enabled="yes"> ←mysqlを有効にする
        <host>localhost</host>
        <username>mediatomb</username>
        <password>password</password> ←パスワードを追加
        <database>mediatomb</database>
      </mysql>
    </storage>
    <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" --> ←PS3のサポート有効化

 ~(中略)~

  <import hidden-files="no">

    <filesystem-charset>UTF-8</filesystem-charset> ←文字コード設定追加
    <metadata-charset>CP932</metadata-charset> ←文字コード設定追加

    <scripting script-charset="UTF-8">

 ~(中略)~

    <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="m4v" to="video/mp4"/> ←メディア形式追加
        <map from="mp4" to="video/mp4"/> ←メディア形式追加
        <map from="mpg" to="video/mpeg"/> ←メディア形式追加
        <map from="mpeg" to="video/mpeg"/> ←メディア形式追加

        <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"/> ←PS3のdivx対応有効化
        <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
        <!-- <map from="avi" to="video/avi"/> -->
      </extension-mimetype>

MediaTomb起動

# service mediatomb start

5.MediaTomb管理画面確認

ブラウザで http://(サーバーのIP):50500 へアクセスして以下のような画面が出ればOK

WS000005

Filesystemから公開したいディレクトリを選んで画面右上の + をクリックする事で公開されます。

現在公開されているディレクトリはDatabaseに表示されます。
非公開にする場合、画面右上の × をクリックする事で非公開になります。

クライアントからの使い方は割愛します。
自分は以下の環境で動作確認を行いました。

Windows…WindowsMediaPlayer(1ファイルが3つずつ表示されてしまう不具合あり?)
Mac…VLCMediaPlayer
iOS端末…MediaLinkPlayerLite
Android端末…Sonyタブ標準搭載のムービーアプリ
PS3

DLNAiTunesmediatomb

  fujita   2014年4月2日


関連記事

iptablesのログを出力して確認する方法

仕事でiptablesのログを出して調査する機会がありました。 過去何回か同じよ…

Laravelのページネーションでrel=”next”とrel=”prev”を実装する

ページネーションの実装時に、GoogleのGoogle ウェブマスターブログ 複…

Laravel4でHTTPステータスコードを設定する

Laravel4でのHTTPステータスコードの設定方法。 HTTPステータスコー…


← 前の投稿

次の投稿 →