Closed4

Webブラウザ-サーバーサイドで、音声or動画のストリーミング通信を実現する方法

akkijp1akkijp1

ミクロの視点で見ると、ブラウザ側では2つの問題をクリアしなければならない

  1. ブラウザからマイクやカメラのデータを取得する
  2. 取得したデータを一定の大きさに分割する
  3. サーバーに送信する(WebSocketが主)

これらの問題は、ブラウザごとに仕様も異なるため、別々の対応が必要であるし、通信回線が細くなった時の対応や、WebSocketが切れてしまった時のケア等、やるべきとこがたくさんある

akkijp1akkijp1

そこで、ブラウザベンダーが出している便利なツールにWebRTCという規格がある。
これらを使うことで、上記の課題が一定解消される。

akkijp1akkijp1

また、WebRTCを直接APIを叩いて実装していく方式でも、一応かけなくはないが、もっと便利に使えるライブラリが存在する。

SFU方式限定になるが、mediasopuというが存在する。
C++とNodeJSで記述されており、速度が求められるコアをC++が担当し、それ以外の拡張をNodeJSが担当すると行った具合に、組み合わさって作らられている。

https://mediasoup.org/

このスクラップは2022/12/09にクローズされました