特長・機能

片方向の配信

1 : 多の片方向配信
Sora では、1:多の大規模な配信が可能です。最大で 1:1000 程度までの配信を想定しており、例えば学校や塾の授業、企業のセミナーや研修などで利用できます。
P2P の場合は、配信者自身が視聴者に対して映像や音声を配信するため、視聴者が増えるごとに配信者の端末や回線に負荷がかかり、視聴者の数は多くても 10 人程度までが現実的です。

WebRTC SFU は同じ WebRTC でも、音声や映像を「サーバ (SFU) 経由」で行う技術であり、サーバ (SFU)、すなわち Sora が、配信者に代わって映像や音声を複数の視聴者に配信してくれる仕組みです。そのため視聴者が増えても配信者の通信相手は Sora のみであり、使用する端末や回線に高い負荷がかかることなく、一度に多くの視聴者へ映像や音声をリアルタイムに配信できます。遅延は、ネットワークなどの環境に依存しますが、基本的に 1 秒未満です。

WebRTC および WebRTC SFU については、こちらも合わせてご確認ください。

双方向の配信

Sora では、1:1 の双方向配信や、多:多の双方向配信が可能です。

1 : 1 の双方向配信
映像付きのカスタマーサポートを提供するコールセンターや、遠隔地の医師と患者をつないで行う医療相談や遠隔診療などに利用できます。
多 : 多の双方向配信
「本社」「支社」「在宅勤務の社員」など、複数拠点をつないで行う会議に利用できます。
(最大で 12 名程度までを想定しています。)
多 : 多の双方向配信 + 視聴のみ
複数拠点をつないでパネルディスカッションを行う場合、「配信も視聴もできるパネラー」と「視聴のみできる参加者」を組み合わせることも可能です。

録画 / 録音

Sora では、配信している映像や音声を録画・録音して保存することが可能です。配信されている映像を変換することなくそのまま保存するため、サーバへ負荷が掛かることがなく、また録画した直後にすぐにブラウザで確認することができます。生成される録画ファイルは WebM 形式です。録画や録音は P2P では難しく、SFU という中継サーバならではの機能です。

スポットライト機能

※ この機能はプレビュー機能として提供中です。
※ この機能は、Chrome、Firefox、Safari で利用可能です。

この機能は、おもに大人数で行われる会議での利用を想定しています。Sora では、会議の参加者全員の映像と音声を配信する必要がない場合に、「発言している参加者」および「直近で発言した参加者」のみの映像と音声を配信することが可能です。
大人数の中から発言者を目立たせるためにスポットライトを当てるイメージから、この機能名を付けています。この仕組みは、参加者が発する声や音が一定の音量を超えたことを検知して実現しています。
このスポットライト機能により、例えば 100 人で会議をしていても、常に直近で発言した参加者 5 名だけの映像と音声を配信するといったことができ、全員の映像と音声を配信する場合に比べて、参加者の端末や Sora を搭載するサーバの負荷を大幅に減らすことが可能です。

この機能は実際の挙動を一台の端末で確認することが難しいため、Sora のデモ機能では、一台の端末で擬似的に複数の参加者が発言している様子を再現できるようになっています。
以下は、実際に Sora のデモ機能を使ってスポットライト機能を確認している動画です。
  • 4 つの画面は、4 名の参加者それぞれの画面です。
  • 各画面とも、自分自身の映像 (色) が一番上に表示され、その下の 2 つのボックスには直近で発言した参加者 2 名の映像 (色) が表示されます。
  • 音声ボリュームを右にスライドする操作は、その参加者が発言していることを示し、直近で発言した参加者の映像 (色) は、他の参加者に配信されている様子が分かります。

スポットライト機能に関する API
発言者のみの映像と音声を配信するだけではなく、必要に合わせて以下の動きを実現するための API を提供しています。
  • 強制スポットライト
    発言する・しないにかかわらず、指定した参加者の映像と音声を強制的に配信するための API です。
    例えば会議の冒頭で参加者を紹介するような場合に、その対象者が発言していなくても一時的に映像を配信するといった使い方が可能です。
    指定した参加者の映像を配信している間に別の参加者が発言した場合は、その発言者の映像と音声が配信されます。
  • 常時固定スポットライト
    発言する・しないにかかわらず、指定した参加者の映像と音声を常に配信するための API です。
    例えば会議の司会進行役は発言していなくても常に映像を配信する、といった使い方が可能です。
  • スポットライト解除
    常時固定で配信するように指定していた参加者のスポットライトを解除するための API です。
  • チャネルビットレート低下
    チャネルのビットレートを一括で下げます。画面共有などを利用する際にクライアントの負荷を下げるための API です
  • チャネルビットレートリセット
    一括で下げたビットレートを元に戻すための API です。

映像の画質選択 (サイマルキャスト)

WebRTC SFU では、通常、配信者はすべての視聴者に対して一種類の画質の映像しか送れません。そのため、高画質の映像を視聴できるネットワーク環境の A さんに対しても、低画質の映像しか視聴できないネットワーク環境の B さんに対しても、同じ画質の映像しか送ることができません。このことは特に商用サービスにおいて弱みになるケースがありました。
そこで Sora では、1: N の片方向配信をサイマルキャストに対応させて、視聴者が受信する映像の画質を選択できる仕組みを搭載しました。

※ サイマルキャストとは、配信者が映像を配信する際に、1 つの接続で複数の画質の映像を配信する技術です。

