Volumio2 と mpg123 と WSL の良い関係

Environment
Photo by deliyum.

はじめに

なぜなんだか,この blog,最近,最も人気なのは Volumio に関する記事です.他にもたくさん(しかも私のものよりも詳しくて分かりやすい)記事があるので不思議なんですが…….まぁ,結構読んでいただけている人が多いようなので,今回は最近気が付いた Volumio2 の利用方法を御紹介します.なお,これ,本質的には Volumio2 ではなくて,WSL がバックグラウンドプロセスに対応したことの応用について記すことが目的です.

記事のタイトルを見て分かる通り,

  • Windows 10 April Update 2018 以降,もしくは MacOS
  • mpg123 or mplayer for Windows or MacOS
  • Windows 10 なら WSL を導入済み

から Volumio2 を使うのを前提にしています.

かなり偏った環境前提です!(まぁ,当ブログの傾向でもあります)

Volumio2 をストリーミングサーバーとして使うのに WSL を入れるというのはあまりに牛刀割鶏なので,あくまで別の用途で WSL を入れている人向けの記事だとお考え下さい.

Volumio2 を配信サーバーとして使う問題点

まず,注意して頂きたいのですが,Volumio2 ってDLNAで言うと DMP であって,DMS ではありません.DMP とか DMS とかは,

トピックDMC? DMRって?、DLNAネットワークオーディオ“再入門”

参照して頂けると詳しく説明載ってますが,要は音楽プレーヤーなのであって,配信サーバーじゃありません.でも Volumio2 って,中で Music Player Daemon (mpd)

Music Player Daemon
Music Player Daemon is a flexible, powerful, server-side application for playing music.

使ってるので,

Volumio2 をストリーミングに対応させる備忘録
Volumio2 をストリーミングに対応させる備忘録です. の続きですね.Volumio2 がすでに Raspberry pi に導入済みとしておきます. Volumio2 の設定(MPD の設定) まずは,エンコーダの lame, vor...

にある通り設定ファイルの mpd.conf をいじるだけでストリーミングサーバーとして使えてしまいます.後は,ブラウザで http://volumio.local と http://volumio.local:8000 にアクセスすれば音楽を聴くことが出来る訳です.このとき,http://volumio.local がコントローラーになり,http://volumio.local:8000 側がストリーミングの処理を担当する訳ですね.

で,すぐに分かることですが,この使い方の欠点は,

ブラウザを閉じたら音楽が聴けなくなる!

ってことです.私の場合,ブラウザってつい閉じちゃう.

VLC 辺りの別のストリーミング再生が可能なプレイヤー使ったら……,って言われそうですけど,曲名も何にも表示されない VLC を画面に起動しっぱなしって言うのも気が散るのであまりうれしくない訳です.要するに,バックグラウンドで配信を待ち受けしてて,http://volumio.local で再生ボタンを押したらすぐに音楽が聞こえてきて,ブラウザを閉じてもそのまま音楽が流れ続けてほしいんです.

PulseAudio は理想じゃない

Linux にある程度慣れている人なら,

pulseaudio 使えば良いんじゃないの?

思う方多いでしょうし,私もそう思ってたんですが,実際に設定してみると,

  1. クライアントが固定アドレスじゃないとダメ(不可能じゃないけどとても面倒)
  2. Windows のファイヤーウォールに pulseaudio 用の穴をあけないといけない
  3. そもそも設定いろいろしないといけないので面倒

で,正直使う気になれない.やらないといけないことが多すぎて,そこまでするんならブラウザでいいやって気になるんですね.PulseAudio は理想じゃない訳です.

じゃあどうするの?

と言うことで,しばらくブラウザを使って聞いていたのですが,よくよく考えると,私の場合,Windows にしろ MacOS にしろ,ターミナルを入れて,コマンドラインで色々使うのが基本です.だから,

  1. ターミナルマルチプレクサを入れる(私の場合は tmux).
  2. tmux 上で mpg123 http://volumio.local:8000 とする(mplayer でも良い).
  3. デタッチする(tmux だと CTRL+b, d).

とすれば良いだけです(mpg123.exe or mplayer.exe は Windows 版を適当なところに展開し,/usr/local/bin 辺りに mp123 or mplayer という名前でシンボリックリンクを張っておいてください).

この方法,MacOS ならうまくいってたんですが,Windows の場合はダメでした.Cygwin にしろ WSL にしろ基本的にはターミナルを閉じると,それに巻き込まれて全てのプロセスが停止してしまうからです.でも,Windows 10 April Update 2018 だと WSL のバックグラウンドプロセスに対応しています.だから,上手くいくんじゃないかなぁ……とふと思ったので,試してみたところ,

大丈夫!ターミナルを閉じてもきちんと動作します.

と言うことで,なんだかアッサリと解決してしまいました.

おわりに

Windows 10 April Update 2018 がバックグラウンドプロセスに対応したっていうのは聞いてたんですが,WSL でサービスを動かせるようになったのね,という認識しかありませんでした.しかし,これ,よく考えてみると,tmux などのターミナルマルチプレクサがキチンと動くようにもなったということで,時間のかかるアップデートとかソフトのコンパイルとか計算とかを表に出しておかなくて済むようになった,ということでもあります.

開いたままにしとかないといけないターミナルを閉じてしまって「あ~あ」って思うことが今まで何度もあったので,個人的にはとても嬉しいことなんですが,冒頭でも述べた通り,正直言って,Volumio2 を活用する為に WSL を入れるというのはあまりに牛刀割鶏だと思います.

素直にスマホに音楽ファイルを入れて,外出時はスマホから聞き,家の音響機器を使いたい場合は,スマホに DMC 機能を持ったアプリを入れる方が簡単です.要するにスマホをストリーミングサーバーとして使い,Volumio2 はそのクライアントとして使うのが本来の形でしょう.スマホを使いたくなければ,ウォークマンを使えば良い.

"ウォークマン" ヘルプガイド | DLNAとは
NW-Z1000 シリーズのヘルプガイドです。"ウォークマン"の操作方法を説明しています。困ったときやわからないことがあったときに使うマニュアルです。

成程,保存できる容量の大きなスマートフォンが売れるはずだ……(ところでスマートフォンで256GBとかあるやつ今だと普通に売ってますが,こんなに大きな容量のデータを次のスマートフォンに移行するのにどのくらい手間が掛かるんでしょうねぇ…….気になります).

以上!

タイトルとURLをコピーしました