超低遅延、高画質な配信を実現するための選択肢の一つとして WebRTC があります。
ただ WebRTC はもともと少人数で双方向の配信を前提としているため、スケールしないというのが一般的な認識です。
せっかくなので WebRTC サーバを開発・販売している立場から WebRTC を利用した配信の現実がどの程度なのかを書いていこうと思います。
P2P モデル
まずは WebRTC といえば P2P なので、WebRTC の P2P 利用についてお話する必要があります。
WebRTC の P2P 利用は、配信者が視聴者分の変換を行うという負担があることから、最大でも 10 名程度までしか配信できません。
さらに、何より配信者の PC 負荷がとても高くなるため、採用は趣味のページまででしょう。
ビジネスで P2P を配信に利用するのはとても現実的ではありません。
配信の場合は P2P で WebRTC という考えを捨てましょう。
クラサバモデル大規模配信
大規模配信を行う場合は P2P ではなく、あまり馴染みのない WebRTC でのクラサバモデルが前提となります。
P2P では配信者が直接視聴者に配信しますが、クラサバモデルの場合は、配信者は WebRTC サーバに配信します。視聴者と直接やり取りするのは WebRTC サーバになります。
WebRTC は UDP をベースとしているプロトコルで、さらに低遅延を目的としているため CDN を利用することはできません。
まず多くの配信を行うには CDN が前提となりますが、それが利用できないというのを念頭に置いていただければと思います。
さて、大規模配信ですが実際どのくらいを大規模というのでしょうか。感覚的に 1 万接続への配信は大規模だと感じています。
そのため 1 万接続以上への配信が WebRTC で可能かどうか、という話をここではしようと思います。
現実的には可能だと思います。ただ遅延は 200–300 ミリ秒ではなく 1 秒以内、程度のものになると思います。
この場合は複数の WebRTC サーバを多段型にすることで多くの接続へ配信をする仕組みが前提となります。