Bubble UPnP Serverを使用して外出先から自宅ライブラリを聴く

OpenHome化で使用したBubble UPnP Serverですが、他にも機能が搭載されており、その中でも興味を引いたのが、自宅外からDMSへアクセスする機能です。コレを使えば、スマホ内に音楽データを入れる必要が無くなる!というわけで、追加で設定してみました。

■前提条件

  • Bubble UPnP Serverが何らかの機器上ですでに稼働していること
  • ADSL以上のインターネット回線があること
    ISDNは厳しいと思います。流石にいないか・・・
  • DynamicDNSもしくは固定グローバルIPアドレスが使えること
    無くても何とかなりますが、使い勝手がかなり悪くなります。ブロードバンドルーター購入の無料提供だとヤマハやアイオーデータ、VPN製品だとSoftEther社のSoftEther VPN、専業ではMyDNS.jpなど。なお、自宅ではVPNも使用しているのでSoftEther VPNを使用しています(ここではDynamicDNSの設定については省略)。
  • Android搭載のスマートフォン、タブレット
    LTE搭載、もしくはテザリングで同等の速度が出ること。foobar2000もクライアントアプリとして使用できるそうですが、試していません。
  • 使用する端末へのBubble UPnPのインストール
    フルバージョンじゃないといけないかどうかは未確認

■サーバー設定手順(Bubble UPnP Server)

  1. Bubble UPnP Serverの設定画面へアクセスする。
  2. 「Network and Security」タブをクリックし、「Allow to access the server from the Internet」にチェックを入れる。
  3. チェックボックスの上方「Credentials」のLoginとPasswordに、外部ネットワーク側からDMSへアクセスする際のユーザー名とパスワードを入力する。
    なお、「Public host name」には自分のインターネットアクセス回線のリモートホストが表示となる。
    BUPP-001
  4. 「Media Servers」タブへ移動し、外部ネットワークから接続した際にアクセスするDMSを選択後、「Make this Media Server available in Bubble UPnP for Android and foobar2000 for Internet Access」にチェックを入れる。
    BUPP-002
  5. 「Status」タブに戻り、「Internet Connectivity Test」ボタンをクリックする。クリック後、ボタン右に「HTTP:Server is reachable from Internet」「HTTPS:Server is reachable from Internet」の表示が出れば外部ネットワークから接続できている状態となり、基本的な設定は完了。
    BUPP-000

■メモ的な物(Bubble UPnP Server)

  • ブロードバンドルーターがUPnPに対応していないと「Internet Connectivity Test」ボタンをクリックした際に、テスト結果がエラーとなる(赤文字で結果表示)。この場合はルーターの静的ポート変換機能で、外部ネットワークからの58050ポートと58051ポートへの通信を、Bubble UPnP Serverを動かしているPCもしくはNASへ転送する設定が必要となる。
  • 「Status」タブの下方に最低でも「Audio Trancecoding Supported:yes」の表示が出ていないと、オーディオメディアファイルをMP3に変換して送信する機能が動作せず、パケット通信契約の上限まで使い切ってしまう恐れがあるので注意する事(俺は絶対FLAC!WAVEだ!という方なら関係ないけどw)
  • ブロードバンドルーターを再起動やポート設定を弄った場合、Bubble UPnP ServerがUPnPの再設定を行わないのか、外部ネットワークからアクセス出来なくなることがある。その際は「Status」タブの下方「Restart Server」ボタンをクリックしてサーバーを再起動する。
    (インストール先がWindows機であれば、タスクマネージャを利用して深夜のアクセスしない時間帯などに、Bubble UPnP Serverサービスを定期的に再起動させるのも良いかもしれない)
  • 「Setting」タブの「Adbanced」タブにある「Trancecode high-res audio to 44.1/16 or 48/16 FLAC」はハイレゾ(44.1/16 or 48/16と書いてあるのでこれ以上のファイルの場合?)ファイルをTrancecodeを利用してダウンコンバートする機能の設定のようだが、クライアント側にBubble UPnPを使用している限りでは、ここで設定をしてもクライアント側設定が優先される模様(設定は後述)。
    BUPP-003

