- 車・自動車SNSみんカラ
- まとめ
- その他
- ネットワークオーディオを楽しもう
- ネットワークオーディオ自作(8) ラズパイサーバーを改良する
まとめ記事(コンテンツ)
なかるうさん
2020/09/09
ネットワークオーディオ自作(8) ラズパイサーバーを改良する
最近ちょっとしたトレンドになった
「PSPのバッテリー、膨らんでませんか?」
の件。リチウムイオン電池にはつきもののこの現象、気持ちのいいものではないですよね。冷静に見れば
「寿命が誰でも見てわかる、優れた設計」
とも言えるのかもしれませんが、知らない間に進行するのは怖い。
これはゲーム機の問題というよりは、リチウムイオン電池が一時期に集中して販売された製品がたまたまPSPだった、ということでしょう。
老朽化した電池が問題を起こす時期に入ってきたとすれば要注意。携帯電話、モバイルバッテリー、デジカメ・・・皆さんも「不発弾」かかえてませんか?
使ってないリチウムイオン電池など、持っていて良いことなんてありません。さっさと処分おススメ。そういえばごみ回収車や処分場の火災事例もあります。燃えないゴミに出しちゃダメですよ。
こんな便利な(エネルギー密度の高い)ものは簡単に代えが効かないことはわかります。でも、中身はもちろん膨張を引き起こすガスも可燃性ですし、「電池」と、従来のそれと同じ呼び方をするには危険度のレベルが違う印象があります。
肌身離さず使用し数年で買い替える(=点検と回収のサイクルが確立している)スマホあたりはまだいいとして、カメラやDAPにまで採用するのはどうなんだろう。想定外が簡単に起きちゃうのが家電製品なわけで、そこまで普及させてよい技術と言えるのだろうか?と、そんな気がするのです。大変失礼ですがノーベル賞なんてもらっちゃって良かったの?
「押入れの奥に眠っていたお爺さんのカメラを復活!」なんてノスタルジーは今後はもう無理、逆に「爺ちゃんがこんなもの仕舞い込んでいたせいで・・・」と白い目で見られる時が来るとしたら悲しいことです。
導入部の話題にしては風呂敷を広げ過ぎました。何が言いたいかというと。
大電力を贅沢に使って高性能を追求するのも結構、でもメーカーなら保証期間過ぎたらどうなっても知らない、はねーだろと文句を一つ。
あと、乾電池で動く機械は10年後でも20年後でも使えるから好き!なので、低消費電力化の努力も続けてほしいなと、こちらはささやかな願いです。
さておきそんなわけで、自分ちの電池を総点検したところ、UPnP(DLNA)サーバーとして導入したラズベリーパイのUPS(無停電電源)のバッテリーがこんな事になっていました。

これでも通電中より時間が経ってしぼんでいます。発見時はもっと「映える」絵面でしたよ。
リチウムイオン電池はそういうもの。1年で膨らんでしまうのは早い気もしますが、UPSの特性上常に満充電状態、しかもラズパイに温められて使われているので、電池にとって厳しい条件であることは確かです。クルマから降りるときはラズパイも持ち出すよう気を遣ってはいたのですけど・・・
面倒くさいコマンドを打ち込む必要もなく、エンジンを切ればラズパイを自動でシャットダウンしてくれるUPSは超便利で、自分には欠かせないアイテムとなっています。1年後同じことになるなら次からは半年でバッテリー交換するか?ちょっと面倒になってきたぞ・・・
いや違うな。パンパンに膨らんだ電池を見てしまった恐怖から、「脱リチウムイオン電池」活動をしたくなったというのが正直なところ。
ラズパイで使えるメンテナンスフリーなUPSを探してみました。

Juice4halt J4H-HV-TRM (Nelectra)
4をforと読んで「ジュース・フォー・ホルト」といいます。電池の代わりにコンデンサ(スーパーキャパシタ)を使ったUPSです。キャパシタの取り付けがなんともDIYな感じ。
スロヴァキアのNelectra社が数年前にクラウドファンディングしていたもので、当時は残念ながら目標額に到達しなかったものの、くじけず販売にこぎ着けてくれたので入手してみました。
販売されているのは上のボードのみで、ラズパイやケースなどは別に用意します。
キャパシタによるバックアップ時間は長くても1分ほど。電源が落ちても動作させ続けることが目的の通常のUPSと異なり、電源が落ちたら安全に停止させることに特化した製品です。電池を使わないので発火・爆発の危険性が低く、広い使用温度範囲は車載にも適していると思います。
説明動画です。
電源を投入するとキャパシタに初期充電してからラズパイを起動、電源が落ちると自動でシャットダウンしてくれます。
この初期充電の時間は、車載時にはイグニッション時の瞬断対策として機能してくれるので具合が良いのです。
購入
製品は3モデルあり、いずれもNelectra社のWebサイトで購入できます。
・通常のラズパイと同じ5V電源を使用する「J4H-5V-USB」(動画はこれ)
・電源として7-28Vを入力可能な「J4H-HV-TRM」
・さらにRTCとRS-485通信を追加した「J4H-HV-TRM-RTC-485」
1号機の経験から、今回は2番目のHVモデルを調達。注文後PayPalで請求が届き、支払って3週間ほどで商品が到着しました。(連絡がなくちょっと不安になりましたが、問い合わせたら追跡番号を教えてくれました・・・)
電源は付属しないため別途必要です。自宅用に12VのACアダプター(前回までに購入したPCの付属品を流用)、車載用にはシガーソケットに接続するDCケーブルを用意しました。
(2020/10追記)後日測定したところ、12V入力での電流は初期充電時の0.8A程度が最高のようです。ラズパイ3は5V電源をUSBのmicroBコネクタに供給する形式ですが、microBでの規格上限に近い電流となるためUSBチャージャーで給電すると電源やケーブルにシビアだったりします。12V/1.5~2A程度のACアダプターなら容易に入手でき、車載時もアクセサリー電源を直接接続できるので非常に使いやすいです。
組立
UPSの取り付け自体は動画の通りラズパイに載せるだけで簡単です。
ケースには少しこだわってみました。
使ったことのある方はご存じと思いますが、ラズパイは放熱に無頓着だと簡単に性能低下(クロックダウン)を起こします。「ラズパイオーディオ」で画像検索すると基板むき出しの写真が多い理由には、DACなどを載せた時にうまく収められるケースが少ないことに加え熱の問題もあります。
以前のUPS PIcoを使ったサーバーもksyの公式プラケースに入れて(チップにヒートシンクは付けていましたが)密閉状態で使っていたところ、真夏の車内では動作が怪しくなることがあり、今回は放熱に有利なアルミケースを使います。熱だけ気にするならケース無しでファンでも付けた方が良いのですけど、見栄えも良くしたいので。

