Sora Python SDK 2025.1.0 をリリースしました

Share

時雨堂では Python から WebRTC を利用できるようにする Sora Python SDK を OSS として公開しています。今回、以下のとおり多くの機能を含んだ 2025.1.0 をリリースしました。

ハイライト

  • 映像コーデックプリファレンス機能を追加しました
  • AMD AMF を利用したハードウェアエンコーダー/デコーダーに対応しました
  • WebRTC Encoded Transform を利用できるようにしました
  • libwebrtc M132 にアップデートしました
  • Windows x86_64 で OpenH264 が利用可能になりました
  • リソース不足で映像ビットレートを下げる際、解像度とフレームレートどちらを維持するかを指定できる Degradation preference を利用できるようにしました
  • Python 3.13 に対応しました

映像コーデックプリファレンス機能の追加

今回一番の変更は、映像コーデックを設定できる仕組みを追加したことです。例えば H.264 は NVIDIA のエンコーダーを利用する、AV1 は Intel VPL を利用するといったことが指定できるようになります。エンコーダーやデコーダーをコーデックタイプごとに指定できます。

映像コーデックプリファレンス

AMD AMF へ対応

今回 AMD AMF に対応したことで、主なハードウェアアクセラレーターには対応できたかと思います。ハードウェアアクセラレーターを利用することで CPU リソースを抑えて高ビットレートの映像が配信できるようになります。

映像コーデックプリファレンス

WebRTC Encoded Transform への対応

エンコード済みの音声や映像のバイナリデータを「好きなバイナリデータに置き換えられる」仕組みです。主に End to End Encryption で利用されます。

好きなバイナリデータに置き換えられるということは、後ろの 20 バイトにメタデータを含めるといったこともできるので、その他にも独自のタイムスタンプを埋め込んだり、独自のメタデータを埋め込んだりと、いろいろな場面で利用されていたりします。

WebRTC Encoded Transform

Degradation preference への対応

リソース不足で映像ビットレートを下げる必要に迫られた際、解像度とフレームレートのどちらを維持するかを指定できるようにする仕組みです。例えば解像度を維持をする場合は、フレームレートを優先的に下げていきます。

sora_sdk モジュール

使い方

PyPI に登録してあるため uv add sora_sdk でインストールできます。あとはドキュメントのチュートリアルを読んで映像を配信してみてください。

時雨堂では WebRTC SFU Sora を無料で試せる Sora Labo というサービスを提供していますので、気軽に Sora Python SDK を検証できます。

チュートリアル

リンク

Read more

Sora iOS SDK / Sora Android SDK がステレオ音声の再生に対応しました

これまで、時雨堂 が提供する WebRTC SFU Sora の iOS / Android SDK では、ステレオ音声を受信した場合でもステレオで再生することができませんでした。 今回 iOS / Android SDK ともに、ステレオ音声を再生できるように対応しました。 特に Sora iOS SDK では、利用している libwebrtc に、今回必要となる iOS 向けのステレオ音声関連の機能が実装されていないため、一から対応しています。 また、Sora Android SDK では、ステレオ音声の再生に加えて、端末からのステレオ音声の取り込み・送信にも対応済みです。iOS SDK についても、将来的に対応予定です。 GitHub - shiguredo/sora-ios-sdk: WebRTC SFU Sora

By voluntas

Sora Rust SDK 正式リリース

時雨堂は WebRTC SFU Sora 向けの Rust SDK を正式リリースしました。 昨今、Rust の採用が増えていることを踏まえ、 C++ や Python だけでなく、Rust からも気軽に Sora へ接続できる仕組みを提供したいと考えていました。 Sora Rust SDK は Sora C++ SDK や Sora Python SDK と同等の機能を提供しています。AMD、Intel、NVIDIA のハードウェアアクセラレーターに加えて、 Raspberry Pi のハードウェアアクセラレーターにも対応しています。 WebRTC 部分は、主要ブラウザでも採用されている、Google が主導して開発する libwebrtc をベースとしているため、ブラウザと同等の品質で利用できます。 GitHub - shiguredo/sora-rust-

By voluntas

WebRTC SFU Sora 2026.1.0 リリースノート

時雨堂は Sora 2026.1.0 をリリースしました。今回のアップデートでは大きめの変更は入れず、性能、安定化、セキュリティなどを中心に改善しています。 * OBS Studio WHIP サイマルキャスト対応 * 暗号ライブラリを AWS-LC ライブラリに変更 * クラスター利用時の接続ノード範囲指定機能 * クラスター利用時の負荷分散機能の強化 * ログ出力先指定機能 * Ubuntu 26.04 x86_64 / arm64 対応 OBS Studio WHIP サイマルキャスト対応 OBS Studio 32.1.0 の WHIP (WebRTC 配信) にサイマルキャスト機能が追加されました。これは OBS から複数の画質の映像を WebRTC SFU へ送信し、視聴者側で画質を選択できるようにする機能です。 Sora

By voluntas

WebRTC SFU Sora 2025.1.0 リリースノート

2025 年 6 月 25 日に WebRTC SFU Sora 2025.1.0 をリリースしました。今回はスケールアップとスケールアウトを中心に改善しました。また、アプリ側で実現するのが面倒な仕組みを Sora 側で完結できるような機能も追加しています。 スケールアップの効率化 Sora では 1 台で多くのクライアントへ配信できるよう、いわば複数のワーカーを配置して配信を少しずつ分担させるような仕組みになっています。 これまではこのワーカーの数を事前に予測して設定しておく必要がありました。そのため、予測よりも接続が大幅に少ないような場合は、本来必要のないワーカーのリソースを使ってしまうという課題がありました。 今回のリリースからは、ワーカーの数を事前に設定することなく、今現在の接続数に応じて動的にスケールする仕組みを追加しました。これにより、リソースの無駄を最小化し、効率的に運用できるようになります。 さらなるスケールアウト Sora は、分散合意アルゴリズムである Raft をベースにした分散システムとして動作します。これにより、複数台の Sora でクラスター

By voluntas