らじる★らじる(NHKのインターネットラジオ配信)への対応調査
現状のWebuiでは らじる★らじる には対応しておりませんが、
以下の方法でとりあえず視聴することは出来ました。
今回の動作確認はArch Linux AoEで実施しました。
(2021−03−20 調査結果)
smpdのMPDではffmpeg周りの仕様によりmpeg-tsファイルのデコードは出来ません。
Failed to decode https://nhkradiobkfm-i.akamaihd.net/hls/live/512070/1-fm/1-fm-20210218T162242-01-124/596.ts;
avformat_open_input() failed: Invalid data found when processing input
-
インターネットラジオのm3uファイルのURLを調べる
現状、こちら で分かるようです。
CDATA があるURL記載の部分がm3uデータの場所になります。
8地域の放送局毎、第一放送・第二放送・FMの順で記述されている模様ですね。
-
m3uデータから実際のストリームデータを抽出
当該のm3uファイルをダウンロードし見ると、
1-fm-20210218T162236-01-119/1709.ts
のように書かれています。
実は上記のweb.xmlからm3uファイルのURLを抽出してADD STREAMプラグインで読み込みしても、m3uファイルの中身が相対パス設定のため動作しません。
tsファイルを音声ファイルとして認識させるには上記の相対パスにm3uファイルのパスを頭に追加して記述しなければなりません。
例えば北海道のNHK-FMの場合
m3uファイルは
https://nhkradiobkfm-i.akamaihd.net/hls/live/512070/1-fm/1-fm-01.m3u8
であったので、上記のtsファイルのパスを
https://nhkradioikfm-i.akamaihd.net/hls/live/512100/1-fm/1-fm-20210218T162236-01-119/1709.ts
と書き直す必要があります(ざっと18箇所)。
-
再生についての問題点
さらに問題があります。このtsファイル、実は10秒分しか記録されていません。
ということは1つのm3uファイルに18本のtsファイル=最大180秒しか鳴らせないということになります。
tsファイルの在庫が尽きる前にm3uファイルを読み込みして新しいtsファイルをMPDのキューに次々追加する仕組が必要です。
-
最後に
この仕組、HTTP Live Stream(HLS)というものらしく、
ちょっと調べた限りではJavaScriptのライブラリ(hls.js)が既に動作していますので、
これを組込すれば対応可能かもしれません。
(事前動作確認ではこちらのデモ画面にm3uのURLを入れたところ、端末上のサウンドカードには正常にラジオを復元しています。)
NHK を始めとしてHLS関係でインターネットラジオストリームが聞きたいニーズってありますか?
もしありそうでしたらかなり大掛かりになりますが、ちょっと検討して見るかもしれません。