CASE 01 (AVIOT)
オーディオ用で作りの良いケースです。ラズパイ本体より高価なちょっとした高級品。これ、画像で見える部分はトップの木を除き全部アルミの切削なんです。贅沢ですねぇ。
対応するラズパイのモデルは3Bで最新ではないものの、性能的にはMinimServerを動作させるに十分で、3B+や4より発熱が少ないのでかえって好都合。
DACを載せるスペースがありUPSも入りそうなこと、
アルミケースであること、
そしてこれも使えるかなと。

ノイズ対策用に、ラズパイの基板とHATの間に取り付けるシールド板が付属します。今回DACを使うわけではなくシールドに意味があるかは不明ですが、分厚い銅板を放熱に利用している事例を見つけたのでアイデア拝借。

クールスタッフ チューブタイプ(沖電線)
銅箔を絶縁膜で挟んだシート状の伝熱・放熱用部材です。発熱するICチップに貼り付けるだけでも放熱効果があり、さらに丸めてケースなどとの間に挟み込むことで熱を逃がすこともできます。
沖電線Webサイトのデータでは、ヒートシンク並みの性能があるようです。

秋月で購入したクールスタッフの寸法は30x100mm。ざっと必要量を計算したところ1枚で足りそうです。

ラズパイで特に発熱するICは、3Bの場合はCPU、LAN、メモリーの3つ。はさみでカットし、こんな感じに付属の両面テープで貼り付けました。銅板と接触する側には別に購入した熱伝導シートを載せています。裏面のメモリーチップも同様に処理し、こちらはケースの底面に接触させます。
クールスタッフの表面は絶縁されていますが、カットした端面は銅箔が露出するので周辺の部品と接触しないよう注意が必要です。

シールド板とUPSの基板裏の部品が干渉するので、市販のスタッキングヘッダー(高さ8.5mm)を使ってかさ上げしました。スペーサーはM2.5x11mm。それでもまだ引っ掛かるキャパシタは、足をちょっと曲げてエッジプロテクタで養生しました。(これ以上かさ上げするとケースに入らない)

ケースに収め、電源をUPS上の端子に接続します。自分は5.5mm x 2.1mmのDCジャックにしてみました。コードを引き出す部分のパネルが取り外せ、アルミ板なのでやすり等で簡単に加工できます。
ハードウェアはこれで完成。なかなかいい感じに仕上がりました。
ソフトウェアのインストールに移ります。
MinimServer2について
前回セットアップした時から1年経ち、OSもアプリも変化していますので、最新版として書き直します。
MinimServerはJavaベースのUPnP(DLNA)サーバーで、flacはもちろんDSDにも対応しています。タグやアルバムアートの処理が確実で、ナビゲーションツリー(「アルバム」とか「アーティスト」とか切り口を変えて一覧表示する、あれです。)の見せ方も実用的なもの。普通にありそうで実は数少ない「ちゃんとした」音楽サーバーアプリと言ってよいと思います。
WindowsやMacの他Linux版もありQNAPなどのNASやラズパイでも動作可能という、動作環境の幅広さも魅力です。
そのMinimServerが今回(Linux版は今月)バージョンアップしてMinimServer2となりました。機種別のインストール方法はこちら。
新バージョンは機能限定の無償版(Starter Edition)と年間ライセンス制のフル機能版の2本立てで、通常の配信機能は無償版でカバーできます。
MinimStreamerによるトランスコード配信を行うためにはフル機能版が必要です。初年度のライセンス料は$39(3台まで利用可能)で、次年度からはディスカウントされるようです。この機能については最後に解説します。
ドネーションウェア(寄付歓迎)の旧バージョンも今のところダウンロード・利用可能ですが、今後アップデートは提供されずMinimStreamerもいずれ使用不可となるそうなので、あえて今から旧バージョンを入れる必要はないでしょう。
(2020/10追記)公式サイトから旧バージョンのダウンロードが消えました。旧MinimStreamerの利用期限は2021/1までとのことです。
(2021/2追記)旧MinimStreamerの利用期限が2021/3に延長されました。
(2021/4追記)旧MinimStreamerが利用期限を迎えました。今後MinimStreamerの機能を使うにはMinimServer2のライセンスが必要です。
準備作業1(PC側)
・楽曲ファイルの保存にはUSBストレージを使います。

ポータブルSSD 480GB SSD-PL480U3-BK/N (バッファロー)
exFAT形式でフォーマットし(後で使うのでディスクラベルを控える)、楽曲ファイルを入れておきます。自分は
¥Music¥フォーマット¥アーティスト¥アルバム¥曲
としていますが、MinimServerはタグによるデータベース管理が基本なのでフォルダ構造は何でも構いません。MinimServerに限らず、ネットワークオーディオを楽しむならタグをきちんと入力することに全力を注ぎましょう。
参考:flacニヨル楽曲管理ノススメ

楽曲ファイルの他、次のファイルもダウンロードして入れておきます。
MinimServer2(Linux ARM hard float版)
juice4haltの自動シャットダウン用スクリプト(7zは解凍しておく)
・MinimServerの状態監視と設定はPCから行えます。
PCにJavaおよびMinimWatch2をインストールしておきます。
OSのインストール
現在のラズパイ公式OSはRaspberry Pi OSです。前回インストール時のRaspbian StretchからRaspbian Busterをはさみ2代後となります。
OSイメージ作成には、専用アプリのRaspberry Pi Imagerが公式サイトで提供されているので利用してみます。

Raspberry Pi OS (other)からデスクトップレスのLiteバージョンを選択し、microSDカードを作成します。

準備作業2(ラズパイ側)
・最初だけラズパイをローカルで設定します。

USBポートにキーボードを接続。
テレビとHDMIケーブルで接続。
家のルーターとLANケーブルで接続。(ネット接続が必要です)
SSDもつないでおきます。
・OSを書き込んだmicroSDカードをセット、電源を投入し、テレビとキーボードでログインします(pi/raspberry)。
・ラズパイに割り当てられたIPアドレスを調べます。
※現在のOSでは起動時の画面にIPアドレスが表示されますね。
$ ifconfig
同一ネットワークにスマホがあれば、アプリのFingでも調べられます。
・設定ツールでブートパーティションをリサイズ、SSHを有効化。
$ sudo raspi-config

