WebRTC を使って気軽にブラウザ以外からも配信したいという希望があった。
ブラウザ以外というのはラズパイをイメージしてくれれば良いと思う。ラズパイにカメラを取り付けてそれで、配信し続ける。それを複数人で見れるようにするということだ。
これにはカメラの映像を映像や通信も含めて WebRTC に変換して配信してくれる WebRTC Gateway(私が勝手に命名) が必要になる。
ただ、世に出ているラズパイ上で動く WebRTC Gateway は色々難がある。特に WebRTC SFU との相性が悪いのがほとんどだ。
WebRTC SFU とは WebRTC を 1:N を実現する技術で、配信者のデータをいったんサーバに送りそこから複数に配信する。
WebRTC SFU とラズパイのような非力なマシンによる配信の相性はとてもいい。ラズパイからフルメッシュで大量にデータを送るというのは現実的ではないからだ。
今日、協力者のおかげで理想的なラズパイ上で動く WebRTC Gateway が WebRTC SFU と連携して動作したことを確認した。
WebRTC Gateway は libwebrtc という webrtc.org が公開しており、Chrome にも組み込まれているライブラリを使用している。それに色々手を加えてもらい、一つのバイナリにしてもらった。
ラズパイにバイナリを置けばすぐに SFU 経由で配信が可能となる。
これは、とても良い。一般人が気軽に固定配信をできるようになる。特に特別な端末は必要ない。ラズパイと Web カメラを買ってくればいいだけだ。
一人で WebRTC で IoT と叫んでいたが、やっとここまで実現できてきた。
WebRTC Gatway のバイナリは個人には無償で提供できるように準備していこうと思っている。期待して欲しい。
また、WebRTC SFU を個人が気軽に使えるようなサービス、つまり MQTT as a Service のような WebRTC SFU as a Service を提供するつもりだ。こちらも期待して欲しい。
追記
実際の構成を写真付きで。あとは動いてる状況も GIF で。
手前のラズパイに WebRTC Gateway がセットされていて、USB で Web カメラが繋がっている。あとは LED を配信している。
こんな感じに見える。画質悪いが GIF も用意してみた。どうだろうか。