スマートフォンがあればNASにある映像や画像を直接表示できますが、AV家電からはなかなかそうはいきません。しかしメディアサーバがあればDLNA対応AV家電(PS3/4含む)でも再生が可能です。
そこで今回はOrangePiを使ってメディアサーバを構築してみたいと思います。
環境
- Server:Orange Pi PC(ARM Coretex-A9)
- OS:armbian (jessie) 3.4.112-sun8i
- DLNA server:minidlna 1.1.2+dfsg-1.1+b3
メディアサーバ構築手順
minidlnaの概要
無料で使えそうなメディアサーバはいくつかありますが、今回はその中でminidlnaを使うことにしました。minidlnaは軽量シンプルなサーバソフトウェアで、尚且つarmbianのパッケージに含まれるためインストールがとても簡単に行えます。
ただ、以下の機能には対応していません(もし必要であれば他のメディアサーバを使うしかありません)。
- 動画サムネイルの生成/表示(あらかじめディレクトリにサムネイル画像を配置するとそれを表示する)
- トランスコード機能(動画フォーマットの自動変換)
トランスコード機能に対応した非公式版は存在しているようです。ソースからコンパイルする必要はありますが、参考までにご紹介します。
- archlinux - Package Details: readymedia-transcode-git 581.290ef09-1
https://aur.archlinux.org/packages/readymedia-transcode-git/
パッケージインストール
以下のようにしてパッケージからインストールを行います。
$ sudo apt-get install minidlna
設定
minidlnaは設定用のWebUIを持ちません。そのため設定ファイルを直接編集する必要があります。
以下のようにしてメディアファイルの格納先ディレクトリやメディア一覧の更新間隔を指定します。
$ sudo vim /etc/minidlna.conf
/etc/minidlna.com
# followed by a comma, as so: # * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music) # * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures) # * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos) media_dir=/mnt/usbhdd/nas/ (メディアを格納するディレクトリを指定) # Automatic discovery of new files in the media_dir directory. inotify=yes (ディレクトリに追加されたファイルを自動的に検索する) # Notify interval, in seconds. notify_interval=8950 (自動検索する間隔)
メディアファイルの配置
設定ファイルで指定したディレクトリに適当な動画や画像ファイルを配置します。
前項でも記載しましたが、minidlnaは動画のサムネイル生成に対応していません(mp4やmkv形式でサムネイルが埋め込まれている場合はそれが表示される)。色々試しましたが、どうしても表示したい場合は動画ファイル1個毎にディレクトリを作成し、その中に"cover.jpg"等の"minidlna.conf"で指定してあるファイル名でサムネイル画像を配置するしかないようです。
サムネイル生成は"ffmpegthumbnailer"を使うと簡単です(apt-getでインストールできます)。
$ sudo apt-get install ffmpegthumbnailer
サムネイル生成のスクリプト
find /mnt/usbhdd/nas -name \*.mp4 | while read ln; do ffmpegthumbnailer -i "$ln" -o "$(dirname "$ln")/$(basename "$ln" .mp4).thumb.jpg" done
動作確認
適当な動画や画像ファイルを配置したらminidlnaを再起動します(起動時にファイルを検索して登録します。その後に追加したファイルは表示されるまでしばらく時間がかかります)。
$ sudo services minidlna restart
以下のURLにアクセスすると簡単なステータスが表示されます。
- http://<サーバのアドレス>:8200/
また、Windows10のネットワークを確認するとメディア機器として認識されていることがわかります。右クリックして"Media Playerを開く"とすると、WindowsMediaPlayerで配置したファイルを再生出来ます。
所感
思ったより簡単に設定出来てしまいました。
再生中の負荷も少なく軽量でいい感じではあります。が、機能があまり無くて、特にトランスコード機能が無いとクライアント側で再生出来ない形式のファイルだとどうしようもありません。PCならコーデックを入れてやればいいのですが、AV家電と連携して使うにはちょっと使いづらいかもしれません。トランスコード対応の非公式版をビルドしてみようかな。。。
参考
この記事は以下のサイトを参考に記載させていただきました。
- 苺菓のすゝめ - Raspberry Pi 3 にDLNAサーバ導入
http://www.8yazaki.jp/raspi/8_minidlna/ - TECHSCORE BLOG - Raspberry pi (b+) で、DLNAサーバを作ろう!
http://www.techscore.com/blog/2014/12/25/raspberry-pi-b-%E3%81%A7%E3%80%81dlna%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86%EF%BC%81/ - Generate Thumbnails in MiniDlna
https://groups.google.com/forum/#!topic/alt-f/8BkQQDyb2j0 - archlinux - ReadyMedia
https://wiki.archlinuxjp.org/index.php/ReadyMedia - Mazwai
http://mazwai.com/#/