「Advanced Options」から「Expand Filesystem」
※リサイズは現在のOSでは自動で行われるようなので蛇足かも。
「Interfacing Options」から「SSH」→「Yes」
終了→リブートすると、以降の作業はPCから可能になります。
モニターやキーボードはここで外してしまっても大丈夫。
USBディスクを使えるようにする
・SSHでログイン
PCでターミナルアプリのPuTTYを起動。

調べたIPアドレスに接続しログイン。

「デスクトップレス」のOSですから、ここが全世界です。以降、コマンドとテキストエディタを駆使して設定してゆきます。
【2020/9追記】「自分もやってみよう」という方は、画面に表示されている通り最低でもパスワードを変更してください。原理的にNATで守られるIPv4と異なり、IPv6が通る環境では外部から直接SSHポートに侵入されるリスクがあります。
特にフレッツのIPoE契約でレンタルルーターをセキュリティレベル「標準」に設定している場合、フレッツIPv6網からのアクセスは拒否しない仕様(!)となっています。そこにデフォルトのユーザー名・パスワードでSSHポートを開くのは・・・
いったんSSHからラズパイに入られてしまえば、それを踏み台にしてPCのHDDやWebカメラを狙う位のことは可能ですし、実際企業では勝手に社内ネットワークにつながれたラズパイがセキュリティホールになった事例があります。
対策としては他にユーザー名やポート番号変更、証明書発行などが可能で、作業後はSSHを無効にしてしまえばより安心です。
・exFATファイルシステムをインストール。
$ sudo apt-get install exfat-fuse exfat-utils
・接続したUSBディスクのIDを調べます。
$ sudo blkid
表示されたリストからフォーマット時につけたラベルのある行を探します。「UUID」が必要な情報です。接続するUSBディスクにより変わるので、このIDを控えておきます。
/dev/sda1: LABEL="SSD-PLU3" UUID="C2C4-9374" TYPE="exfat" ...
・起動時にUSBディスクを自動マウントするように設定します。マウント名は任意。
$ sudo mkdir /mnt/usbhdd1
$ cd /etc
$ sudo cp fstab fstab.bak
$ sudo nano fstab
fstabファイルに設定を追加します。
UUID="C2C4-9374" /mnt/usbhdd1 exfat-fuse sync,auto,dev,exec,gid=65534,rw,uid=65534,noatime 0 0
保存してエディタを終了。
・リブートしてUSBディスクにアクセスできることを確認します。
$ sudo reboot
(起動待ち→ログイン後)
$ ls /mnt/usbhdd1
ファイルが表示されればOK。
(2020/9追記)
fstabでマウントする場合、書式を間違えたりUSBを接続し忘れるとOSがエマージェンシーモードに入ってしまい起動できません。またUSBディスクを再フォーマットするとUUIDが変わることがあります。立ち上がらない場合はHDMIの画面で確認します。autofsを使って自動マウントさせる方法でも良いかも。
シャットダウン用スクリプトのインストール
UPSで自動シャットダウンさせるためのスクリプトをセットアップします。こちらの通りに設定します。
/home/piディレクトリ以下に、juice4halt/binディレクトリを作成し、スクリプトをコピーします。
$ cd /home/pi
$ sudo mkdir juice4halt
$ cd juice4halt
$ sudo mkdir bin
$ sudo cp /mnt/usbhdd1/shutdown_script /home/pi/juice4halt/bin
$ sudo cp /mnt/usbhdd1/rebootj4h /home/pi/juice4halt/bin
$ sudo nano /etc/rc.local
rc.localファイルの最後、exit 0の手前に以下の1行を追加し、保存終了します。
/home/pi/juice4halt/bin/shutdown_script &
スクリプトに実行権限を設定して完了。
$ cd /home/pi/juice4halt/bin
$ sudo chmod 755 shutdown_script
$ sudo chmod 755 rebootj4h
もう一つのスクリプト、rebootj4hは標準のrebootコマンドの代わりに使用します。rebootコマンドで再起動した場合、その後の自動シャットダウンは無効となります。
$ sudo shutdown -h now
ここでいったんシャットダウン、電源を切断・再投入し、動画のように機能することを確認しておきます。SSHではシャットダウンのプロセスを最後まで見ることができないためHDMIで確認します。
MinimServer2のインストール
UPnP(DLNA)サーバーのMinimServer2をインストールします。ラズパイ用のインストールガイドに従います。
引き続きSSHコンソールから
・javaをインストール(以前のRaspbian Stretchと変わっているので注意)
$ sudo apt install default-jdk
・SSDに入れておいたMinimServerのインストールパッケージを/home/piディレクトリに展開します。
$ sudo cp /mnt/usbhdd1/MinimServer-2.0.15-linux-armhf.tar.gz /home/pi
$ cd /home/pi
$ tar xf MinimServer-2.0.15-linux-armhf.tar.gz
(2020/9修正)tarはsudoで実行しない。
・MinimServerのセットアップ
$ minimserver/bin/setup
デスクトップ統合→無効
自動スタートアップ→有効
※setupをsudoで実行すると自動スタートアップに失敗する。
・MinimServer起動
$ minimserver/bin/startc
初回にライブラリの場所を聞かれるので入力する
(ここでは /mnt/usbhdd1/Music)

ライブラリのスキャンが始まり、しばらく経って「MinimServer is running」と表示されれば起動完了。

PCに同じ内容が通知され、MinimWatchのアイコンが緑色になります。
・自動起動に設定
このままだとターミナルを終了するとMinimServerも終了してしまうので、
以下の手順で自動起動に設定する。
>exit (MinimServerをいったん終了する)
$ minimserver/bin/startd
起動後、リブートしてPCのタスクトレイにあるMinimWatchのアイコンが再度緑色になれば成功です。
$ sudo reboot
この時点でflacなどは再生可能になっています。
ローカルレンダリングに対応した(=コントローラ兼レンダラーとなれる)スマホアプリのBubbleUpnpやHi-Fi Castを使って動作確認します。

