機能・特長

片方向の配信

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

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

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

双方向の配信

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

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

マルチストリーム

※ この機能は Chrome、Firefox、Safari、Edge で利用可能です。

マルチストリームとは一つのピアコネクションで複数の映像や音声を動的に追加したり削除したりする仕組みです。

マルチストリームでは role に sendrecv (配信と視聴)、sendonly (配信のみ)、recvonly (視聴のみ) のいずれかを指定できます。例えば、右図のようなオンラインセミナーでは、講師および受講生は sendrecv (配信と視聴)、講師による画面共有は sendonly (配信のみ)、セミナーの見学者は recvonly (視聴のみ) を指定しています。

また、Sora では「同時接続数」によってライセンス料金が異なりますが、このマルチストリームを使うことで、同時接続数を節約することが可能です。この図の場合、Sora の同時接続数は「4」となります。

サイマルキャスト機能

サイマルキャストとは、配信者が 1 つの接続だけで複数種類のエンコードした映像を配信できる技術です。

例えば、配信者は 1 つの接続で複数の画質の映像を配信することができます。
サイマルキャストが無い頃の WebRTC SFU では、配信者はすべての視聴者に対して一種類の画質の映像しか送れませんでした。 そのため、高画質の映像を視聴できるネットワーク環境の A さんに対しても、低画質の映像しか視聴できないネットワーク環境の B さんに対しても、同じ画質の映像しか送ることができず、結果として B さんは視聴できないなどの問題が発生するケースがありました。

Sora では、その後登場したサイマルキャストに対応し、配信者が 1 つの映像を、「高」「中」「低」最大 3 種類の画質で Sora に配信できるようにしています。これにより、視聴者は自身のネットワーク環境に合わせてその 3 種類の画質のどの映像を受信するか選択でき、視聴の途中で動的に画質を切り替えることも可能です。

※2020年12月16日追加
Sora 2020.3 より、サイマルキャストのエンコーディングパラメータをカスタマイズすることで、上記のような画質の指定以外にも、最大 3 種類のエンコードした映像を送れるようになりました。たとえば「解像度もフレームレートもとても低い」「解像度は高いがフレームレートは低い」という 2 種類の映像を配信する、といった設定も可能です。

スポットライト機能

※ この機能はプレビュー機能として提供中です。
※ この機能は Chrome、Edge、Safari で利用可能です。
※ この機能は Sora 2020.2 から仕様が大幅に変更となりました。以前の仕様でも 2021 年 12 月まではご利用いただけます。

この機能は、おもに大人数で行われる会議での利用を想定しています。大人数の中から発言者を目立たせるためにスポットライトを当てるイメージから、この機能名を付けています。

このスポットライト機能を利用すると、「発言している参加者」および「直近で発言した参加者」の映像のみを高画質で配信し、直近で発言していない参加者の映像は低画質で配信する事が可能です。この仕組みは、参加者が発する声や音が一定の音量を超えたことを検知して実現しています。

これにより、例えば 30 人で会議をしていた場合でも、常に直近で発言した参加者 3 名だけを高画質な映像で配信する、といったことが実現できます。30 人全員の映像を高画質で受け取る場合に比べて、クライアント側の負荷を大幅に下げることが可能です。

以前のスポットライト機能では、発言していない参加者の映像は配信しない仕様にしていましたが、Sora 2020.2 からは、直近で発言した参加者以外の映像もすべて表示されるため、発言者は全員の映像を見ながら話すことができるようになりました。

この機能は実際の挙動を一台の端末で確認することが難しいため、Sora のデモ機能では、一台の端末で擬似的に複数の参加者が発言している様子を再現できるようになっています。

録画 / 録音

Sora では、配信している映像や音声を録画・録音して保存することが可能です。配信されている映像を変換することなくそのまま保存するためサーバへ負荷が掛かることがなく、また、録画が完了してすぐにブラウザで確認することができます。
Sora で生成される録画ファイルは WebM 形式です。また、録画ファイルは Sora に接続しているクライアントごとに個別に生成されます。それぞれの録画ファイルを合成する必要がある場合は、専用の録画合成ツール「Recording Composition Tool Hisui」をオープンソースとして公開していますので、必要に合わせてご利用ください。

※2020年12月16日追加
Sora 2020.3 より、サイマルキャスト機能利用時やスポットライト機能利用時の録画にも対応しました。
また、おもに長時間の録画が必要なお客様に向けて、録画ファイルを分割して出力できるようにしました。
・1 つのファイルとして録画する (従来どおり)
・1 つのファイルと、指定した時間ごとに分割したファイルとして録画する
・分割したファイルとして録画する
いずれのパターンも可能です。

シグナリング機能

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

TURN 機能

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

4K 配信

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

E2EE 対応

Sora では、Sora を利用する際に、E2EE (End-to-End Encryption) をブラウザで実現するためのライブラリを、オープンソースライセンス Apache License 2.0 として公開しています。
E2EE の鍵合意やメッセージ暗号には Signal で利用されている Signal プロトコルを採用しています。また、音声や映像の暗号には Google Duo で利用されている SFrame を採用しています。
詳細は WebRTC SFU Sora 向け E2EE ライブラリをご確認ください。

クライアント SDK

Sora では、クライアント SDK を、オープンソースライセンス Apache License 2.0 として公開しています。
Sora の SDK は、WebRTC の複雑な接続処理を肩代わりする API を提供し、Sora を利用するアプリケーションを最小限のソースコードで実装できます。以下の各 SDK ともに最新の WebRTC に追従しています。詳細はそれぞれの URL をご確認ください。
※ SDK は、Sora をご利用中のお客様であっても、サポートの対象外としています。お問い合わせをいただく場合は、Discord コミュニティに参加していただくようお願いしています。

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

アプリケーション連携

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

フルスクラッチ開発

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

メーカーサポート

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

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

その他の特長

外部ツールとの連携
Sora の RTP 転送 API を使用することで、WebRTC で配信されている映像や音声の RTP パケットを転送できます。
この転送されてきた RTP パケットを利用することで、例えば、FFmpeg のような外部のツールで RTP パケットを受信して、HLS や RTMP 等での配信に使用することが可能です。
再送制御
Sora では映像の遅延や欠落に対して、きめ細かな再送制御ロジックを組み合わせて実行します。
これにより回線が不安定な場合にも、映像の送受信を円滑に行い、快適なコミュニケーションを実現します。
前方誤り訂正
Sora では映像の重要なフレームの欠落に対して、前方誤り訂正を利用し、再送をすることなく欠落を回復します。
これにより、回線が不安定な場合でも映像を安定的に配信することを実現しています。
不安定レベルの通知
配信者のネットワーク環境が不安定な場合は、配信している映像が乱れたり音声が途切れたりするなどの問題が起こります。このような問題が起こった場合に、配信者は視聴者から指摘されるまで問題に気付かない可能性があります。
Sora は、配信者の端末から受け取る映像パケットにより、配信者のネットワーク回線がどの程度不安定かを判断し、配信者自身に通知する機能を搭載しています。不安定の度合いは 0 から 3 までの 4 段階で通知されます。数字が小さいほど安定しており、0 が一番安定、3 が一番不安定です。配信者はその不安定レベルを参考にしてビットレートを調整することで、安定した配信を行うことができます。