YouTube の WebRTC 配信の中身

24 時間待たされて配信が可能になったので、中身を見てみた。HLS/MPEG-DASH 側はよくわからないのでパス。

WebRTC の内部プロトコルがわかってる前提。

主に chrome://webrtc-internals の解析結果。

  • 遅延は 3–4 秒程度
  • MacBook Pro 13 インチの内蔵カメラを使うと 720p で配信
  • ビットレートは 1.5Mbps から 3Mbps の間
  • 音声コーデックは Opus で、映像コーデックは H.264
  • Offer はクライアントから、Answer をサーバが返してる
  • YouTube が返してくる Answer は libwebrtc が返してくる SDP 感ある
  • RTP 拡張周りが libwebrtc 最新版に見える
  • Generic Nack が発生しても映像は乱れることなくサクサク
  • PLI もちまちま飛ばしている
  • ICE-UDP / ICE-TCP さらに ICE の tcpssl (libjingle) にも対応
  • おそらくよほどのことがない限り繋がらないことはなさそう

さすが YouTube と言える内容で、不満が特に見つからないくらいよくできている。

実際に配信をしてみた感想としてはとにかく簡単に配信できる。何も悩むことがない。この簡単さは多くの新規ユーザにタッチできるだろう。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store