MinimStreamerのインストール
MinimServerの特徴として、アドオンパッケージのMinimStreamerをインストールすることにより楽曲のコーデックをトランスコード(変換)して配信可能です。
通常ネットワークオーディオではflacやaacなどのデコードはレンダラーで行いますが、サーバー側でwavに変換して配信する使い方となります。メリットはレンダラーが対応しないフォーマットを再生できる他、音質面にもあるようです。
「flacとwavじゃデータは同じなんだから音が変わるはずないじゃん。」
と思うのが普通でしょうね。まぁ、興味ある方は体験してみてください。
DSDのDoP配信(DoPE)にも使用します。ただしlightMPDなどDoP出力が可能なレンダラーを使う場合サーバーからのDoP配信は不要です。
ということで、最初はMinimStreamer無しの無償版で使ってみて、トランスコード機能を試したくなったら30日間の試用ライセンス(無償)、必要となったらフル機能版のライセンスを購入すれば良いでしょう。ライセンスの移行は設定画面ででき、再インストールの必要はありません。
・ffmpegのインストール
コーデック群のffmpegを使えるようにしておきます。
再度SSHでログイン。
$ dpkg-query -W ffmpeg
dpkg-query: no packages found matching ffmpeg
↑入っていなかったのでインストールしました。
$ sudo apt-get update
「PSPのバッテリー、膨らんでませんか?」
の件。リチウムイオン電池にはつきもののこの現象、気持ちのいいものではないですよね。冷静に見れば
「寿命が誰でも見てわかる、優れた設計」
とも言えるのかもしれませんが、知らない間に進行するのは怖い。
これはゲーム機の問題というよりは、リチウムイオン電池が一時期に集中して販売された製品がたまたまPSPだった、ということでしょう。
老朽化した電池が問題を起こす時期に入ってきたとすれば要注意。携帯電話、モバイルバッテリー、デジカメ・・・皆さんも「不発弾」かかえてませんか?
使ってないリチウムイオン電池など、持っていて良いことなんてありません。さっさと処分おススメ。そういえばごみ回収車や処分場の火災事例もあります。燃えないゴミに出しちゃダメですよ。
こんな便利な(エネルギー密度の高い)ものは簡単に代えが効かないことはわかります。でも、中身はもちろん膨張を引き起こすガスも可燃性ですし、「電池」と、従来のそれと同じ呼び方をするには危険度のレベルが違う印象があります。
肌身離さず使用し数年で買い替える(=点検と回収のサイクルが確立している)スマホあたりはまだいいとして、カメラやDAPにまで採用するのはどうなんだろう。想定外が簡単に起きちゃうのが家電製品なわけで、そこまで普及させてよい技術と言えるのだろうか?と、そんな気がするのです。大変失礼ですがノーベル賞なんてもらっちゃって良かったの?
「押入れの奥に眠っていたお爺さんのカメラを復活!」なんてノスタルジーは今後はもう無理、逆に「爺ちゃんがこんなもの仕舞い込んでいたせいで・・・」と白い目で見られる時が来るとしたら悲しいことです。
導入部の話題にしては風呂敷を広げ過ぎました。何が言いたいかというと。
大電力を贅沢に使って高性能を追求するのも結構、でもメーカーなら保証期間過ぎたらどうなっても知らない、はねーだろと文句を一つ。
あと、乾電池で動く機械は10年後でも20年後でも使えるから好き!なので、低消費電力化の努力も続けてほしいなと、こちらはささやかな願いです。
さておきそんなわけで、自分ちの電池を総点検したところ、UPnP(DLNA)サーバーとして導入したラズベリーパイのUPS(無停電電源)のバッテリーがこんな事になっていました。

これでも通電中より時間が経ってしぼんでいます。発見時はもっと「映える」絵面でしたよ。
リチウムイオン電池はそういうもの。1年で膨らんでしまうのは早い気もしますが、UPSの特性上常に満充電状態、しかもラズパイに温められて使われているので、電池にとって厳しい条件であることは確かです。クルマから降りるときはラズパイも持ち出すよう気を遣ってはいたのですけど・・・
面倒くさいコマンドを打ち込む必要もなく、エンジンを切ればラズパイを自動でシャットダウンしてくれるUPSは超便利で、自分には欠かせないアイテムとなっています。1年後同じことになるなら次からは半年でバッテリー交換するか?ちょっと面倒になってきたぞ・・・
いや違うな。パンパンに膨らんだ電池を見てしまった恐怖から、「脱リチウムイオン電池」活動をしたくなったというのが正直なところ。
ラズパイで使えるメンテナンスフリーなUPSを探してみました。

Juice4halt J4H-HV-TRM (Nelectra)
4をforと読んで「ジュース・フォー・ホルト」といいます。電池の代わりにコンデンサ(スーパーキャパシタ)を使ったUPSです。キャパシタの取り付けがなんともDIYな感じ。
スロヴァキアのNelectra社が数年前にクラウドファンディングしていたもので、当時は残念ながら目標額に到達しなかったものの、くじけず販売にこぎ着けてくれたので入手してみました。
販売されているのは上のボードのみで、ラズパイやケースなどは別に用意します。
キャパシタによるバックアップ時間は長くても1分ほど。電源が落ちても動作させ続けることが目的の通常のUPSと異なり、電源が落ちたら安全に停止させることに特化した製品です。電池を使わないので発火・爆発の危険性が低く、広い使用温度範囲は車載にも適していると思います。
説明動画です。
電源を投入するとキャパシタに初期充電してからラズパイを起動、電源が落ちると自動でシャットダウンしてくれます。
この初期充電の時間は、車載時にはイグニッション時の瞬断対策として機能してくれるので具合が良いのです。
購入
製品は3モデルあり、いずれもNelectra社のWebサイトで購入できます。
・通常のラズパイと同じ5V電源を使用する「J4H-5V-USB」(動画はこれ)
・電源として7-28Vを入力可能な「J4H-HV-TRM」
・さらにRTCとRS-485通信を追加した「J4H-HV-TRM-RTC-485」
1号機の経験から、今回は2番目のHVモデルを調達。注文後PayPalで請求が届き、支払って3週間ほどで商品が到着しました。(連絡がなくちょっと不安になりましたが、問い合わせたら追跡番号を教えてくれました・・・)
電源は付属しないため別途必要です。自宅用に12VのACアダプター(前回までに購入したPCの付属品を流用)、車載用にはシガーソケットに接続するDCケーブルを用意しました。
(2020/10追記)後日測定したところ、12V入力での電流は初期充電時の0.8A程度が最高のようです。ラズパイ3は5V電源をUSBのmicroBコネクタに供給する形式ですが、microBでの規格上限に近い電流となるためUSBチャージャーで給電すると電源やケーブルにシビアだったりします。12V/1.5~2A程度のACアダプターなら容易に入手でき、車載時もアクセサリー電源を直接接続できるので非常に使いやすいです。
組立
UPSの取り付け自体は動画の通りラズパイに載せるだけで簡単です。
ケースには少しこだわってみました。
使ったことのある方はご存じと思いますが、ラズパイは放熱に無頓着だと簡単に性能低下(クロックダウン)を起こします。「ラズパイオーディオ」で画像検索すると基板むき出しの写真が多い理由には、DACなどを載せた時にうまく収められるケースが少ないことに加え熱の問題もあります。
以前のUPS PIcoを使ったサーバーもksyの公式プラケースに入れて(チップにヒートシンクは付けていましたが)密閉状態で使っていたところ、真夏の車内では動作が怪しくなることがあり、今回は放熱に有利なアルミケースを使います。熱だけ気にするならケース無しでファンでも付けた方が良いのですけど、見栄えも良くしたいので。

