« 2018年5月 | トップページ | 2018年8月 »

2018年6月の4件の投稿

CSRAをモダンブラウザで聴く(強引な手法です)

 皆さんはCSRAのコミュニテイFMをどうやって聴いていますか。CSRAは「日本全国のコミュニティFM放送をWebで楽しむ!」というキャッチフレーズなんですが、実はブラウザでは聴けない状況になっています。 CSRAからRTSP,MMSH,MMSTなどのWindows Media依存で配信されているコミュニティFMのサイマルはモダンブラウザでは聴けません。かつWindows 10のIE11の初期設定が変わり、設定を弄らないと聴けません。つまり現在はブラウザで聴く事はほぼ絶望的な状況です。
 じゃあWindows Media Playerで気軽に聴けるかと云うと「配信URL」に何を入れればいいのという状況です。気軽に聴けるのはサードパーティのネットラジオ受信ソフトくらいです。CSRAさん、ここを目にしたら早くモダンな配信に切り替えてください。m(_ _)m

 以下、プログラミングに興味のない方は読み捨てて下さい。

 そこで、FFmpegを使ってFMうるまのサイマル配信をモダンブラウザに送り届ける方法を試してみました。
 FFmpegを用意して以下のコマンドを叩くと、HTTPのリスン状態になります。
 ffmpeg -fflags +discardcorrupt -analyzeduration 1M -probesize 1M -i "rtsp://hdv.nkansai.tv/fm-uruma" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -listen 1 -content_type "audio/ogg; codecs=opus" headers "Access-Control-Allow-Origin: *" -f ogg http://127.0.0.1:1234
  ※"Access-Control-Allow-Origin: *" これを指定しないとWeb audio APIで撥ねられます

 次にFirefoxなどのモダンブラウザで「http://127.0.0.1:1234」と入力すると聴けます。ちゅんラヂ・プレイヤーでも、そのURLを入力することで聴けます。

 上記が上手くいったら、Firefoxをお使いの人は以下のコマンドも打ってみて下さい。
 ffmpeg -fflags +discardcorrupt -analyzeduration 1M -probesize 1M -i "rtsp://hdv.nkansai.tv/fm-uruma" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -listen 1 -content_type "audio/ogg; codecs=opus" -headers "Access-Control-Allow-Origin: *" -f ogg http://127.0.0.1:8888 | start firefox "http://7design.jp/tunein2player.html?autoplay&url=http://127.0.0.1:8888"
 こででFirefoxが立ち上がり受信できる筈です。

 技術的には再エンコードしてループバックIPアドレス(localhost)でモダンブラウザに流し込んでいます。ループバックでブラウザへ渡しますので公衆送信権には抵触いたしません。ローカルアプリからループバックを経由してブラウザに渡す手法は、UIがHTMLライクなローカルアプリを作成するお手軽な方法です。
 このFFmpegの配信は簡易なものですので1対1の接続です。これは配信サーバーへ渡すことが目的の機能みたいです。私はこれをブラウザへの流し込みに利用した訳です。
 「いちいち、FFmpegでコマンドなんか入れていられるかよ!」というツッコミがあったら仰る通りです。ハイ。このままじゃ実用的ではありません。(笑;
 CSRAのローカルプロキシもどきをnode.jsで自分の為に作ってみたいなと思い、そのプロキシもどきが可能なのかをFFmpegで試しただけです。

 お気付きの方もおられるかと思いますが、この手法はCSRAに限ったわけではありません。ローカルにある音楽ファイルがブラウザ非対応なコーデックであっても、ブラウザでメディアプレイヤーを作ろうと思えば作れていしまいます。
 デザインの自由度が高いHTMLをUIとして利用する形態は増えそうです。node.js+ElectronやNW.jsなどがこの考え方の発展形の例です。ネイティブとWebの良いとこ取り、かつプラットホームに依存しないアプリが作成できるという意味で魅力的です
 話が脱線してきましたので、これでおしまい。

参考文献:
FFmpeg Streaming Guide FFmpeg Documentation HTTP

 

| | コメント (0) | トラックバック (0)

エフエムいたみ(ハッピーステーション)

 今日は昭和の香りがするエフエムいたみ(ハッピーステーション)を紹介いたします。
 昭和の薫りってなんか落ち着きます。コミュニティFMのリスナーのターゲット層をどうするかで局の性格が現れると思います。
 沖縄のコミュニテイと同様に地域に根ざすには、昭和の薫りがする構成は、個人的には大好きです。


| | コメント (0) | トラックバック (0)

そのネット・ラジオ、ちゅんラヂ・プレイヤーで聴けるかな?

このブログで埋め込みに使っている.「ちゅんラヂ・プレイヤー」は単独でも使えます。URL引数で動作が変えられます。
・動作確認に使う時の.ちゅんラヂ・プレイヤー ※audioタグで聞けるか試せます。
・自動再生する.ちゅんラヂ・プレイヤー ※ChromeはAutoplay policyの関係でAuto Playされません
なお埋め込む方法はYouTubeの様にiframeで埋め込めます。


このちゅんラヂ・プレイヤーはHTML5を試す一つとして落書きしたものです。
audioタグとWeb Audio APIの複合技です。落書きしてみてWeb Audio APIに大きな可能性を感じました。
HTMLは文書記述という役割を完全に飛び出してアプリケーションを作る為のものに変貌したんだなと認識しました。
これアイデア次第で電子楽器のWebアプリが作れますね。シンセサイザーやギターのエフェクターとかが作れそうです。しかし私には音楽的素養がありませんので作れません。


話が脱線しましたが.「ちゅんラヂ・プレイヤー」のソース(ブラウザで表示)をご覧いただければ作りは一目瞭然です。
プレイヤー部分はそれほど複雑なことは行っておりません。操作系のcoltrolesはブラウザ毎にUIが違いすぎることからJavaScriptとCSS&HTMLで独自なデザインにしました。
Visualizerはhttps://qiita.com/ymgd-a/items/e189dd27e5e479e519a7のものをほぼそのまま使わせてもらいました。
HLSに関してはhttps://github.com/video-dev/hls.js/を使わせてもらいました。
ICYの配信に関してはaudioタグでそのまま受けられます。但し対応コーデックはブラウザによって異なります。今のところMP3とAACがオールマイティです。国内のサイマルで一番高域までのびているのはJCBAのHE-AACv2による配信です。
https://ja.wikipedia.org/wiki/HTML5%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA


 


audioタグでネットラジオが何でも受けられるかというと、実は大きな制限があります。
それはHTTP HeaderのAccess-Control-Allow-Originでサードパーティからのアクセスを簡単に排除できるからです。
色々なネットラジオを確認しましたが、これで他を排除しているの所はを見かけたのは今の所は日本にある2つの配信組織だけです。その2以外で他社を排除しているところは見たことがありません。広く聴いてもらうことを目的にしているか、コマーシャル目的で囲い込み配信しているかで対応が異なるのかもしれません。

| | コメント (0) | トラックバック (0)

FM軽井沢

 今日はFM軽井沢を紹介いたします。
 お洒落な曲が多く流れていて、BGMとしては最高です。
 そういえば軽井沢にはここ数年行っていないな。


| | コメント (0) | トラックバック (0)

« 2018年5月 | トップページ | 2018年8月 »