TOC
BubbleUPnPで家庭内音楽ライフ
今回はAndroid用のソフトであるBubbleUPnPを使った事例を紹介します。BubbleUPnPはBubbleSoftが提供する音楽再生ソフト1の一種で、359円で別途ライセンスを購入すると広告表示なし等の有償機能がアンロックされるタイプのアプリです。ライセンスを購入しなくてもこの記事に記載するDLNAな音楽ネットワークは構築できますのでぜひ試していただきたいですね。
DLNAの用語(デバイスクラス)の定義
参考:DMC? DMRって?、DLNAネットワークオーディオ“再入門”
DLNAではデバイスクラスという機能を持つ役割が定義されています。
DLNA 1.0で定義
DMS: Digital Media Server
コンテンツを保持、データを送信する機能
DMP: Digital Media Player
DMSのコンテンツを受け取って再生する機能
DLNA1.5で定義
DMC: Digital Media Controller
DMSの持っているコンテンツをコントロールする機能
DMR: Digital Media Renderer
指示されたコンテンツを再生する機能
BubbleUPnPで構築するDLNAネットワーク
前提:一般的な音楽再生におけるユースケース
それではまず大前提として、一般的な音楽再生のユースケースを確認しましょう。
Being participant b as Music
Player a->>b: 再生 b-->>a: ♪ Note over a,b: 音楽再生
今日の登場人物一覧
- ぼく(音楽を聴く人)
- ぼくが操作するAndroid→DMC
- 再生したい曲にDLNAとしてアクセスできるAndroid→DMS
- 曲を再生するAndroid→DMR
ここに登場するAndroidには全てBubbleUPnPをインストールします。また、これらDMC、DMS、DMRは全て同一のAndroid端末でも問題ありません。
BubbleUPnP設定
初期起動画面はこうなっています。ナビゲートの案内が表示されるのでタップしていくタイプです。
DMRにするAndroidの設定
音を出すAndroidの設定をします。
初期画面左下のMoreをタップし、表示されるメニューの⚙(Settings)をタップします
SettingsのLocal Rendererをタップします。
Allow remote controlをタップしたら設定終了です。
DMSにするAndroidの設定
DMRの場合と同様、初期画面の左下のMoreをタップし、表示されるメニューの⚙(Settings)をタップします。(画像省略)
SettingsのLocal and Cloudをタップします。
Advertise on LANとEnable remote browsingをチェックします。LAN上の端末からDLNA経由で画像ファイル、音楽ファイル、動画ファイルが見えるようになるので、プライベートなファイルがある場合は接続元を絞る等の設定を追加ですることをお勧めします。
なお、タップ時にコンテンツにアクセスできるようになるという通知のダイアログが表示され、CONFIGURE MEDIA ALLOWED FOR REMOTE BROWSINGをタップすることで公開するコンテンツを選ぶ画面にも飛びます。
DMR(曲を再生するAndroid)の指定
実際に曲が流れるDMRを指定します。上の画像で白抜きにされている部分がDMRの指定部分になり、通常は「Local Renderer」が指定されていますが、他にDMRが見つかった場合はボタンをタップした際に以下のようになります。別の端末で撮っているので背景が異なりますがご了承ください。
各DMRの右の…をタップすると、InfoとSettingが選択できるようになってInfoをタップするとデバイスの詳細が表示されます。DMRに設定したいRendererをタップすることでDMRが切り替わります。
DMS(再生する曲を格納しているAndroid)の指定
上記の初期画面右下にある「Library」をタップすると、どの曲を再生するか選択する画面になります。Libraryの左上でLocal and Cloudの右にある▼をタップすると「Select library…」と「Local and Cloud」を選べるようになります。
「Select library…」をタップするとDMSの指定画面になるので、DMSとして使用したいものをタップします。これで指定は完了です。
設定が終わって再生すると、操作しているAndroidでもファイルがあるAndroidでもないAndroidから音楽が流れる。いわば音楽再生のリモコン化ができるようになります。音楽再生に特化したなどの一芸に秀でたAndroidがあればそれを活かすことが出来るわけですね。
おまけ:Raspberry Piに格納されている音楽を手元で聞く
ReadyMedia(旧:minidlna)をセットアップ
うちにあるRaspberry PiはHDD繋げてるので、コンテンツを置いてDMSをインストールしたらDMRやDMPで再生できるようになるよね・・・ということで、UbuntuをインストールしているRaspberry Pi2/3にReadyMediaをインストールしてDMSとして使えるようにします。
# apt-get install minidlna
daemon確認
# systemctl status minidlna.service
● minidlna.service - LSB: minidlna server
Loaded: loaded (/etc/init.d/minidlna; generated)
Active: active (running) since Sat 2019-07-13 01:06:19 UTC; 11min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 2 (limit: 1055)
CGroup: /system.slice/minidlna.service
└─32083 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/mi
(略)
# systemctl is-enabled minidlna.service
minidlna.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled minidlna
enabled
ということで、systemdネイティブのdaemonではないですがdaemonとして動いていて自動起動も有効になっています。設定の変更は以下の通りです。
# diff -u /etc/minidlna.conf{.org,}
--- /etc/minidlna.conf.org 2019-07-13 01:22:12.218029513 +0000
+++ /etc/minidlna.conf 2019-07-13 01:31:46.483088272 +0000
@@ -23,7 +23,8 @@
# * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
# * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
-media_dir=/var/lib/minidlna
+media_dir=A,/mnt/hdd/ippan/nextcloud/SNAP_COMMON/admin/files
+#media_dir=/var/lib/minidlna
# Set this to merge all media_dir base contents into the root container
# (The default is no.)
@@ -92,7 +93,7 @@
#model_number=
# Automatic discovery of new files in the media_dir directory.
-#inotify=yes
+inotify=yes
# List of file names to look for when searching for album art.
# Names should be delimited with a forward slash ("/").
こちらの変更箇所は
- media_dirに/mnt/hdd/ippan/nextcloud/SNAP_COMMON/admin/filesを指定2
- inotifyで更新を検出する
です。後者についてはdaemon起動時に数字が小っちゃいと言われるのですが実害が出たら書き換えようかと。
# systemctl restart minidlna.service
サービスを再起動して、ブラウザから http://192.168.1.130:8200/ にアクセスしてみると動作状況が表示されます。これはうれしいですね。
Media library | |
---|---|
Audio files | 0 |
Video files | 0 |
Image files | 0 |
ドーン!1ファイルも認識されてない。ディレクトリ読めてないのかしら。serviceってrootで上がるんじゃないの?念の為minidlnaプロセスをkillしてsystemctl start minidlna.service
してから確認したら…
$ ps -ef | grep minidlna
minidlna 5453 1 0 01:54 ? 00:00:00 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -r
root 5558 31072 0 01:55 pts/0 00:00:00 systemctl status minidlna.service
ubuntu 5836 5806 0 01:56 pts/3 00:00:00 grep --color=auto minidlna
はい出たminidlnaユーザー。設定ファイルをもう一回見てみると。
# Specify the user name or uid to run as (root by default).
# On Debian system command line option (from /etc/default/minidlna) overrides this.
#user=minidlna
コメントアウトされてるからminidlnaユーザーじゃないと思っていたらDebianシステムでは/etc/default/minidlnaの設定値で上書きされるとのこと。だもんで編集。
# diff -u /etc/default/minidlna{.org,}
--- /etc/default/minidlna.org 2019-07-13 02:06:38.429802550 +0000
+++ /etc/default/minidlna 2019-07-13 02:07:12.213394202 +0000
@@ -15,7 +15,7 @@
#LOGFILE="/var/log/minidlna.log"
# User and group the daemon should run as
-#USER="minidlna"
+USER="root"
#GROUP="minidlna"
# Additional options that are passed to the daemon
改めて再起動。
# systemctl restart minidlna.service
BubbleUPnPから接続
DMSとして利用するので検索します。
このDebianロゴのubuntu3のInfoを見てみると
対応フォーマットがだいぶ狭いです。OPUSがない。画像もgifとpngがない。よく考えたらうちのNASはReadyNASなのでminidlnaと同じものは元々使ってたものと機能的に同じですね。
OPUSについてはissueが上がってて、更にpatchもあるのに取り込まれてないという現状であることを確認。うーん。
UbuntuでのDLNAソフトについて
今回試したReadyMedia以外に代表的なDLNAソフトとしてKodiがあります。KodiはLibreELEC等のRaspberry PiのOSとしてビルトインするほど著名でユーザーも多いのですが、私の家ではRaspberry Piはheadless(画面なし)で運用していることと、KodiはDMCとしての側面が強いこともあり今回はReadyMediaをインストールしています。インストールするバイナリのサイズがReadyMediaの場合14MB程度なのに対して、ReadyMediaインストール済みの状態からKodiをインストールするだけでも57MB必要になるなど重量級なので、今回は採用を見送りました。
comments powered by Disqus