以前の記事でRaspberry Piに外付けHDDを増設してSambaをセットアップし、安価な省電力NASの作り方を紹介しました。思ったよりも普通に使えたので今度はminiDLNAをセットアップしてDLNAサーバーに仕立ててみたいと思います。
Rapberry PiのOSやNASにするためのSambaのセットアップは下記記事をどうぞ!
この通りやれば出来る!Raspberry Piをセットアップ | |
Raspberry PiにSambaをセットアップ!NASは実用レベルで使えるか? |
最近はDLNAクライアントが内蔵されているテレビも増えてきましたが、私のテレビは非対応ですので、PS4のメディアプレーヤーをDLNAクライントに使います。ちなみにPS3でも可能です(と言うかPS3の方が使いやすいです)
小さい!軽い!省電力!「PS4 スリム」の消費電力などレビュー |
DLNAというのは他の機器に保存されている映像や音楽をネットワーク越しに再生する為の規格です。Windowsには熟れた良いDLNAサーバーが多数存在しますが、Raspberry PiではLinuxのデファクトスタンダード(というか実質これしかない?)の「minidlna」を使用します。
構成を図にするとこんな感じです。
LAN接続はRaspberry Pi、PS4共に無線LANでも有線LANでもOKですが、私は有線LANで繋げるのが好きなので全て有線LANでケーブル接続しています。またテレビにDLNAクライアント機能が内蔵されている場合はPS4などのDLNAクライアントは必要ありません。
ところがこのminidlnaには致命的な問題があって普通にapt-getでインストールするとフォルダが文字化けしてしまいます。調べてみるとソースを入手して、あるオプションでコンパイルすると直るそうですので面倒だと思いながらもやってみました。
DLNAに公開するディレクトリは「/mnt/hdd/usbhdd/nas/dlna」にします。前回NASに公開したディレクトリ内にdlnaディレクトリを作って中にテスト用にMP4ファイルをコピーしておきます。
ソースコードを取得してdebパッケージを生成するための前準備
debパッケージとはDebian系Linuxのパッケージ(インストーラーのようなもの)です。Raspberry PiのOSであるRaspbianはDebianベースのLinuxですので、ソースをコンパイルしてdebパッケージを作成します。
まずは次のコマンドでdebパッケージを作成するために必要なdpkgをインストールします。
sudo apt-get install dpkg-dev devscripts
途中なにか聞いてきたら「y」→「Enter」を入力してください。
minidlnaのソースコードを取得
minidlnaのソースコードを取得するためにaptの設定ファイルを変更してソースを取得できるようにします。次のコマンドを入力してエディタで開きます。
sudo nano /etc/apt/sources.list
最終行のdeb-srcの前の「#」を削除して「Ctrl + x」→「y」→「Enter」でセーブしてエディタを終了してください。
次のコマンドを入力して編集した設定を反映します。
sudo apt-get update
ディレクトリを作ってそこにminidlnaのソースを取得します。
mkdir /tmp/minidlna
cd /tmp/minidlna
sudo apt-get source minidlna
取得したminidlnaのソースをコンパイル
今回の目的であるコンパイルオプションを書き換えます。「ls」コマンドでファイル名を確認します。
lsはWindowsでいうところのdirコマンドです。「1.1.2」の部分はバージョンですので変わっていればあわせてください。
次のコマンドを入力してエディタでオプションが記載されているファイルを開いてください。
sudo nano minidlna-1.1.2+dfsg/debian/rules
下の画像の赤枠の位置に「 –disable-nls」を追加してください。
「Ctrl + x」→「y」→「Enter」でセーブしてエディタを終了してください。
このソースをコンパイルするために必要な依存パッケージを調べます。次のコマンドを入力してください。
cd minidlna-1.1.2+dfsg
sudo dpkg-checkbuilddeps
このコマンドで出力された文字列を次のコマンドの後ろにコピーして実行してください。
sudo aptitude install ここにコピー
赤枠の出力を次の行の「install 」の後ろにコピーしています。なにか聞いてきたら「y」→「Enter」を入力してください。
やっとコンパイルです。次のコマンドを入力してください。
sudo debuild -us -uc –d
一つ上のディレクトリにdebパッケージが出来ているはずですので確認します。次のコマンドを入力してください。
cd ..
ls –al
「minidlna_1.1.2+dfsg-1.1_armhf.deb」が出来ていれば成功です。
生成されたパッケージをインストール
次のコマンドを入力して「minidlna_1.1.2+dfsg-1.1_armhf.deb」をインストールします。
sudo dpkg –i minidlna_1.1.2+dfsg-1.1_armhf.deb
minidlnaの設定
次に設定ファイルをエディタで開いて編集します。次のコマンドを入力してください。
sudo nano /etc/minidlna.conf
まずはDLNAで公開するディレクトリを指定します。カーソルキーでスクロールさせて下の設定箇所に指定してください。
media_dir=/mnt/hdd/usbhdd/nas/dlna
minidlnaはディレクトリ内をサーチしてどのようなファイルがあるかデータベースを作成します。このデータベースファイルの位置を変更します。これについては次の章で説明します。次の設定が「#」でコメントアウトされているので「#」を削除して書き換えてください。
db_dir=/tmp/minidlna
ディレクトリ内にあるファイルを自動サーチするように設定します。次の設定が「#」でコメントアウトされているので「#」を削除してください。
inotify=yes
ディレクトリ内にあるファイルをサーチする間隔を設定します。デフォルトでは895秒が設定されています。これだとディレクトリに新しいファイルをコピーしてもDLNAに出てくるのは最長15分後になってしまいます。少し長すぎるので60秒くらいにしておきます。さらに下にスクロールさせて下の設定箇所に指定してください。
notify_interval=60
コメントアウトされているので先頭の「#」は削除してください。
「Ctrl + x」→「y」→「Enter」でセーブしてエディタを終了してください。
次のコマンドを入力してRaspberry Piを再起動します。
sudo reboot
DLNAクライアントからアクセスして再生
さていよいよDLNAクライアントからRaspberry PiのDLNAサーバーにアクセスしてみましょう。今回はPS4のメディアプレーヤーを使用します。
起動するとしっかりRaspberry Piのminidlnaが認識されています。
minidlnaを選択するとフォルダが表示されます。これらはファイルを自動的に認識して分類されますが、とりあえずはフォルダー通りに表示する「Browse Folders」を選択します。
あらかじめNAS経由でコピーしておいたMP4ファイルが表示されています。どきどきしながら選択すると、、、
ちゃんと再生されました!巻き戻しや早送りのレスポンスも全く問題ありません。
それにしてもランチャストラトスかっこいいですよね。一番好きな車です。これはレプリカなんですが、ほぼ完璧なレプリカで1000万円くらいで手に入るそうです。キットカーなので自分で300時間かけて組み立てる必要があるそうですがwww宝くじが当たったらアーリーリタイヤしてこれ買って組み立てよう。そうしよう。
ファイルを追加したのにminidlnaに反映されない!
本来であれば新しいファイルをdlnaフォルダ以下にコピーすれば
inotify=yes
notify_interval=60
の2つの設定で設定時間(ここでは60秒)毎にフォルダをサーチして自動的にminidlnaに追加されるはずなのですが、私がやった限りでは待てど暮らせど追加されません。ネットで調べてみると同症状の人が多いようです。かなり時間をかけて調べましたが、解決することができませんでした。
そこで今回は上のセットアップの説明では
db_dir=/tmp/minidlna
としてtmpフォルダにデータベースファイルを作成するようにしました。tmpフォルダ内は起動毎に削除されますので、dlnaフォルダに新しいファイルをコピーした場合はRaspberry Piを再起動すればデータベースがクリアされて自動的に再作成されます。
データベースの再作成にかかる時間は数百くらいであればすぐですが、私のように数千ファイルあると数十分かかります。サーチが進行中でもサーチ済のファイルは再生できますので、dlnaフォルダ直下の各フォルダ名の先頭に数字を付けて普段よく見るフォルダは優先的にサーチさせています。
ここだけちゃんと動作してくれればあとは文句なしなのですが、、、
再生中の消費電力
動画ファイルを再生中の消費電力は3W程度です。HDDのアクセス中の消費電力が7W程度ですので合計で10W程度です。毎日5時間動画を再生(Raspberry PiもHDDも24時間電源は入れっぱなしでそのうちの5時間という意味)するとしても1ヶ月の電気代は60円程度の計算です。今まではデスクトップPCをDLNAサーバーとしていて、動画の再生中は90~100W消費していたので1/10の消費電力になりました。なかなか良い感じになりました。
まとめ
唯一の選択肢のデファクトスタンダードが「こんなん」であるのはどうよという感じですが、結果的にはRaspberry Pi 3でのDLNAサーバーは思いのほか快適に使えています。省電力性能も素晴らしいので精神衛生上も非常に安心です。NASの記事で書いたように必ずしも万人におすすめは出来ませんが、自分で作った感があって満足度はなかなかです。
ではまた!
Source : 【Raspberry Pi3】DLNAサーバ【minidlna】の文字化けを修正する
この通りやれば出来る!Raspberry Piをセットアップ | |
Raspberry PiにSambaをセットアップ!NASは実用レベルで使えるか? |