Sora では、専用のツールを Apache License 2.0
のオープンソースとして公開しています
負荷試験ツール : WebRTC Load Testing Tool Zakuro
Zakuro は CUI ベースの Sora 専用負荷試験ツールです。WebRTC
で負荷をかけることはとても難しく、実際のブラウザをたくさん用意しても、帯域の問題がネックとなります。そのため、これまでは
Sora
を運用するサーバーのサイジングが難しく、ある程度余裕のあるスペックを用意していただくしかありませんでした。その問題を解決するために開発した負荷試験ツールが
Zakuro です。
Zakuro
は簡単に利用でき、サーバーで利用することを前提としているため、クラウド上で
Sora
に対して負荷をかけることが可能です。また、ビットレートや解像度など細かい設定も可能なため、実際のサービスで想定している負荷に限りなく近い負荷がかけられるようになります。
-
主要なブラウザが採用している libwebrtc を利用して負荷をかけます
-
音声や映像のエンコードを接続ごとに独立させているため、CPU
リソースは消費しますが、想定している負荷と同等の負荷をかけることが可能です
-
1 Zakuro で 最大 100 の仮想クライアント (Virtual Client)
を作成することが可能です
-
送信 (配信) の負荷だけでなく、受信 (視聴)
の負荷もかけることが可能です
製品の利用や詳細については
GitHub
を合わせてご確認ください
録音・録画合成ツール : Recording Composition Tool Hisui
Hisui は CUI ベースの Sora 専用録音・録画ファイル合成ツールです。Sora
では録音・録画したファイルは接続ごとにバラバラで出力されます。それらを、録音・録画のレポートファイルを基に一つの音声・映像に合成するのが
Hisui です。合成は FFmpeg を利用しても実現できますが、FFmpeg
は高機能な分、手軽に利用することが難しく、少しでも複雑なことをやろうとすると多くの経験と知識が必要です。
一方で、Hisui は Sora
の録音・録画ファイルを合成するために開発した専用のツールで、基本的には設定無しで録音・録画ファイルを合成することができます。また、合成後のファイルをブラウザで見られるようにしており、Safari
のような再生できるファイルに制約が多いブラウザでも利用できます。
- コマンド一つで録音・録画合成が可能です
- Sora が出力する WebM ファイルに対応しています
- 出力ファイル形式は WebM と MP4 に対応しています
-
Safari でも再生可能な VP9/AAC を出力することが可能です
※ AAC を利用する際は利用者自身がビルドする必要があります
製品の利用や詳細については
GitHub
を合わせてご確認ください
WebRTC 統計解析ソリューション : WebRTC Stats Analyzer Kohaku
Kohaku は、WebRTC クライアントから送られる統計情報を収集・解析し、ブラウザ上で可視化するソリューションです。WebRTC
クライアントから得られる情報を収集・解析することで、「つながらない」 「音声が聞こえない」 「映像が見られない」 といった問題の原因を特定し、スムーズな解決を支援します。
Kohaku は、複数のオープンソースソフトウェアを組み合わせて構成されたソリューションです。
- Sora は、WebRTC クライアントから受け取った統計情報をログとして出力します
- Sora が出力したログのアップロードには Fluent Bit を使用し、S3 または S3
互換オブジェクトストレージ (以下 「オブジェクトストレージ」 ) に保存します
- 統計情報の集計には DuckDB を使用し、オブジェクトストレージに保存されたログは Ingester
(Python 製のツール) によって定期的に DuckDB に取り込まれます
- ログの可視化には Grafana
を使用し、さまざまな条件でデータを出力・分析することで、問題の特定や解析を支援します
WebRTC クライアントの統計情報は膨大になりますが、ログの保存先にオブジェクトストレージを利用することでスケーラビリティの課題を解決しています。
また、お客様のサービス開発時には、Sora と 同一のサーバーですぐに Kohaku を動かせるように、Docker Compose を提供しています。
製品の利用や詳細については
GitHub
を合わせてご確認ください
音声解析用ゲートウェイ : Audio Streaming Gateway Suzu
Suzu は Sora 専用の音声解析用ゲートウェイです。Sora
から送られてくる音声ストリーミングを音声解析サービスに転送し、音声解析サービスからの解析結果を
Sora に送ります。
Sora は Suzu から送られてきた解析結果を、プッシュ API
を経由してリアルタイムにクライアントへ通知します。
製品の利用や詳細については
GitHub
を合わせてご確認ください
Sora Exporter
Sora Exporter は Sora の API を OpenMetrics
形式に変換するエクスポーターです。Prometheus
互換であれば利用でき、Sora の統計情報を取得できるようになります。Sora
のクラウド版である
Sora Cloud で実際に利用しています。
製品の利用や詳細については
GitHub
を合わせてご確認ください
Sora Archive Uploader
Sora Archive Uploader は Sora が出力する録画関連ファイルを Amaozn S3
や、S3 互換のオブジェクトストレージにアップロードするツールです。Sora
のクラウド版である
Sora Cloud で実際に利用している機能をツールとして切り出して公開しています。
製品の利用や詳細については
GitHub
を合わせてご確認ください
▲