この仕組みにより、配信者が配信する 1 つの映像を、「高」「中」「低」の最大 3 種類の画質で Sora に配信することが可能です。また、視聴者はネットワーク帯域に合わせてその 3 種類の画質のどの映像を受信するかを選択でき、視聴の途中で動的に画質を切り替えることも可能です。

シグナリング機能

Sora はシグナリング機能を内蔵しています。これから配信を行う端末は、視聴する端末と直接通信するのではなく、Sora のみと通信を行えばよいため、経路の確立でつまづくことがありません。Sora のシグナリングは WebSocket を使用します。

TURN 機能

Sora は TURN 機能を内蔵しています。そのため WebRTC による通信が NAT を越えられない環境でも、TURN サーバを別に用意していただく必要がありません。TURN 機能が不要な場合は、設定で無効にすることも可能です。

4K 配信

Sora は 4K 配信に対応しています。WebRTC での映像の配信では、ブラウザによる 4K 配信に必要な高ビットレートの制限や、高いビットレートでの配信時の再送制御の影響により、4K から解像度が引き下げられてしまう場合があります。
Sora では、クライアントに対して、ビットレートの上限値を引き上げるように通知することで、最大 15Mbps という高いビットレートの映像の配信を可能にしています。また、高いビットレートの映像を配信する場合でも、解像度が下がらないような再送制御の仕組みも搭載しています。

不安定レベルの通知

配信者のネットワーク環境が不安定な場合は、配信している映像が乱れたり音声が途切れたりするなどの問題が起こります。このような問題が起こった場合に、配信者は視聴者から指摘されるまで問題に気付かない可能性があります。
Sora は、配信者の端末から受け取る映像パケットにより、配信者のネットワーク回線がどの程度不安定かを判断し、配信者自身に通知する機能を搭載しています。
不安定の度合いは 0 から 3 までの 4 段階で通知されます。数字が小さいほど安定しており、0 が一番安定、3 が一番不安定です。配信者はその不安定レベルを参考にしてビットレートを調整することで、安定した配信を行うことができます。

クライアント SDK

Sora では、クライアント SDK を、オープンソースライセンス Apache License 2.0 として公開しています。
Sora の SDK は、WebRTC の複雑な接続処理を肩代わりする API を提供し、Sora を利用するアプリケーションを最小限のソースコードで実装できます。以下の各 SDK ともに最新の WebRTC に追従しています。詳細はそれぞれの URL をご確認ください。

※ SDK は、Sora をご利用中のお客様であっても、サポートの対象外としています。お問い合わせをいただく場合は、GitHub Issues をご利用いただくようお願いしています。

JavaScript SDK
iOS SDK
Android SDK
React Native WebRTC ライブラリ

アプリケーション連携

WebRTC を使ってサービスを提供する事業者にとって、配信者や視聴者を認証したり、利用時間を制限したりといった管理は必要不可欠です。
Sora は、アプリケーションと連携するためのウェブフックを提供し、認証や接続・切断などの判断をアプリケーション側に任せる仕組みを採用しています。

認証ウェブフック
Sora 自体は認証機能を持っていません。その代わり、外部のシステムに認証の可否を問い合わせるための認証ウェブフックを用意しています。
イベントウェブフック
Sora は、外部のシステムにシグナリングの接続や切断、録画の開始や終了といった様々なイベントを通知するためのイベントウェブフックを用意しています。
たとえば、30 分以上接続しているクライアントは通信を切断するといったことも、イベントウェブフックを利用すれば実現できます。

フルスクラッチ開発

Sora は時雨堂がフルスクラッチで開発したパッケージ製品です。また、WebRTC 関連のライブラリも全て自社で開発をしています。
2014 年から途切れることなく開発・機能追加を行っており、WebRTC に関する知識やノウハウ、最新情報への追従の速さについてはトップクラスであると自負しています。

メーカーサポート

Sora の大きな強みの一つは、フルスクラッチで開発しているからこそ実現できる迅速で確実なサポートです。「導入事例」でご紹介している多くのお客様からも、Sora の導入を決めた理由の一つとして高い評価をいただいています。

最新情報への追従
目には見えにくい部分ですが、WebRTC を使ったサービスを安定して提供し続けて行くには、Chrome や Firefox、Safari といったブラウザのアップデート情報をいち早くキャッチし、迅速に対応することが極めて重要です。
Sora では常にブラウザの更新情報に注目し、製品のバージョンアップや適切なサポートサービスに反映させています。
バージョンアップ
Sora のライセンスを提供しているお客様には無料でバージョンアップのご案内をしています。
  • 機能追加や改善などのアップデートは、半年ごとを目安に行っています。
  • 動作に問題のある場合のアップデートは、必要なタイミングで都度行っています。

その他の特長

外部ツールとの連携
Sora の RTP 転送 API を使用することで、WebRTC で配信されている映像や音声の RTP パケットを転送できます。
この転送されてきた RTP パケットを利用することで、例えば、FFmpeg のような外部のツールで RTP パケットを受信して、HLS や RTMP 等での配信に使用することが可能です。
再送制御
Sora では映像の遅延や欠落に対して、きめ細かな再送制御ロジックを組み合わせて実行します。
これにより回線が不安定な場合にも、映像の送受信を円滑に行い、快適なコミュニケーションを実現します。
前方誤り訂正
Sora では映像の重要なフレームの欠落に対して、前方誤り訂正を利用し、再送をすることなく欠落を回復します。
これにより、回線が不安定な場合でも映像を安定的に配信することを実現しています。