CASE 01 (AVIOT)
オーディオ用で作りの良いケースです。ラズパイ本体より高価なちょっとした高級品。これ、画像で見える部分はトップの木を除き全部アルミの切削なんです。贅沢ですねぇ。
対応するラズパイのモデルは3Bで最新ではないものの、性能的にはMinimServerを動作させるに十分で、3B+や4より発熱が少ないのでかえって好都合。
DACを載せるスペースがありUPSも入りそうなこと、
アルミケースであること、
そしてこれも使えるかなと。

ノイズ対策用に、ラズパイの基板とHATの間に取り付けるシールド板が付属します。今回DACを使うわけではなくシールドに意味があるかは不明ですが、分厚い銅板を放熱に利用している事例を見つけたのでアイデア拝借。

クールスタッフ チューブタイプ(沖電線)
銅箔を絶縁膜で挟んだシート状の伝熱・放熱用部材です。発熱するICチップに貼り付けるだけでも放熱効果があり、さらに丸めてケースなどとの間に挟み込むことで熱を逃がすこともできます。
沖電線Webサイトのデータでは、ヒートシンク並みの性能があるようです。

秋月で購入したクールスタッフの寸法は30x100mm。ざっと必要量を計算したところ1枚で足りそうです。

ラズパイで特に発熱するICは、3Bの場合はCPU、LAN、メモリーの3つ。はさみでカットし、こんな感じに付属の両面テープで貼り付けました。銅板と接触する側には別に購入した熱伝導シートを載せています。裏面のメモリーチップも同様に処理し、こちらはケースの底面に接触させます。
クールスタッフの表面は絶縁されていますが、カットした端面は銅箔が露出するので周辺の部品と接触しないよう注意が必要です。

シールド板とUPSの基板裏の部品が干渉するので、市販のスタッキングヘッダー(高さ8.5mm)を使ってかさ上げしました。スペーサーはM2.5x11mm。それでもまだ引っ掛かるキャパシタは、足をちょっと曲げてエッジプロテクタで養生しました。(これ以上かさ上げするとケースに入らない)

ケースに収め、電源をUPS上の端子に接続します。自分は5.5mm x 2.1mmのDCジャックにしてみました。コードを引き出す部分のパネルが取り外せ、アルミ板なのでやすり等で簡単に加工できます。
ハードウェアはこれで完成。なかなかいい感じに仕上がりました。
ソフトウェアのインストールに移ります。
MinimServer2について
前回セットアップした時から1年経ち、OSもアプリも変化していますので、最新版として書き直します。
MinimServerはJavaベースのUPnP(DLNA)サーバーで、flacはもちろんDSDにも対応しています。タグやアルバムアートの処理が確実で、ナビゲーションツリー(「アルバム」とか「アーティスト」とか切り口を変えて一覧表示する、あれです。)の見せ方も実用的なもの。普通にありそうで実は数少ない「ちゃんとした」音楽サーバーアプリと言ってよいと思います。
WindowsやMacの他Linux版もありQNAPなどのNASやラズパイでも動作可能という、動作環境の幅広さも魅力です。
そのMinimServerが今回(Linux版は今月)バージョンアップしてMinimServer2となりました。機種別のインストール方法はこちら。
新バージョンは機能限定の無償版(Starter Edition)と年間ライセンス制のフル機能版の2本立てで、通常の配信機能は無償版でカバーできます。
MinimStreamerによるトランスコード配信を行うためにはフル機能版が必要です。初年度のライセンス料は$39(3台まで利用可能)で、次年度からはディスカウントされるようです。この機能については最後に解説します。
(2020/10追記)公式サイトから旧バージョンのダウンロードが消えました。旧MinimStreamerの利用期限は2021/1までとのことです。
(2021/2追記)旧MinimStreamerの利用期限が2021/3に延長されました。
(2021/4追記)旧MinimStreamerが利用期限を迎えました。今後MinimStreamerの機能を使うにはMinimServer2のライセンスが必要です。
準備作業1(PC側)
・楽曲ファイルの保存にはUSBストレージを使います。

ポータブルSSD 480GB SSD-PL480U3-BK/N (バッファロー)
exFAT形式でフォーマットし(後で使うのでディスクラベルを控える)、楽曲ファイルを入れておきます。自分は
¥Music¥フォーマット¥アーティスト¥アルバム¥曲
としていますが、MinimServerはタグによるデータベース管理が基本なのでフォルダ構造は何でも構いません。MinimServerに限らず、ネットワークオーディオを楽しむならタグをきちんと入力することに全力を注ぎましょう。
参考:flacニヨル楽曲管理ノススメ

楽曲ファイルの他、次のファイルもダウンロードして入れておきます。
MinimServer2(Linux ARM hard float版)
juice4haltの自動シャットダウン用スクリプト(7zは解凍しておく)
・MinimServerの状態監視と設定はPCから行えます。
PCにJavaおよびMinimWatch2をインストールしておきます。
OSのインストール
現在のラズパイ公式OSはRaspberry Pi OSです。前回インストール時のRaspbian StretchからRaspbian Busterをはさみ2代後となります。
OSイメージ作成には、専用アプリのRaspberry Pi Imagerが公式サイトで提供されているので利用してみます。

Raspberry Pi OS (other)からデスクトップレスのLiteバージョンを選択し、microSDカードを作成します。

準備作業2(ラズパイ側)
・最初だけラズパイをローカルで設定します。

USBポートにキーボードを接続。
テレビとHDMIケーブルで接続。
家のルーターとLANケーブルで接続。(ネット接続が必要です)
SSDもつないでおきます。
・OSを書き込んだmicroSDカードをセット、電源を投入し、テレビとキーボードでログインします(pi/raspberry)。
・ラズパイに割り当てられたIPアドレスを調べます。
※現在のOSでは起動時の画面にIPアドレスが表示されますね。
$ ifconfig
同一ネットワークにスマホがあれば、アプリのFingでも調べられます。
・設定ツールでブートパーティションをリサイズ、SSHを有効化。
$ sudo raspi-config

