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 Stats Collector Kohaku
Kohaku は Sora 専用の統計コレクターです。WebRTC クライアントや Sora
から得られる情報をため込み、解析することで、「つながらない」「映像が見られない」「音声が聞こえない」といった問題の原因を特定、解決しやすくするために提供しています。
Kohaku は OSS として公開されている
TimescaleDB
および
Grafana
と組み合わせて利用します。
WebRTC
クライアントは、あらかじめ仕様として決められているクライアント統計情報を吐き出しますが、ブラウザによってその情報の内容が少しずづ異なります。また、WebRTC
サーバーである Sora
では、接続しているクライアントごとに「どのくらいパケットを受信/送信したか」「どのくらい再送要求を送ったか」などの情報を保持します。
Kohaku はこれらの WebRTC クライアントや Sora の情報を、Sora
のウェブフックを利用して受けとり、解析がしやすい形に整理した上で「TimescaleDB」に投入します。
その後、データ可視化のためのツール「Grafana」と連携し、様々な条件でデータを出力することにより、「つながらない」などの問題が起きた箇所を特定するためのグラフが作成できます。
-
WebRTC
クライアントが吐き出すブラウザごとに異なる統計情報を、柔軟に吸収し、その後解析しやすい形に整理します
-
WebRTC クライアントと Sora
から送られてくる膨大な情報を突合し、整理した上で TimescaleDB
に投入します
-
統計情報を解析するための Grafana と連携し、Grafana
用のダッシュボードも提供します
製品の利用や詳細については
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
を合わせてご確認ください
▲