Raspberry PiでDNLA Music Serverから曲を取得して再生するのこと。
うちの環境にはBuffaloのLinkStationというNASがあって、
こいつがDNLA Media Serverの機能を持っているので、
ミュージックライブラリとして使っていた。
VLCにはUPnP機能があったので、これで再生していた。
しかし、再生するにはパソコンを立ちあげなければいけない。
スマホにもUPnPメディアクライアントはあるけれど、
再生にはスマホを使わないといけない。
というわけで、
サーバーとして24h稼働しているRaspberry Piで
このような音楽の再生ができないかと考えた。
調査の結果、以下のことがわかった。
- DNLAはUPnPの仕様に基づいて作られている。
- UPnP Media Serverのコンテンツを再生するには、Media Rendererの実装が必要である。
- Media ServerとMedia Rendererの操作を行うためにクライアントが必要。
操作のための通信方式がSSPDだったり、SOAPだったりする。
ここまでわかるまで、SSPDやらSOAPやらを叩いて時間を使ってしまった。
これを踏まえて現状を見ると、以下が見えてきた。
- Media Serverはある。→ LinkStation
- Media Rendererはない。→ Raspberry Piに構築。
- Media Clientはない。→ さしあたり、Androidの『BubbleUPnP』が使えそう。
と、こんなことをすでにやっている人がおり、
下記の記述を参考にRaspberry PiにMedia Rendererを構築してみた。
Playing music on a Raspberry Pi using UPnP and DLNA (revisited)
ここの例にあるように、Raspberry PiにGMediaRenderをインストールした。
自動起動については、init.dではなく、systemdを使った。
スマホにインストールしてあるBubleUPnPのレンダラーを
Raspberry Pi上のレンダラーとすることで、
Raspberry Piから音を出すことができた。
しかし、Clientは自作したいな。
現状、スマホからしか操作できないのは不便だ。
参考文献:
http://blog.scphillips.com/posts/2013/07/playing-music-on-a-raspberry-pi-using-upnp-and-dlna-revisited
https://openconnectivity.org/developer/specifications/upnp-resources/upnp
http://www.upnp.org/specs/av/UPnP-av-AVArchitecture-v1.pdf.