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
を合わせてご確認ください
▲