WebRTC SFU Sora Python SDK
Project description
Sora Python SDK
Sora Python SDK は WebRTC SFU Sora の Python クライアントアプリケーションを開発するためのライブラリです。Sora C++ SDK をベースにしています。
About Shiguredo's open source software
We will not respond to PRs or issues that have not been discussed on Discord. Also, Discord is only available in Japanese.
Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use.
時雨堂のオープンソースソフトウェアについて
利用前に https://github.com/shiguredo/oss をお読みください。
Sora Python SDK について
様々なプラットフォームに対応した WebRTC SFU Sora 向けの Python SDK です。
特徴
- Sora C++ SDK ベース
- WebRTC 部分の機能は libwebrtc を採用
- 物体検出などの入力に Sora 経由で受信した映像が利用できる
- 音声認識などの入力に Sora 経由で受信した音声を利用できる
利用イメージ
- データチャンネルを利用して Python において映像、音声を解析した結果を Sora 経由で配信する
- Text to Speech の音声を Sora 経由で配信する
- 映像入力に対して Pillow などで加工した映像を Sora を経由で配信する
- A チャンネルの参加者からの映像と音声を B チャンネルに対して加工した上で Sora 経由で配信する
ドキュメント
https://sora-python-sdk.shiguredo.jp/
Rye
Rye というパッケージマネージャーを利用しています。
Linux と macOS の場合は curl -sSf https://rye-up.com/get | bash
でインストール可能です。
Windows は https://rye-up.com/ の Installation Instructions を確認してください。
$ rye sync
$ rye run python run.py
$ rye run python -m build
これで dist/ 以下に *.whl
ファイルが作成されます。
実装上の注意
- Sora Python SDK のコールバックメソッドは、Python ランタイムのスレッドではなく、 C++ で実装された処理を実行するために別に立てたスレッドから呼び出されるため、以下の点に注意する必要があります:
- コールバックの中で例外を使う場合には、必ずコールバック内でキャッチして外に漏らしてはいけません (例外が外に漏れると Python プログラムが異常終了します)
- コールバック処理の中にブロックする処理を記述してはいけません (コールバック時呼び出しスレッド上では WebRTC 通信を実現する諸々の処理も走っているので、ブロックするとそれらの実行を阻害してしまう)
- 一度切断された Sora インスタンスを使い回して、新しい接続を始めることはできません
システム条件
- WebRTC SFU Sora 2023.1.0 以降
- Python 3.8 以上
対応プラットフォーム
- Windows 10 1809 x86_64 以降
- macOS 12.4 arm64 以降
- Ubuntu 22.04 x86_64
- Ubuntu 20.04 arm64
- NVIDIA Jetson JetPack SDK 5 系
未検証
対応機能
TBD
優先実装
優先実装とは Sora のライセンスを契約頂いているお客様限定で Sora Python SDK の実装予定機能を有償にて前倒しで実装することです。
優先実装が可能な機能一覧
詳細は Discord やメールなどでお気軽にお問い合わせください
TBD
サポートについて
Discord
- サポートしません
- アドバイスします
- フィードバック歓迎します
最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。
バグ報告
Discord へお願いします。
ライセンス
Apache License 2.0
Copyright 2023-2023, tnoho (Original Author)
Copyright 2023-2023, Wandbox LLC (Original Author)
Copyright 2023-2023, Shiguredo Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
このリポジトリに含まれる shiguremaru.png
ファイルのライセンスは CC BY-NC-ND 4.0 です。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for sora_sdk-2023.1.0.dev6-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 784fc1f8650787109f94dd1060b6fbf848e1fb957c169a9dc67f5693828c463a |
|
MD5 | 01ede80dfbe1ce8933aa2f32f1b6c324 |
|
BLAKE2b-256 | 91b20cca54017cef1a9bfe2bc03b04a727008741cce4ba95fc061bd08c5758f1 |
Hashes for sora_sdk-2023.1.0.dev6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 799f3b2e4b704a23ff3d092ed3112999737769b9460dca513b063b142926418a |
|
MD5 | 3b09fe5a8a430391c1c7f0738f65a3ea |
|
BLAKE2b-256 | d16baf42cfd59bb806a9e954915596e9f595be042da908a8343737a8021eb546 |
Hashes for sora_sdk-2023.1.0.dev6-cp311-cp311-macosx_13_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdd6953508cdb4c164d3b111db78652b4e84afca00d980fb84a2e72234520d12 |
|
MD5 | 4d44026183726b46cba449222c040526 |
|
BLAKE2b-256 | c077a5ea5e33de66be6501f1ae8e5d95f7b69e2cfe4888ef5678ff69b53179f7 |
Hashes for sora_sdk-2023.1.0.dev6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f45f0a2653c9345ac66940ee1149d640a6d809490e71150f1aab222dd0565d12 |
|
MD5 | 55e27a9e0157ca9ada0f0d4b41118454 |
|
BLAKE2b-256 | a092fc2a969a19ff89506bfb22d9e5acb6c08a9c13392278484f553604caef26 |
Hashes for sora_sdk-2023.1.0.dev6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4cab95429ebe7d6f0874e20a66339d77599e43e1d87209a37c1d04945817ef7 |
|
MD5 | 20f5b3ebc4f763af094967f959d2532e |
|
BLAKE2b-256 | 1fcc890ab6daf999ef6360fb0a22e9f0534d99f5da9731c86863fba3021c7b05 |
Hashes for sora_sdk-2023.1.0.dev6-cp310-cp310-macosx_13_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a955cfe88fad0687676d1c20d0b7f38a857b83ccbc48013fbd2791a10f6001b |
|
MD5 | d786d13c98e1e630cdb1949a47d83f6d |
|
BLAKE2b-256 | 68b1410ffd2d3b122ea7749b71acb69fc8c0d5de6ea8da0fd81af99d89f256de |
Hashes for sora_sdk-2023.1.0.dev6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa0dfaa8e1246b689d7554f6df0ab263b2316c3403a0ed160110e8ec16bca1cd |
|
MD5 | 71e1d92fc0d376cdd00b2c019539d7bc |
|
BLAKE2b-256 | 078b5d578542a519e778768c97435a437eda05d32862b44d07c080195273f1dd |
Hashes for sora_sdk-2023.1.0.dev6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8199559e8ea5d81ffbdd9f12ad5f0fa1059d79570decd02f0755c4fc13bd8f4b |
|
MD5 | 74d00264d1e69b12a9bee46b1427c14b |
|
BLAKE2b-256 | 2762b60998775682574ced8aa5d9e626b2b97fa002052a2591d6f03a948403e8 |
Hashes for sora_sdk-2023.1.0.dev6-cp39-cp39-macosx_13_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31af6a5737e43a042df95f88f4d7087bd5c517ae9caf015b41df95061a36aaa4 |
|
MD5 | d420cdbc77a41bcafa06a3abea27a8f3 |
|
BLAKE2b-256 | 250bedf00fb7d8feff620bf84c11acf801e6df793d24346ea4b792e46dca8282 |
Hashes for sora_sdk-2023.1.0.dev6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbc694faf9fb9ac996a94d8e9103d147961981f14ce5b196c8a7ee3b2de05de4 |
|
MD5 | 57687e6e584763c229229c00f25e8d0a |
|
BLAKE2b-256 | e40c291a0940796be5a34a3aa203af61822218a524e51ad5c7e87c6f9abf1e82 |
Hashes for sora_sdk-2023.1.0.dev6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d877462a441f38943d39b2ece768b1c0d74c85e0ffce3369f5dd0d97e120938c |
|
MD5 | 30a68e881a5f2fd5ad07a3bea4bbcbde |
|
BLAKE2b-256 | 8dc4008fbb76f493beddd28c57a386eb06c4a454b5ae2cb69d6117dda1756771 |
Hashes for sora_sdk-2023.1.0.dev6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9753370192c63706a334008c68e96d0dd2ef887fdb02c30a4d4c7d4a4b8fbd3a |
|
MD5 | 824f28928927f3c6c7e240e681b619af |
|
BLAKE2b-256 | 7b9f9fdf63ce18a8018f9e646ec5c26501784f8259874dd0798406d62d539b45 |
Hashes for sora_sdk-2023.1.0.dev6-cp38-cp38-macosx_13_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebc183043d33d12a1c29582aff0f8b96db3d8eccbed3b84c6551552854e887d9 |
|
MD5 | 5e4b62e951e93a9efa6399332fa4295d |
|
BLAKE2b-256 | 98715394465c6dfc21a8cd6a147802e6c30293f371c8342105366cbf64f36924 |