「Advanced Options」から「Expand Filesystem」
※リサイズは現在のOSでは自動で行われるようなので蛇足かも。
「Interfacing Options」から「SSH」→「Yes」
終了→リブートすると、以降の作業はPCから可能になります。
モニターやキーボードはここで外してしまっても大丈夫。
USBディスクを使えるようにする
・SSHでログイン
PCでターミナルアプリのPuTTYを起動。

調べたIPアドレスに接続しログイン。

「デスクトップレス」のOSですから、ここが全世界です。以降、コマンドとテキストエディタを駆使して設定してゆきます。
【2020/9追記】「自分もやってみよう」という方は、画面に表示されている通り最低でもパスワードを変更してください。原理的にNATで守られるIPv4と異なり、IPv6が通る環境では外部から直接SSHポートに侵入されるリスクがあります。
特にフレッツのIPoE契約でレンタルルーターをセキュリティレベル「標準」に設定している場合、フレッツIPv6網からのアクセスは拒否しない仕様(!)となっています。そこにデフォルトのユーザー名・パスワードでSSHポートを開くのは・・・
いったんSSHからラズパイに入られてしまえば、それを踏み台にしてPCのHDDやWebカメラを狙う位のことは可能ですし、実際企業では勝手に社内ネットワークにつながれたラズパイがセキュリティホールになった事例があります。
対策としては他にユーザー名やポート番号変更、証明書発行などが可能で、作業後はSSHを無効にしてしまえばより安心です。
・exFATファイルシステムをインストール。
$ sudo apt-get install exfat-fuse exfat-utils
・接続したUSBディスクのIDを調べます。
$ sudo blkid
表示されたリストからフォーマット時につけたラベルのある行を探します。「UUID」が必要な情報です。接続するUSBディスクにより変わるので、このIDを控えておきます。
/dev/sda1: LABEL="SSD-PLU3" UUID="C2C4-9374" TYPE="exfat" ...
・起動時にUSBディスクを自動マウントするように設定します。マウント名は任意。
$ sudo mkdir /mnt/usbhdd1
$ cd /etc
$ sudo cp fstab fstab.bak
$ sudo nano fstab
fstabファイルに設定を追加します。
UUID="C2C4-9374" /mnt/usbhdd1 exfat-fuse sync,auto,dev,exec,gid=65534,rw,uid=65534,noatime 0 0
保存してエディタを終了。
・リブートしてUSBディスクにアクセスできることを確認します。
$ sudo reboot
(起動待ち→ログイン後)
$ ls /mnt/usbhdd1
ファイルが表示されればOK。
(2020/9追記)
fstabでマウントする場合、書式を間違えたりUSBを接続し忘れるとOSがエマージェンシーモードに入ってしまい起動できません。またUSBディスクを再フォーマットするとUUIDが変わることがあります。立ち上がらない場合はHDMIの画面で確認します。autofsを使って自動マウントさせる方法でも良いかも。
シャットダウン用スクリプトのインストール
UPSで自動シャットダウンさせるためのスクリプトをセットアップします。こちらの通りに設定します。
/home/piディレクトリ以下に、juice4halt/binディレクトリを作成し、スクリプトをコピーします。
$ cd /home/pi
$ sudo mkdir juice4halt
$ cd juice4halt
$ sudo mkdir bin
$ sudo cp /mnt/usbhdd1/shutdown_script /home/pi/juice4halt/bin
$ sudo cp /mnt/usbhdd1/rebootj4h /home/pi/juice4halt/bin
$ sudo nano /etc/rc.local
rc.localファイルの最後、exit 0の手前に以下の1行を追加し、保存終了します。
/home/pi/juice4halt/bin/shutdown_script &
スクリプトに実行権限を設定して完了。
$ cd /home/pi/juice4halt/bin
$ sudo chmod 755 shutdown_script
$ sudo chmod 755 rebootj4h
もう一つのスクリプト、rebootj4hは標準のrebootコマンドの代わりに使用します。rebootコマンドで再起動した場合、その後の自動シャットダウンは無効となります。
$ sudo shutdown -h now
ここでいったんシャットダウン、電源を切断・再投入し、動画のように機能することを確認しておきます。SSHではシャットダウンのプロセスを最後まで見ることができないためHDMIで確認します。
MinimServer2のインストール
UPnP(DLNA)サーバーのMinimServer2をインストールします。ラズパイ用のインストールガイドに従います。
引き続きSSHコンソールから
・javaをインストール(以前のRaspbian Stretchと変わっているので注意)
$ sudo apt install default-jdk
・SSDに入れておいたMinimServerのインストールパッケージを/home/piディレクトリに展開します。
$ sudo cp /mnt/usbhdd1/MinimServer-2.0.15-linux-armhf.tar.gz /home/pi
$ cd /home/pi
$ tar xf MinimServer-2.0.15-linux-armhf.tar.gz
(2020/9修正)tarはsudoで実行しない。
・MinimServerのセットアップ
$ minimserver/bin/setup
デスクトップ統合→無効
自動スタートアップ→有効
※setupをsudoで実行すると自動スタートアップに失敗する。
・MinimServer起動
$ minimserver/bin/startc
初回にライブラリの場所を聞かれるので入力する
(ここでは /mnt/usbhdd1/Music)

ライブラリのスキャンが始まり、しばらく経って「MinimServer is running」と表示されれば起動完了。

PCに同じ内容が通知され、MinimWatchのアイコンが緑色になります。
・自動起動に設定
このままだとターミナルを終了するとMinimServerも終了してしまうので、
以下の手順で自動起動に設定する。
>exit (MinimServerをいったん終了する)
$ minimserver/bin/startd
起動後、リブートしてPCのタスクトレイにあるMinimWatchのアイコンが再度緑色になれば成功です。
$ sudo reboot
この時点でflacなどは再生可能になっています。
ローカルレンダリングに対応した(=コントローラ兼レンダラーとなれる)スマホアプリのBubbleUpnpやHi-Fi Castを使って動作確認します。

