jessie向けの新ページを作成しました。こちらからどうぞ

7.DLNAサーバーの立て方 (miniDLNA) - RaspberryPiで各種サーバー作り! - ある阪大生の物置小屋

DLNAは家庭内でネットワークストリーミングによるメディア共有を実現する規格です。
最近は、PS3やテレビ、スマホ等も対応しています。
ここでは、「miniDLNA」を用いてDLNAサーバーを立てる方法について説明します。

7.1.「miniDLNA」のインストール

「miniDLNA」をインストールするには、以下のコマンドでインストールできます。

sudo apt-get install minidlna

7.2.「miniDLNA」の設定

  1. miniDLNAの設定ファイル「/etc/minidlna.conf」を以下のように編集します。
    (変更)
    media_dir=(公開したいディレクトリ)
    port=(任意のポート)
    inotify=yes
    notify_interval=10
    
    (「inotify」はフォルダを監視し、変更があった場合に自動でデータベースを更新するオプション)
    (「notify_interval」は変更を監視する周期(秒指定))
    (ポート番号は他のプログラムが利用しないなら1024〜49152のポート番号を利用しても良い)
  2. 以下のコマンドで、iptablesの設定を書き換え、miniDLNAの通信が通るようにします。
    sudo iptables -A INPUT -j ACCEPT -d 239.255.255.250 --protocol udp --destination-port 1900
    sudo iptables -A INPUT -j ACCEPT -s (DLNAを利用するネットワークアドレス)/(サブネットマスク) --protocol tcp --destination-port (設定したポート番号)
    sudo iptables -A OUTPUT -j ACCEPT -d (DLNAを利用するネットワークアドレス)/(サブネットマスク) --protocol tcp --source-port (設定したポート番号) -m state --state RELATED,ESTABLISHED
    sudo iptables -A OUTPUT -j ACCEPT -m owner --uid-owner (minidlnaユーザのユーザーID) -d 239.255.255.250 --protocol udp --destination-port 1900
    sudo iptables -A OUTPUT -j ACCEPT -m owner --uid-owner (minidlnaユーザのユーザーID) -d (DLNAを利用するネットワークアドレス)/(サブネットマスク) --protocol udp --source-port 1900
    
    minidlnaユーザのユーザーIDは以下のコマンドで調べられる。
    id -u minidlna
    
    2.5.の通り、iptablesの設定の変更後は以下のコマンドで設定を記録しておくこと。
    sudo iptables-save | sudo tee /etc/iptables/rules.v4
    
  3. カーネルパラメータを変更するために「/etc/sysctl.conf」を以下のように編集して、miniDLNAのファイル監視数を増やす。
    (追加)
    fs.inotify.max_user_watches = 16384
    
  4. 以下のコマンドで、miniDLNAに設定を読み直しさせます。
    sudo -u minidlna /etc/init.d/minidlna force-reload
    
  5. 外部からメディアが見れるか確認します。
    テレビなり、PS3なり、スマホなりからDLNAで見えるか確認!

7.参考サイト

製品紹介(Amazonアフィリエイト)



2014/5/5 iptables開放ポート追加(一部DLNAクライアントでサーバーが見えないため)
2014/9/20 説明文の変更・注釈追加・参考サイトの追加
2014/10/25 設定の読み直しの手順が抜けていたので追加・参考サイトの追加