ファイルサーバ(samba)を自前で用意しているため、DLNAサーバも自分で立てる必要がある。今まではDLNAサーバにmediatombを使って何とかやりくりしてきた。このツールはとにかく文字コードに対してセンシティブで運用が大変。ファイルシステムをUTF8にしてしまえば何て事はないのかもしれないが、移行前のファイルサーバは歴史が古くEUCだったため、とにかく苦労した。
ファイル名はEUCで、音楽ファイルヘッダ(taglib)の曲名はUTF8にもかかわらず、それらを取り込むときのstring_converterは同じ関数を使っているため、普通に使っていると、どちらかは間違いなく文字化けしてしまう。無理矢理関数追加してごまかしてたけど、もうUTF8の統一環境を作れない限りはmediatombは使いたくないなと思っていた。
そういう背景もあって、今回はOSもファイルサーバもUTF8で構築した。mediatombを使うための準備は整っていたのだが、centos7用のrpmが存在しない。もちろんmakeすれば対応できるだろうが、もはや開発の進展も期待できそうにないので他のツールを探してみる事にした。そして意外とあっさり見つかったのがminidlnaだった。
こちらはnux-dextopリポジトリにcentos7用のrpmも存在しているので、さくっとインストールして利用可能。
yum install -y epel-release ¥
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install -y minidlna
vi /etc/minidlna.conf
----
:
friendly_name=mydlna_server
:
media_dir=P,/data/photo
media_dir=V,/data/video
media_dir=A,/data/audio
----
systemctl start minidlna
systemctl enable minidlna
systemctl status minidlna
以下、mediatombとminidlnaについて比較してみる。
- カスタマイズ
mediatombではsony独自規格の音楽ファイルatrac対応させたり、DVDのISO再生に対応させたりと、対応フォーマットの拡張自由度が高かった。今となっては、その手の需要そのものがなくなってしまったので、minidlnaでの対応方法は未調査。 -
日本語の曲名取り込み
mediatombでは曲順があいうえお順になってしまうので、トラック番号付きのファイル名で管理していた。その関係でEUCでのファイル名取り込みに苦労した。minidlnaはトラック順で曲を管理してくれるので、音楽ファイルヘッダのタグ情報から曲名そのものを取り込む事ができるようになった。タグを使える副産物かもしれないが、再生時間もクライアントに渡るようになった。 -
追加ファイルの対応
どちらも対象ディレクトリに追加されたファイルを自動でライブラリに追加可能。ただし、mediatombは追加時の取り込み処理が初期化時と異なる関数になるため、自分の環境では日本語ファイル名は必ず文字化けしていた(直さなかっただけだけど)。minidlnaは当然この点についても何の問題もない。
もはや言うまでもないかもしれないが、自分はminidlnaを使っていく事に決めた。