Raspberry Piのメディアレンダー化作戦 DLNA編

Raspberry Pi 2 Model Bのメディアレンダー化作戦。次はDLNAのレンダラーです。

Raspbian Stretch Liteですので、動画はレンダーしません。

LinuxはシンプルにCLI派です。

f:id:naoyukinagano:20171030225612j:plain

 

さて、RaspbianのDLNAレンダーですが、Gstreamerを利用したGmediarenderで構築します。

よくGmediarendererと記載されているサイトがありますが、Raspbian Stretchにはgmediarenderというパッケージがありますので、それを使います。

パッケージが用意されているなんて、さすが最新OS

なので、こちらも依存関係含めてパッケージを入れるだけ。

 root@raspberrypi:~# apt-get install libupnp-dev libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-alsa gmediarender

 

さて、ハマったのが起動。

普通なら

 root@raspberrypi:~# systemctl enable gmediarender

で、自動起動の登録、

root@raspberrypi:~# systemctl start gmediarender

で起動するはずですが、ps -eでもgmediarenderというプロセスは見つからず。

 

起動スクリプトが/etc/init.d/gmediarenderに入っているので見てみると、

[ "x$ENABLED" = "x1" ] || exit 0

こんな一行が。

$ENABLEDってどこに定義してあるんだろうとスクリプトを見ても、見当たりません。

ようやく探し当てたのが、/etc/default/gmediarenderというファイル。

というやらこいつが設定ファイルだったようです。

 

設定ファイル/etc/default/gmediarenderの中の

ENABLED=1

UPNP_DEVICE_NAME="$(hostname)"

INITIAL_VOLUME_DB=0.0

ALSA_DEVICE="hw:1,0"

DAEMON_EXTRA_ARGS="--logfile /var/log/gmediarender.log"

という5項目を設定しました。

ENABLEDがコメントアウトしてあったので起動しなかったんですね。

UPNP_DEVICE_NAMEは、DLNAのコントローラに通知する名前なので、よさげなものをつけて下さい。私はホスト名で。

INITIAL_VOLUME_DBは音量をdbで指定します。0は音量最高。こうしないと出力が小さくなりますので。

ALSA_DEVICEはサウンドデバイスの設定です。aplay -lで出てくるデバイスを指定できます。shairport-syncで指定したoutput_device=と同じ、USB Audioを指定しています。

DAEMON_EXTRA_ARGSは他に定義したい起動オプションを記載するようです。とりあえずログ指定を。

 

ではようやく起動です。

root@raspberrypi:~# systemctl start gmediarender

 

Windows10から見えるようになりました。

f:id:naoyukinagano:20171031003814p:plain