■クライアント設定(Bubble UPnP)
設定手順はBubble UPnP Serverのサイトにドキュメント化されているが、一通りの手順を書いてみます。

  1. Bubble UPnPを起動し、Settingメニューへ移動する
  2. 「Setup network wizard」を選択
  3. 「Name」に設定の名称を入力(自宅 など)。Server addressにBubble UPnP ServerのStatusタブなどで表示されていたPublic host name、もしくはDynamicDNSサービスで取得したFQDNを入力する。
  4. LoginとPasswordは「Credentials」で入力した文字列を設定。
  5. Active on connectionをタップし、ラジオボタンを「Mobile」に変更する。変更することによって、自宅LAN環境ではBubble UPnP Serverのこの機能を使用しないよう明示的に限定できる。
  6. 下方の「TEST」ボタンをクリックし、接続テストを行う。ここでエラーになる場合はBubble UPnP Server のStatus画面状態などを確認する。
  7. エラーが発生しなかった場合は、NEXTボタンをタップし接続先設定を完了する。
  8. 再度Settingsメニュー内「Network and settings」へ移動する。
  9. 「SD Card music caching」内の「Active on connection」をタップし、Mobileを選択(DMSからダウンロードしたデータをローカルにキャッシュする機能をモバイル回線経由のみに限定する)。
  10. 「Add to Android Library」のチェックを外し、DMSからダウンロードしたデータがローカルにキャッシュされた際に、そのデータをAndroid側の音楽ライブラリーに登録する機能を無効にする。端末ローカルにはハイレゾファイルを置いて、それらだけをOS側に認識させたいんだよ!という人には余計なお世話機能であるw(外し忘れても後からチェックを外せばライブラリ登録も解除できる)。
    BUPP-004
  11. 「Music playback transcoding to local renderer」カテゴリ内のMobile Max Bitrateをタップし、モバイル回線時のビットレートを設定する。ウチは割り切って128kbpsを設定。
  12. 無線LANテザリングを使用して他端末経由でBubble UPnP Serverへ接続している場合は、その下のWiFi / Eth Max Bitrateも設定を行う。
  13. その下のLossless onlyチェックは音源ファイルのビットレートが上記二つのビットレート設定以上の場合で、チェックが入っていた場合はトランスコードせずにオリジナルファイルのまま伝送してくる機能(らしい)。ウチでは割り切っているため外している。
    BUPP-005BUPP-006

■アクセス・再生手順

  1. 無線LANを切る。もしくは無線LAN圏外へ移動し、モバイル回線接続にする。
  2. Bubble UPnPを起動し、LIBRARYへ移動する。
  3. 左上のDMS名の横に「[入力した設定名称]」が追加で表示される。
    BUPP-007

  4. いつも通りにライブラリ画面からキューへ曲を追加し、再生を始めれば端末の内蔵スピーカーもしくはヘッドフォンから音声出力となる。

    BUPP-008

    元データはFLAC/96kHzだが、端末に伝送されたデータはMP3/128kbps/44.1kHzとなっている。

  5. Settingメニューで「Local Renderer」を有効にしておかないと再生出来ない可能性があるので注意。
    BUPP-009

■メモ的な物(総合)

  • 使用感ですが、Xperia Z2(docomoキャリア端末)にMVNOであるmineoのdocomo回線SIMを入れてますが、LTE接続で使う分には全く問題ありません。次の曲が始まるまでのタイムラグも無いし、曲が始まってすぐにトラックを進めてもそんなにラグも無く次の曲が始まります。
    あと、2トラック先ぐらいまでは圏外になっていても再生出来るようです。
  • Serverへアクセスできない、接続エラーが発生する場合はダイアグラムとかを書いて、データの流れを整理しないとトラブルシューティングが上手くいかない可能性が高いです。
  • DynamicDNSやポート変換の辺りは一般的なネット関連の知識が必要となるので、ネットワークオーディオとはまた違った勉強をする必要があります。
  • ネット時代になったのになんで端末にデータ入れないといけないんだよ!という人以外は手を出さない方が良いかもしれないですw。
  • Androidベースのハイエンドポータブルプレイヤーにインストールして設定してもイイと思いますが、単体でLTEや3Gに接続できる端末の方が使い勝手が良いし、MP3になってと音がアレなのもわかっちゃうのであまりオススメできないですw。
  • 自宅の整備したライブラリーを外でも使いたいんだ、という人は頑張ってみると幸せになれると思います。
  • データ容量の低いパケット契約をしている際は設定に注意しましょう。

Android端末をDMCとして使うときの補助アプリ

ネットワークオーディオ(DLNA)のコントローラー(DMC)としてAndroid端末を愛用していますが、こういう事ができればなーという事を解決するためのアプリを紹介してみます。

■画面スリープを回避する

DMCとして使用しているときに画面スリープになってしまうと、当然ですが曲名やジャケ写が見えなくなってしまいます。そして、そのたびにロックを解除するのも面倒です(VPN設定をしているとパターンロック使用になっていたりして、さらに面倒に)。DMCによってはスリープに入らないように設定できるものもありますが、本体やOSバージョンによっては確実に回避出来ない場合もあります。

そこで、サードパーティアプリの「Wakey」の出番です。このアプリを起動し、電球マークをタッチすると画面スリープに入らなくなります(電球の下部でOS側のスリープ時間を上書きできるようですが、今回は使いません)。

2014-11-09 04.25.17

 

IMG_5247

有料版ではさらに機能が追加されますが、単純にスリープ回避だけなら無料版で十分です。スリープ無効にしている間は通知バーに電球アイコン、通知センターにその旨が表示され、通知センターからはスリープ無効をワンタッチで解除することが出来ます。