MinimStreamerのインストール
MinimServerの特徴として、アドオンパッケージのMinimStreamerをインストールすることにより楽曲のコーデックをトランスコード(変換)して配信可能です。
通常ネットワークオーディオではflacやaacなどのデコードはレンダラーで行いますが、サーバー側でwavに変換して配信する使い方となります。メリットはレンダラーが対応しないフォーマットを再生できる他、音質面にもあるようです。
「flacとwavじゃデータは同じなんだから音が変わるはずないじゃん。」
と思うのが普通でしょうね。まぁ、興味ある方は体験してみてください。
DSDのDoP配信(DoPE)にも使用します。ただしlightMPDなどDoP出力が可能なレンダラーを使う場合サーバーからのDoP配信は不要です。
ということで、最初はMinimStreamer無しの無償版で使ってみて、トランスコード機能を試したくなったら30日間の試用ライセンス(無償)、必要となったらフル機能版のライセンスを購入すれば良いでしょう。ライセンスの移行は設定画面ででき、再インストールの必要はありません。
・ffmpegのインストール
コーデック群のffmpegを使えるようにしておきます。
再度SSHでログイン。
$ dpkg-query -W ffmpeg
dpkg-query: no packages found matching ffmpeg
↑入っていなかったのでインストールしました。
$ sudo apt-get update
$ sudo apt-get install ffmpeg
以前はラズパイ用のパッケージが無くソースコードからビルドする必要があったそうですが、今はapt-get一発で楽ちんです。ただし最初にupdateしておかないとエラーになりました。
・ライセンス認証

ライセンスの設定はPCから行えます。MinimWatchのアイコンを右クリック→Configureでブラウザが開きます。

ライセンス購入後メールで送られてくる認証コードを入力してアクティベートします。
・MinimStreamerのインストール

アドオンパッケージもPCからインストールします。MinimWatchのアイコンを右クリック→Propertiesで設定画面を開き、Packagesのタブにあります。

インストールが終わったらRelaunchで再起動。

設定画面のSystemタブ、stream.converter以下の項目が増えます。
ffmpegを自動検出したことが、stream.converterで確認できます。
使用するレンダラーに応じてstream.transcodeに設定を記述します。画像は、flacなどの非DSD音源を全てwavに変換して配信する設定です。一方DSD音源はdsf/dff形式のまま配信し、レンダラー側でネイティブ(マーカーレス)・DoP・PCM変換を選択できるようにしています。
書式の説明はユーザーガイドにあります。
(2020/10/9修正)後述するネットラジオ用に、mp3とaacの変換設定を変更。ネットラジオを使わない場合はwav24またはwavで良いと思います。
以上で完成です。今回は見た目もちょっとオーディオ機器らしい、手のひらサーバーができました。

前回製作した、超小型PC(LIVA Q2)によるlightMPDレンダラーとの組み合わせ。
ラズパイとPCをルーターに接続。PCにつながっているDAPはUSB-DACの代わりです。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリで再生します。
サーバー・レンダラーともにヘッドレス(モニター・キーボード不要)で運用でき、電源を入れたら勝手に立ち上がり、いつでも電源を落とせるので市販オーディオ機器と変わらない使い勝手です・・・いや起動時間があるので「変わらない」は盛り過ぎましたスンマセン。
スマホ用のコントロールアプリはこちらで紹介しています。
楽曲ファイルの入れ替えはシンプルに、サーバーの電源を落としSSDをPCに繋ぎ変えて行う仕様としています。ネットワークに不要なトラフィックを増やさない方が良いかなと思って、ファイル共有はあえて追加していません。
再スキャンは次回のサーバー起動時に自動で行われます。
ようやくサーバーとレンダラーの2020年版が揃ったので、涼しくなったら車載してみたいと思います。
(2020/9/13追記)
サーバーだけ一足先に車載し、ACCの12Vで無事動作確認できました。
ん?前より少し音質上がってる?なんで?サーバーだよ?
アプリ・OS・ケース・電源が変わったので、どれが原因かわからん・・・
(2020/9/20追記)
CPU温度のモニタリングソフト「s-tui」を使って冷却性能を検証してみました。
以前のサーバーで1時間ほど連続再生した後の状態です。気温はおよそ27℃。
(RPi3B, UPS PIco, ksyプラケース密閉, CPUヒートシンクあり, MinimServerトランスコードなし)

今回のサーバーではこうなりました。
(RPi3B, Juice4halt, case 01密閉, シールド版+クールスタッフ, MinimServerトランスコードあり)

10℃ほど下がっています。自然空冷の密閉ケースにしては上出来かと。
lightMPDのUPnPモードの場合キャッシュが機能し、楽曲にもよりますが16bit/44.1kHzの音源などは1曲まるごとキャッシング可能です。そのためサーバーの負荷は曲の切り替わり後数秒~数10秒間だけ高くなり、その後ほぼアイドル状態となります。画像のグラフでクロックが上がっているのが選曲のタイミングです。
以前のサーバーでは「高温時に動作が怪しく」と書きましたが、高レートのハイレゾ音源を次々スキップしている時などは高負荷状態が続くので、温度上昇によるスロットリング(クロック低下)が起きていたのかもしれません。
(2020/10/9追記)
MinimStreamerにはトランスコード以外にも便利な機能があるので紹介します。
楽曲ファイルのフォルダに、こんな感じの.m3u8ファイル(テキスト)を作成します。ファイル名・フォルダ名は任意です。

.m3u8ファイルの例です。文字コードはUTF8(BOM無し)、改行コードはLFです。
※通常プレイリストの拡張子はm3uですが、MinimServerではm3uの文字コードはANSI(ShiftJIS)で日本語が文字化けするので、m3u8として作成します。
#EXTM3U
#EXTINF:-1,[NHKR1TK] NHK R1 東京
http://nhkradioakr1-i.akamaihd.net/hls/live/511633/1-r1/1-r1-01.m3u8
#EXTINF:-1,[NHKR2TK] NHK R2 東京
http://nhkradioakr2-i.akamaihd.net/hls/live/511929/1-r2/1-r2-01.m3u8
#EXTINF:-1,[NHKFMTK] NHK FM 東京
http://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-01.m3u8
UPnPコントロールアプリからプレイリストを選択すると再生が始まります。
普通のネットラジオ用プレイリストと異なるのは#EXTINF行の [ ] で囲まれた部分で、これがあるとストリームがMinimStreamerにルーティングされます。MinimServerがネットラジオの代理サーバーとなるわけです。書式はこちら。
MinimStreamerはHLS(HTTP Live Streaming)やMPEG-DASH(Dynamic Adaptive Streaming over HTTP)といった比較的新しいストリーミングプロトコルにも対応しています。MinimStreamerがプロトコル変換を行ってくれるので、HLSやDASHに対応しないプレーヤー・レンダラーでも聴けるようになります。
さらに指定してあればトランスコードも同時に行われます。レンダラーとしてlightMPDを使う場合プロトコル変換やトランスコード無しでも再生可能ですが、数時間ほど連続してラジオを再生させるとコントロールアプリに応答しなくなることがありました。MinimStreamerを通してLPCMに変換させることにより、24時間でも安定動作するようになりました。
なお例として挙げたNHKネットラジオはURLが不定期に変わるので、上の例で受信できないときは最新のものを調べてください。
ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
以前はラズパイ用のパッケージが無くソースコードからビルドする必要があったそうですが、今はapt-get一発で楽ちんです。ただし最初にupdateしておかないとエラーになりました。
・ライセンス認証

