4.10.2 miniDLNA の設定

2018年11月5日

 REGZA での ts 再生が可能な MiniDLNA を導入します。MediaTomb も良いのですが、なんと言っても私の用途では重厚長大でシステム更改時にハマる事が多いので、軽くシンプルな MiniDLNA にしてみました。

 インストールは今回 ports で行いました。導入環境(2018/11/05)は、以下の通りです。
・FreeBSD 11.2-RELEASE-p4
・minidlna-1.2.1_2,1
・ffmpeg-4.0.2_8,1
・ffmpegthumbnailer-2.2.0_6

 /usr/ports/net/minidlna に行き make install で一発です。
インストール後、/usr/local/etc/minidlna.conf を修正し、お作法通り /etc/rc.conf へ追加して起動。一発で REGZA を認識、ts 再生も問題ありません。
 す、素晴らしい!早く変えれば良かった!

不満点5点

 QNAP 用にも minidlna を opkg で入れていたのですが、比較すると以下が異なっています。
(1)port 8200 で上がる監視用 Web インターフェイスで接続機器の MAC アドレスが表示されない。(全て FF で表示される)
(2)家人が使ったら「表示されるアルバムアートが汚い」と不満たらたら。(携帯本体に転送して再生すれば良いだけじゃんと言ったら10倍文句が帰ってきた。)
(3)ビデオ/画像のサムネールが表示されない。
(4)MiniDLNA のトップ画面が英語表記。NLS 対応のハズなのになんで?

また、一番不満なのが
(5)NFS マウントしているファイルの更新チェックが出来ず管理DBが更新されない。

 それぞれ以下のように対策し、パッチを作成しました。最後に、ports へのオールインワンパッチを用意しましたので、「お前の言うこと信じちゃるからパッチだけよこせゴラ」のかたは下記7.からご利用ください。

 また、REGZA や DLNA プレイヤーでの表示画面等は、「昔の名前で出ています-MiniDLNA-」を参照ください。

1. MAC アドレス表示

 まあ、表示されなくてもそんなに困らないのですが、QNAPで出来てサーバで出来ないのも気に入らないので、調べてみました。

 接続されているリモート機器のMAC アドレスは arp テーブルから取って表示していますが、もともとは、Linux を想定しているようで、FreeBSD では取得方法が違います。
 クイック&ダーティハックで、以下のパッチを起こしました。

 

2. アルバムアートが汚い

 アルバムアートを格納した mp3 ファイルを MiniDLNA 経由でスマフォの DLNA プレーヤで再生すると表示される画像がかなり粗く表示されます。
 MiniDLNA でアルバムアートを作成する際、DLNA 標準の 160px に縮小しているのが原因で、プレーヤ側でそれを引き伸ばすので粗くなっています。
 幸い、本家?の Tickets/Patches #153 に1.2.1 用のカバーアートのリサイズパッチがありますので、有り難く頂きます。
 パッチを当て、minidlna.conf へ resize_covers=500 と追加するとましになりました。

3. ビデオ/画像のサムネール表示

 REGZA ではサムネイル表示は無いのですが、PC プレイヤー等でサムネイルが表示されません。
 ビデオに関しては、同じく本家?の Tickets/Patches #92 に旧バージョンのものがあります。本パッチを頂き、ハンドパッチして 1.2.1 の対応パッチを作成しました。パッチ本体は長いので、7.パッチ一覧 から落としてください。

 画像については、それほど使用しないので、今回は目をつぶります。尚、ビデオパッチは、本体マスターにマージされている様なので次期バージョンでは、このパッチは不要になりそうですが、それまでの繋です。
 また、このパッチを適用するには、ffmpegthumbnailer が必要です。今回は pkg で
 ffmpegthumbnailer-2.2.0_4
 を入れました。

4. MiniDLNA のトップ画面が英語表記

 LANG=ja_JP.UTF-8 で使用していますが、いつの頃からか /usr/local/share/locale のリンクを忘れていました。ja を ja_JP.UTF-8 としてシンボリックリンクを張って解決しました。

 これで、起動スクリプトをいじる必要はなくなりました。

5. NFSマウントしている領域のファイルがDB反映されない

 映像ファイル等はNASへ格納し、NFS マウントして使用していますが、ファイルの更新が MiniDLNA の管理DBへ反映されません。
 ファイル更新や追加後、毎回 MiniDLNA の DB を消して再起動させて作り直すのもファイルが多いと時間がかかり、ディスクも盛大にゴロゴロ言いますので精神衛生上よくありません。

 本家を覗くと 起動したまま DBを壊さずにリスキャンするパッチが上がっており(Patch No.172)、有り難く頂いてきました。

 バージョンが少々違うようで一部ハンドパッチして 1.2.1 の対応パッチを作成しました。パッチ本体は長いので、7.パッチ一覧 から落としてください。
 なお、本パッチは他のパッチ適用後に作成しているので、単独で充てた場合はリジェクトされる物が出ると思います。

 以下の様にコマンドラインから起動すると MiniDLNA の管理DBを更新してくれます。動作も早く再生中でも問題ありません。正に神パッチです!

6. ports へのパッチと make

 ports 内には FreeBSD 対応パッチも数種類あるので一括して make 出来る様に ports へのパッチを作成しました。同一ファイルへ複数回パッチが当たってしまう汚い仕様ですが、以下で make 可能です。

(注意)
現在 make reinstall はエラーとなり動作しません。再インストールは、deinstall 後 install してください。

Bug 224969 – ports-mgmt/pkg Registering installation Error code 70

7. パッチ一覧

【全部入り一括 make の MiniDLNA-1.2.1 ports 用】
ports-minidlna-patch.tar.bz2

【個別パッチ】
ports Makefile パッチ
ports 用アルバムアートリサイズパッチ
MAC アドレス表示パッチ
1.2.1 用 ビデオサムネイル作成パッチ(アルバムアートを先に充てる必要があります)
マニュアル非破壊リスキャン(ビデオサムネイルを先に充てる必要があります)

8. minidlna.conf の設定

 minidlna.conf は下記の様に設定しました。

 デフォルトで、DB は /var/db/minidlna 下にアルバムアートと共に作成されます。minidlna 停止後、DB を削除して再起動すれば再作成されます。初回は、サムネイル作成等の為、ファイル数によってはかなり時間がかかります。
 ログは、/var/log/minidlna.log になります。適度にローテイトが必要です。 


改定:2018/11/05 DB 非破壊マニュアル起動リスキャン機能追加、他。
初出:2018/04/23

Posted by null-a