Sora Python SDK 2025.1.0 をリリースしました
時雨堂では 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 バイトにメタデータを含めるといったこともできるので、その他にも独自のタイムスタンプを埋め込んだり、独自のメタデータを埋め込んだりと、いろいろな場面で利用されていたりします。

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

使い方
PyPI に登録してあるため uv add sora_sdk
でインストールできます。あとはドキュメントのチュートリアルを読んで映像を配信してみてください。
時雨堂では WebRTC SFU Sora を無料で試せる Sora Labo というサービスを提供していますので、気軽に Sora Python SDK を検証できます。
