スポンサーリンク
Amazon Amazon整備済み品は、正常に機能し新品同様に見えるよう、Amazon認定出品者により整備された再生品です。
レビュー

Raspberry PiをDLNAサーバーにしてテレビで動画を見よう!

本サイトでは広告から収益を得ることがあります。

201704_12_000

以前の記事で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」を使用します。

構成を図にするとこんな感じです。

201704_12_010

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」を入力してください。

201704_12_200

minidlnaのソースコードを取得

minidlnaのソースコードを取得するためにaptの設定ファイルを変更してソースを取得できるようにします。次のコマンドを入力してエディタで開きます。

sudo nano /etc/apt/sources.list

最終行のdeb-srcの前の「#」を削除して「Ctrl + x」→「y」→「Enter」でセーブしてエディタを終了してください。

201704_12_210

次のコマンドを入力して編集した設定を反映します。

sudo apt-get update

201704_12_220

ディレクトリを作ってそこにminidlnaのソースを取得します。

mkdir /tmp/minidlna
cd /tmp/minidlna
sudo apt-get source minidlna

201704_12_230

取得したminidlnaのソースをコンパイル

今回の目的であるコンパイルオプションを書き換えます。「ls」コマンドでファイル名を確認します。

lsはWindowsでいうところのdirコマンドです。「1.1.2」の部分はバージョンですので変わっていればあわせてください。

201704_12_300

次のコマンドを入力してエディタでオプションが記載されているファイルを開いてください。

sudo nano minidlna-1.1.2+dfsg/debian/rules

下の画像の赤枠の位置に「 –disable-nls」を追加してください。

201704_12_310

「Ctrl + x」→「y」→「Enter」でセーブしてエディタを終了してください。

このソースをコンパイルするために必要な依存パッケージを調べます。次のコマンドを入力してください。

cd minidlna-1.1.2+dfsg
sudo dpkg-checkbuilddeps

このコマンドで出力された文字列を次のコマンドの後ろにコピーして実行してください。

sudo aptitude install ここにコピー

201704_12_320

赤枠の出力を次の行の「install 」の後ろにコピーしています。なにか聞いてきたら「y」→「Enter」を入力してください。

やっとコンパイルです。次のコマンドを入力してください。

sudo debuild -us -uc –d

201704_12_330

一つ上のディレクトリにdebパッケージが出来ているはずですので確認します。次のコマンドを入力してください。

cd ..
ls –al

201704_12_340

「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

201704_12_350

minidlnaの設定

次に設定ファイルをエディタで開いて編集します。次のコマンドを入力してください。

sudo nano /etc/minidlna.conf

201704_12_400

まずはDLNAで公開するディレクトリを指定します。カーソルキーでスクロールさせて下の設定箇所に指定してください。

media_dir=/mnt/hdd/usbhdd/nas/dlna

201704_12_410

minidlnaはディレクトリ内をサーチしてどのようなファイルがあるかデータベースを作成します。このデータベースファイルの位置を変更します。これについては次の章で説明します。次の設定が「#」でコメントアウトされているので「#」を削除して書き換えてください。

db_dir=/tmp/minidlna

ディレクトリ内にあるファイルを自動サーチするように設定します。次の設定が「#」でコメントアウトされているので「#」を削除してください。

inotify=yes

201704_12_415

ディレクトリ内にあるファイルをサーチする間隔を設定します。デフォルトでは895秒が設定されています。これだとディレクトリに新しいファイルをコピーしてもDLNAに出てくるのは最長15分後になってしまいます。少し長すぎるので60秒くらいにしておきます。さらに下にスクロールさせて下の設定箇所に指定してください。

notify_interval=60

コメントアウトされているので先頭の「#」は削除してください。

201704_12_420

「Ctrl + x」→「y」→「Enter」でセーブしてエディタを終了してください。

次のコマンドを入力してRaspberry Piを再起動します。

sudo reboot

DLNAクライアントからアクセスして再生

さていよいよDLNAクライアントからRaspberry PiのDLNAサーバーにアクセスしてみましょう。今回はPS4のメディアプレーヤーを使用します。

201704_12_500

起動するとしっかりRaspberry Piのminidlnaが認識されています。

201704_12_510

minidlnaを選択するとフォルダが表示されます。これらはファイルを自動的に認識して分類されますが、とりあえずはフォルダー通りに表示する「Browse Folders」を選択します。

201704_12_520

あらかじめNAS経由でコピーしておいたMP4ファイルが表示されています。どきどきしながら選択すると、、、

201704_12_530

ちゃんと再生されました!巻き戻しや早送りのレスポンスも全く問題ありません。

201704_12_540

それにしてもランチャストラトスかっこいいですよね。一番好きな車です。これはレプリカなんですが、ほぼ完璧なレプリカで1000万円くらいで手に入るそうです。キットカーなので自分で300時間かけて組み立てる必要があるそうですがwww宝くじが当たったらアーリーリタイヤしてこれ買って組み立てよう。そうしよう。

ファイルを追加したのにminidlnaに反映されない!

本来であれば新しいファイルをdlnaフォルダ以下にコピーすれば

inotify=yes
notify_interval=60

の2つの設定で設定時間(ここでは60秒)毎にフォルダをサーチして自動的にminidlnaに追加されるはずなのですが、私がやった限りでは待てど暮らせど追加されません。ネットで調べてみると同症状の人が多いようです。かなり時間をかけて調べましたが、解決することができませんでした。

そこで今回は上のセットアップの説明では

db_dir=/tmp/minidlna

としてtmpフォルダにデータベースファイルを作成するようにしました。tmpフォルダ内は起動毎に削除されますので、dlnaフォルダに新しいファイルをコピーした場合はRaspberry Piを再起動すればデータベースがクリアされて自動的に再作成されます。

データベースの再作成にかかる時間は数百くらいであればすぐですが、私のように数千ファイルあると数十分かかります。サーチが進行中でもサーチ済のファイルは再生できますので、dlnaフォルダ直下の各フォルダ名の先頭に数字を付けて普段よく見るフォルダは優先的にサーチさせています。

ここだけちゃんと動作してくれればあとは文句なしなのですが、、、

再生中の消費電力

201704_12_560

動画ファイルを再生中の消費電力は3W程度です。HDDのアクセス中の消費電力が7W程度ですので合計で10W程度です。毎日5時間動画を再生(Raspberry PiもHDDも24時間電源は入れっぱなしでそのうちの5時間という意味)するとしても1ヶ月の電気代は60円程度の計算です。今まではデスクトップPCをDLNAサーバーとしていて、動画の再生中は90~100W消費していたので1/10の消費電力になりました。なかなか良い感じになりました。

まとめ

201704_12_570

唯一の選択肢のデファクトスタンダードが「こんなん」であるのはどうよという感じですが、結果的にはRaspberry Pi 3でのDLNAサーバーは思いのほか快適に使えています。省電力性能も素晴らしいので精神衛生上も非常に安心です。NASの記事で書いたように必ずしも万人におすすめは出来ませんが、自分で作った感があって満足度はなかなかです。

ではまた!

Source : 【Raspberry Pi3】DLNAサーバ【minidlna】の文字化けを修正する

この通りやれば出来る!Raspberry Piをセットアップ
Raspberry PiにSambaをセットアップ!NASは実用レベルで使えるか?