ライセンスの設定はPCから行えます。MinimWatchのアイコンを右クリック→Configureでブラウザが開きます。

ライセンス購入後メールで送られてくる認証コードを入力してアクティベートします。
・MinimStreamerのインストール

アドオンパッケージもPCからインストールします。MinimWatchのアイコンを右クリック→Propertiesで設定画面を開き、Packagesのタブにあります。

インストールが終わったらRelaunchで再起動。

設定画面のSystemタブ、stream.converter以下の項目が増えます。
ffmpegを自動検出したことが、stream.converterで確認できます。
使用するレンダラーに応じてstream.transcodeに設定を記述します。画像は、flacなどの非DSD音源を全てwavに変換して配信する設定です。一方DSD音源はdsf/dff形式のまま配信し、レンダラー側でネイティブ(マーカーレス)・DoP・PCM変換を選択できるようにしています。
書式の説明はユーザーガイドにあります。
(2020/10/9修正)後述するネットラジオ用に、mp3とaacの変換設定を変更。ネットラジオを使わない場合はwav24またはwavで良いと思います。
以上で完成です。今回は見た目もちょっとオーディオ機器らしい、手のひらサーバーができました。

前回製作した、超小型PC(LIVA Q2)によるlightMPDレンダラーとの組み合わせ。
ラズパイとPCをルーターに接続。PCにつながっているDAPはUSB-DACの代わりです。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリで再生します。
サーバー・レンダラーともにヘッドレス(モニター・キーボード不要)で運用でき、電源を入れたら勝手に立ち上がり、いつでも電源を落とせるので市販オーディオ機器と変わらない使い勝手です・・・いや起動時間があるので「変わらない」は盛り過ぎましたスンマセン。
スマホ用のコントロールアプリはこちらで紹介しています。
楽曲ファイルの入れ替えはシンプルに、サーバーの電源を落としSSDをPCに繋ぎ変えて行う仕様としています。ネットワークに不要なトラフィックを増やさない方が良いかなと思って、ファイル共有はあえて追加していません。
再スキャンは次回のサーバー起動時に自動で行われます。
ようやくサーバーとレンダラーの2020年版が揃ったので、涼しくなったら車載してみたいと思います。
(2020/9/13追記)
サーバーだけ一足先に車載し、ACCの12Vで無事動作確認できました。
ん?前より少し音質上がってる?なんで?サーバーだよ?
アプリ・OS・ケース・電源が変わったので、どれが原因かわからん・・・
(2020/9/20追記)
CPU温度のモニタリングソフト「s-tui」を使って冷却性能を検証してみました。
以前のサーバーで1時間ほど連続再生した後の状態です。気温はおよそ27℃。
(RPi3B, UPS PIco, ksyプラケース密閉, CPUヒートシンクあり, MinimServerトランスコードなし)

今回のサーバーではこうなりました。
(RPi3B, Juice4halt, case 01密閉, シールド版+クールスタッフ, MinimServerトランスコードあり)

10℃ほど下がっています。自然空冷の密閉ケースにしては上出来かと。
lightMPDのUPnPモードの場合キャッシュが機能し、楽曲にもよりますが16bit/44.1kHzの音源などは1曲まるごとキャッシング可能です。そのためサーバーの負荷は曲の切り替わり後数秒~数10秒間だけ高くなり、その後ほぼアイドル状態となります。画像のグラフでクロックが上がっているのが選曲のタイミングです。
以前のサーバーでは「高温時に動作が怪しく」と書きましたが、高レートのハイレゾ音源を次々スキップしている時などは高負荷状態が続くので、温度上昇によるスロットリング(クロック低下)が起きていたのかもしれません。
(2020/10/9追記)
MinimStreamerにはトランスコード以外にも便利な機能があるので紹介します。
楽曲ファイルのフォルダに、こんな感じの.m3u8ファイル(テキスト)を作成します。ファイル名・フォルダ名は任意です。

.m3u8ファイルの例です。文字コードはUTF8(BOM無し)、改行コードはLFです。
※通常プレイリストの拡張子はm3uですが、MinimServerではm3uの文字コードはANSI(ShiftJIS)で日本語が文字化けするので、m3u8として作成します。
#EXTM3U
#EXTINF:-1,[NHKR1TK] NHK R1 東京
http://nhkradioakr1-i.akamaihd.net/hls/live/511633/1-r1/1-r1-01.m3u8
#EXTINF:-1,[NHKR2TK] NHK R2 東京
http://nhkradioakr2-i.akamaihd.net/hls/live/511929/1-r2/1-r2-01.m3u8
#EXTINF:-1,[NHKFMTK] NHK FM 東京
http://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-01.m3u8
UPnPコントロールアプリからプレイリストを選択すると再生が始まります。
普通のネットラジオ用プレイリストと異なるのは#EXTINF行の [ ] で囲まれた部分で、これがあるとストリームがMinimStreamerにルーティングされます。MinimServerがネットラジオの代理サーバーとなるわけです。書式はこちら。
MinimStreamerはHLS(HTTP Live Streaming)やMPEG-DASH(Dynamic Adaptive Streaming over HTTP)といった比較的新しいストリーミングプロトコルにも対応しています。MinimStreamerがプロトコル変換を行ってくれるので、HLSやDASHに対応しないプレーヤー・レンダラーでも聴けるようになります。
さらに指定してあればトランスコードも同時に行われます。レンダラーとしてlightMPDを使う場合プロトコル変換やトランスコード無しでも再生可能ですが、数時間ほど連続してラジオを再生させるとコントロールアプリに応答しなくなることがありました。MinimStreamerを通してLPCMに変換させることにより、24時間でも安定動作するようになりました。
なお例として挙げたNHKネットラジオはURLが不定期に変わるので、上の例で受信できないときは最新のものを調べてください。
ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
関連情報URL : https://minimserver.com/
Posted at 2020/09/09 03:16:03
イイね!0件
オススメ関連まとめ
-
2019/02/26
-
2025/04/19
-
2019/02/12