ウチの環境ではコレで画面スリープを無効化して、Xperiaの充電スタンドへ置いたりしています。

■画面向きを固定化する

DMCアプリによっては横画面レイアウトの方が良い場合があります。愛用しているBubble UPnPは横画面デザインがとても雰囲気が良く、Xperiaの充電スタンドともマッチして「これこそベストDMC」の様相となります。ですが、Android標準の画面の回転機能は、端末の持ち方によってはすぐに縦表示になってしまったりして、どうにも落ち着きません。

2014-10-19 00.37.23
(Xperia Z Ultra)

2014-09-14 11.40.18
(Xperia Z Ultra)

2014-10-24 12.12.50
(Xperia Z2)
<Bubble UPnPの横表示例>

そこで、画面向きをコントロールするアプリを使います。幾つかの無料アプリを使い最終的にたどり着いたのが「Ultimate Rotation Control」の有料版です。このアプリは縦固定、横固定はもちろんさまざまな回転コントロールを行うことが出来ます。そして、有料版では特定のアプリケーションを横表示で実行することが可能になります。

今回はBubble UPnPを特定アプリとして横表示登録し、起動中は必ず横表示になるように設定してみました。もちろん効果覿面で、縦持ちしたって横表示のままです。設定によって通知センターにショートカットを配置できるので、固定にしていると画面レイアウトがおかしくなってしまうアプリにもすぐ対応できます。

IMG_5245
<通知センターのショートカット>

単純なリモコンと違って、アプリを追加導入すれば不便な部分が改善できるのは、アプリ化されているDMCの良い点ですね。

foobar2000をDigital Media Controller(DMC)として使う

2月下旬にパイオニアのUSB-DAC兼ネットワークオーディオプレイヤーである「N-50」を購入しました(詳しくは別エントリーの予定)。

N-50をDMRとして使うにはDLNAクライアント(DMC)のアプリケーションが必要ですが、DMCアプリはiOS等では幾つもアプリケーションが出ているのでそちらを使えば良いのですが、PCの前にいるときは、なるべくそのPCで用事を済ませたい身としては、Windows上のアプリでこなしたいなぁと。

そこで、これまで使用頻度が低かった「foobar2000」を「メディアコントローラー(DMC)」として使うことにしました。
使用しているプラグインは「foo_upnp」です。

foobar2000: Components Repository – UPnP/DLNA Renderer, Server, Control Point
http://www.foobar2000.org/components/view/foo_upnp

インストールなどの手順は省略します(このエントリーを見つける人なら、それぐらいは大丈夫かなと)。インストール後、DMCと使う場合は設定箇所は殆ど無く、メニューからウィンドウを2つ呼び出すだけです。

まずは、「View」メニューから「UPnP Browser」を呼び出します。

 

fb2k-dmc-001

自動的にネットワーク上のDigitalMediaServer(DMS)をリストアップし、一覧にしてくれます。一覧から対象のサーバーをクリックしていくと、DMSからアルバムやフォルダといった他のDMCでもおなじみの表示がツリー状に展開されていきますので、あとは目的のアルバム、フォルダまで進みます。

 

fb2k-dmc-002

たどり着いた後は(今回はフォルダ表示)目的のアルバム・フォルダ上で右クリック→「Send to Current List」にて「UPnP Controller Playback Queue」へ曲リストを送信すると、DMRへ送信する曲リストに入ります。曲リストに入ったあとは、foo_upnpが用意している「UPnP Controller」ウィンドウで再生操作が可能です。

fb2k-dmc-003ウィンドウ上部プルダウンメニューからDMRを選択(今回はN-50と表示されている)

ハマりやすいのはfoobar2000の通常のライブラリ登録から選んで、「UPnP Controller Playback Queue」タブへ登録しても再生できないことです。必ず、DMS上にあるファイルを「UPnP Controller Playback Queue」タブへ登録しないといけません。

なお、この手順では曲データはDMSからDMRへ直接送信となり(正確にはDMRがDMSへ取りに行っているのですが)、DMCを行っているfoobar2000は経由しません。DMCはUPnp内部で処理されているURLをDMRに渡すだけで、データを直接流したりはしないようです。その証拠に、DMCアプリを動かしているPCのネットワーク送受信状況を見ていると、DMRやDMSとはほぼ通信をしていない状態になっています。

DMCとして使っているfoobar2000上で「UPnP Controller Playback Queue」に登録した曲をクリックし、Propertiesを見るとわかりますが、DMRへの指示もHTTPベースで行われていて、UPnP自体はWebの技術をベースに拡張された物だとわかります。

fb2k-dmc-004
「File Path」部分のグレー塗りつぶし下にはDMSを行っているPCのIPアドレスが表示

次はfoobar2000でMedia Serverを動かす事について書いてみます。