Subsonic で音楽ストリーミング再生
updated: 2018-07-23
modified: 2020-11-04
Subsonic というアプリケーションとスマートフォンを使って,音楽ファイルを持ち歩かずに自由に再生することを目的とした.この際,通信量が大きく増えてしまうことは考えていない.
また,低速で通信量の制限がない回線を考慮して,低ビットレートでまともに再生できるよう Opus コーデックというものを採用した.
Opus コーデックについては以下を参照
音楽ファイルが96kbpsになる日――Opus音声コーデックの実力 - Qiita
Subsonic については公式を参照(省略)
インストール方法は以下
https://www.subsonic.org/pages/installation.jsp
今回は stand-alone を使用した.java, ffmpeg がインストールされていれば使えると思う.
FLAC の再生に問題があるらしいので ArchWiki の記述に従って修正する.この時, flac, lame が必要になる.
また, flac, lame は, stand-alone な Subosnic を伸張した場所に transcode ディレクトリを作成して, transcode ディレクトリ内に実行ファイルを置くか実行ファイルへのシンボリックリンクを置く必要がある.
これで, FLAC ファイルを (wav ファイルへのデコードを経由して) mp3 に圧縮してストリーミング再生できるようになった.
ここで, Opus コーデックという低ビットレートに強い音声コーデックがあることを知ったのでさらに設定を変更した.
具体的には, ArchWiki に従って変更した内容
`flac --silent --decode --stdout %s` | `lame --silent -h -b %b -` |
を
`opusenc --quiet --vbr --bitrate %b -` |
に変更した.
-- 2019-04-13 追記
input format: flac
output format: opus
`opusenc --quiet --bitrate %b --downmix-stereo --title %t --album %l --artist %a %s -` |
--
ビットレートの設定は,再生するアプリケーション (つまりスマートフォン側) の設定にあるので,そこで低いビットレートにすることで通信帯域を節約できる.(再生アプリケーションの設定を無視する形になるので良くないけれど楽な設定としては, `opusenc --quiet --vbr --bitrate 92 -` を設定するなど)
92kbps くらいなら 200kbps の低速回線でも途切れ途切れにならずに再生できた.