ネットラジオの受信方法

 
Web Page
Booskanium's Tips.

ちゅんラヂを作成している過程で調べたネットラジオのライブ配信の受信方法です。

主なライブ配信形式

配信方式ごとにブラウザで聞く方法の概要です。

HTTPでの配信

HTTPプロトコルでのLive StreamingはIcecastとShoutcastがあります。
ブラウザのaudioタグで単純に受信できます。ただしAudioタグではStreamingの中にmetadataを含む受信はできません。metadataはVLCなどの専用アプリが必要です。
下記の通り、ブラウザで簡単に聞けることから、海外では主流な配信方式です。

    <audio
        controls
        src="~配信URL~">
            Your browser does not support the
            <code>audio</code> element.
    </audio>

MPEG-DASH配信

HTTPプロトコルでチャンクに分割されたデータを連続ダウンロートして再生する配信方式です。
チャンクの一覧はmpdファイルで提供されます。
MPEG-DASHは類似したベンダー依存なAppleのHLS,MicrosoftのSmooth Streaming,AdobeのHDSと規格が乱立したことから、それを標準化する目的で作成されました。
BBCのネットラジオがこの方式を採用しています。日本のネットラジオには採用さていません。(後述)
受信するにはMedia Source Extensions(MSE)でaudioタグに流し込む再生方法で、dash.jsというライブラリを用いるのが主流です。
MPEG-DASHの受信に対応した例としてちゅんラヂでBBCを選局してみてください。

HLS配信

Appleが提唱する方式でMPEG-DASHに類似した配信方式です。チャンクの一覧はm3u8ファイルで提供されます。
日本ではiPhoneのシェアが高いことから、サイマル配信ラジオにて主流になった方式です。世界的に見るとガラパゴスかもしれません。
AppleのSafariのみaudio要素のみで受信できます。他のブラウザではMedia Source Extensions(MSE)でaudioタグに流し込む再生方法での対応です。この方法はhls.jsというライブラリを用いるのが主流です。
なおiPhoneはMSE鎖国しておりHLS以外の類似方式のMPEG-DASHを排除しています。

HTTP配信以外

RTSPプロトコルでの配信があります。現在は新しいネットラジオで採用されるケースは見かけません。以前は主流だったMicrosoft Media Serviceを利用した方式でしたが、現在は日本で若干残っている程度です。
AdobeのRTMPもFlash Playerが廃止されたこともあり、ほぼ使われなくなりました。
つまり、HTTP以外のプロトコルは、ネットラジオではほぼ使われなくなりました。

日本のサイマルラジオの状況

日本のサイマルラジオはサードパーティアプリに対して厳しい。
配信サイト以外のアプリで聞いてほしくない傾向が強い。

  • 名称
    配信方式
    制限事項
  • らじる★らじる
    HLS(HE-AAC)
    日本国内
  • radiko.jp
    HLS(HE-AAC)
    県域(PCはIPアドレス,スマホはGPS位置情報)
    Access-Control-Allow-Origin制限有り
    独自認証ハンドシェイクでサードパーティ排除
  • コミュニティFM by JCBA
    HLS(HE-AAC) ICY(HE-AAC,mp3)
    独自(OPUS)になり今後が心配
    三種類の方式で幅広いデバイスのブラウザで聴取できる。
    2022.04 一転して閉鎖的な配信方法に移行してサードパーティ排除。
  • コミュニティFM by リスラジ
    HLS(HE-AAC)
    当初の開始時は革新的ビジネスモデルだったが、現在は広告もあり
  • コミュニティFM by 北関西ジャパンネット
    RTSP(WMA)
    プロプライエタリな配信方式で現在は対応するブラウザがない。
    Windows Media Playerなどで聞く。
  • コミュニティFM by FM++
    独自(OPUS)
    Access-Control-Allow-Origin制限有り。
    独自配信方式で不定期に排他的な強化が行われ完全にサードパーティが排除されている。
  • CSRA
    (Community Simul Radio Alliance)
    配信なし→
    混同されやすいですが、自ら配信を行って居るわけではありません。
    サイマルラジオでも活動実態がよくわからない。

HLS受信を試す

Codesandboxにて試しています。

JCBA受信を試す

2022年4月にプロプライエタリな配信方式へ移行してしまい、HTMLのAdio要素では聴けなくなってしまった。
そんなJCBAを受信するデモ