LoginSignup
2
4

More than 3 years have passed since last update.

WebRTC 単語集

Last updated at Posted at 2020-11-02

WebRTC とは

Web Real-Time-Communicationの略です。
HTML5から策定されたAPI規格で、リアルタイムにビデオ/オーディオ/データをやり取りを行うのが特徴です。
プラグイン無しでボイスチャットやビデオチャットをブラウザ上で実現可能になります。

通信方法は、P2P、MCUやSFUがあります。
P2P通信では、複数人つなぐと端末の通信量と負荷がかかってしまうためサーバーを経由する方法として、MCUやSFUがあります。

P2Pについて

P2P通信でデータをやり取りするには、以下のサーバーを使います。

  • シグナリングサーバー
    仲介サーバー。通信開始時に接続してWebSocket通信を開始する。
  • STUNサーバー
    NAT配下にあるPCが自身のIPアドレス/ポート番号を調べるためのサーバー。
  • TURNサーバー
    P2P通信が出来ない場合の代わりの中継サーバー。

以下のデータを作成して、シグナリングサーバー経由で相手に送信します。

  • SDP (Session Description Protocol)
    メディアのストリーミング情報のフォーマットを規定するプロトコル。
    メディアタイプ、コーデック、帯域幅などの情報。
    接続開始したブラウザからofferを開始しSDPを送信して、受け取ったブラウザでanswerを開始しSDPを送信することで互いのSDPを登録する。
  • ICE (Interactive Connectivity Establishment)
    自身が接続できる相手ブラウザまでの通信経路の情報。
    STUNサーバーによりIPアドレス/ポート番号を把握してICEを作成し送信することで互いのICEを把握する。

詳しい流れは、WebRTCの技術解説 公開版 のp.47 - 93 が分かりやすいです。

MCU について

Multipoint Control Unitの略です。
複数クライアントからのメディアデータをサーバーで合成して他のクライアントに送ります。
送るときに、サーバーでデータの合成を行うためサーバーのCPU使用率が高くなり、画質の劣化が発生します。
SFUが出る前はMCUが主流だったようです。

SFU について

Selective Forwarding Unitの略です。
クライアントからのメディアデータを加工せずにそのままサーバー代理で他のクライアントに送ります。
MCUよりサーバーのCPU使用を抑えるメリットがあります。

詳しくは、SFUの話 が分かりやすいです。

Track とは

WebRTCのメディアの最小の単位であり、通信経路でやり取りするデータです。
アプリケーションはTrackで構成されたStreamの単位で扱います。
例えば、MediaStreamは、1つ以上のMediaTrackで構成されています。

StreamにはメディアソースごとにTrackが構成されています。
更にTrackは、同一ソースのメディアが束ねられています。
例えば、ビデオ会議のMediaTrackには、カメラとマイクで、VideoTrack、AudioTrackが存在します。

詳しくは、WebRTCにおけるメディアの取り扱い - Qiita が分かりやすいです。

参考文献

WebRTCコトハジメ - Qiita

WebRTCの基本とP2P通信が成立するまでを学ぶ - Qiita

WebRTC SFU コトハジメ

Getting started with remote streams  |  WebRTC

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4