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 をお読みください。
WebRTC SFU Sora 向けの C のクライアント向け SDK です。 libwebrtc を利用せず、 libdatachannel を利用する事でバイナリサイズやフットプリント、アップデート頻度を抑えています。
- WebRTC ライブラリに libdatachannel を利用しています
- アップデート頻度を抑えることができます
- paullouisageneau/libdatachannel
- コードのフットプリントが小さい Mbed TLS を利用しています
- バイナリサイズが小さい
- WebRTC と Sora シグナリングを含んだ libsorac は libwebrtc と比較してサイズは約 1/7 です
- Apache-2.0 ライセンスで OSS として公開しています
- H.265 (HEVC) 対応
- ハードウェアアクセラレーターを利用
- H.264 (AVC) 対応
- ハードウェアアクセラレーターを利用
- OpenH264 対応
- Simulcast 対応
- RTCP Feedback Messages PLI 対応
- Reduced-Size RTCP 対応
- RTCP CNAME 対応
- SCTP Zero Checksum 対応
- TURN-UDP 対応
項目 | Sora C++ SDK | Sora C SDK |
---|---|---|
ライセンス | Apache-2.0 | Apache-2.0 |
WebRTC ライブラリ | libwebrtc | libdatachannel |
WebRTC ライブラリライセンス | BSD-3-Clause | MPL-2.0 |
バイナリサイズ | 大きい | 小さい |
フットプリント | 大きい | 小さい |
アップデート頻度 | 積極的 | 控えめ |
暗号ライブラリ | BoringSSL | Mbed TLS |
SRTP ライブラリ | libsrtp | libsrtp |
SCTP ライブラリ | libwebrtc (dcsctp) | usrsctp |
ICE ライブラリ | libwebrtc | libjuice |
WebSocket ライブラリ | Boost | libdatachannel |
プロトコル | Sora C++ SDK | Sora C SDK |
---|---|---|
TURN-UDP | 対応 | 対応 |
TURN-TCP | 対応 | 非対応 |
TURN-TLS | 対応 | 非対応 |
音声コーデック | Sora C++ SDK | Sora C SDK |
---|---|---|
Opus | 対応 | 対応 |
AAC | 非対応 | 優先実装 |
映像コーデック | Sora C++ SDK | Sora C SDK |
---|---|---|
VP8 | 対応 | 優先実装 |
VP9 | 対応 | 優先実装 |
AV1 | 対応 | 優先実装 |
H.264 (HWA) | 対応 | 対応 |
H.265 (HWA) | 対応 | 対応 |
OS / アーキテクチャ | Sora C++ SDK | Sora C SDK |
---|---|---|
Ubuntu / x86_64 | 対応 | 対応 |
Ubuntu / x86 | 非対応 | 優先実装 |
Ubuntu / arm64 | 対応 | 優先実装 |
Ubuntu / arm32 | 非対応 | 優先実装 |
Debian / riscv64 | 非対応 | 対応予定 |
Debian / riscv32 | 非対応 | 優先実装 |
Raspberry Pi OS / arm64 | 非対応 | 対応予定 |
Raspberry Pi OS / arm32 | 非対応 | 対応予定 |
Windows / x86_64 | 対応 | 優先実装 |
Windows / arm64 | 非対応 | 優先実装 |
macOS / arm64 | 対応 | 対応 |
iOS / arm64 | 対応 | 優先実装 |
Android / arm64 | 対応 | 優先実装 |
Raspberry Pi | Sora C++ SDK | Sora C SDK |
---|---|---|
Raspberry Pi Zero W | 非対応 | 対応予定 |
Raspberry Pi Zero WH | 非対応 | 対応予定 |
Raspberry Pi Zero 2 W | 非対応 | 対応予定 |
Raspberry Pi Zero シリーズ以外の対応予定はありません。
NVIDIA Jetson | Sora C++ SDK | Sora C SDK |
---|---|---|
NVIDIA Jetson AGX Orin | 対応 | 非対応 |
NVIDIA Jetson AGX Xavier | 対応 | 非対応 |
NVIDIA Jetson Xavier NX | 対応 | 非対応 |
NVIDIA Jetson シリーズへの対応予定はありません。
基本的には Sora C++ SDK を利用してください。 バイナリサイズやフットプリント、アップデート頻度を抑えたい場合のみ Sora C SDK を利用してください。
機能 | Sora C++ SDK | Sora C SDK |
---|---|---|
sendrecv (送受信) | 対応 | 優先実装 |
sendonly (送信のみ) | 対応 | 対応 |
recvonly (受信のみ) | 対応 | 対応予定 |
データチャネルシグナリング | 対応 | 対応 |
マルチストリーム | 対応 | 対応 |
サイマルキャスト | 対応 | 対応 |
スポットライト | 対応 | 非対応 |
データチャネルメッセージング | 対応 | 対応 |
Sora C SDK は Sora の機能への積極な対応を行いません。
WebRTC SFU Sora 2023.2.0 以降
検証目的であれば無料で利用可能な Sora Labo があります。 GitHub アカウントを持っていればすぐに利用可能です。
- Ubuntu 22.04
- x86_64
- Ubuntu 20.04
- x86_64
- macOS 14
- arm64
- VideoToolbox
- H.264 HWA (Encoder)
- H.265 HWA (Encoder)
優先実装としてお受けできます
- Raspberry Pi Zero
- Raspberry Pi OS
- arm64 / arm
- H.264 HWA (Encoder)
- Luckfox Pico
- arm64
- H.265 HWA (Encoder)
- H.264 HWA (Encoder)
- JPEG HWA (Decoder)
- VisionFive 2
- Debian 12.0
- riscv64
- H.265 HWA (Encoder)
- Milk-V
- riscv64
- armv64
- H.265 HWA (Encoder)
- H.264 HWA (Encoder)
FAQ.md をお読みください。
- Sora の機能への積極的な対応は行いません
- libdatachannel へ積極的な貢献を行います
- usrsctp への貢献を行います
- Mbed TLS や OpenSSL への貢献を行います
- libsrtp への貢献を行います
- 映像コーデックは内蔵しません
- 映像コーデックはハードウェアアクセラレーター、または外部コーデックライブラリを利用します
優先実装とは Sora のライセンスを契約頂いているお客様限定で Sora C SDK の実装予定機能を有償にて前倒しで実装することです。
詳細は Discord やメールなどでお気軽にお問い合わせください
- WebRTC's Statistics
- libdatachannel 側への貢献を含みます
- Google congestion control (GCC)
- libdatachannel 側への貢献を含みます
- RTP Extensions for Transport-wide Congestion Control
- Transport-Wide Congestion Control
- libdatachannel 側への貢献を含みます
- RTCP XR
- libdatachannel 側への貢献を含みます
- RTP Retransmission Payload Format
- libdatachannel 側への貢献を含みます
- RTP ULPFEC
- libdatachannel 側への貢献を含みます
- RTP FlexFEC
- libdatachannel 側への貢献を含みます
- RTP header extensions
- Absolute Capture Time
- Absolute Send Time
- Video Layers Allocation
- Video BFrame RTP Header Extension
- libdatachannel 側への貢献を含みます
- HWA を利用したコーデック
- AAC HWA 対応
- Sora の対応も含みます
- RTP Payload Format for MPEG-4 Audio/Visual Streams
- VP8 / VP9 / AV1 / H.264 / H.265 の HWA 対応
- AMD Advanced Media Framework (AMF) SDK
- Intel oneVPL
- NVIDIA Video Codec SDK
- AAC HWA 対応
- 次世代コーデック
- H.266 (VVC) 対応
- Sora の対応も含みます
- libdatachannel 側への貢献を含みます
- RTP Payload Format for Versatile Video Coding (VVC)
- EVC 対応
- Sora の対応も含みます
- libdatachannel 側への貢献を含みます
- RTP Payload Format for Essential Video Coding (EVC)
- H.266 (VVC) 対応
- プラットフォーム
- iOS 対応
- arm64
- Android 対応
- arm64
- Windows 対応
- arm64
- Ubuntu 対応
- x86
- arm64
- arm32
- iOS 対応
詳細は Discord やメールなどでお気軽にお問い合わせください
ハードウェア対応とは Sora のライセンスを契約頂いているお客様限定で Sora C SDK を指定いただいたハードウェアで動作するよう有償にて対応します。
- メインラインにはマージしません
- support ブランチにて公開します
- VisionFive2 対応であれば
support/vision-five2-risc-v
にて公開します - Luckfox Pico 対応であれば
support/luckfox-pico-arm64
にて公開します
- メンテナンスが必要な場合は毎月の費用が発生します
- バグ修正対応のみ
- バグフィックスアップデートとしてリリースを行います
- メインラインへの追従はそのたび費用が発生します
- メジャーバージョンアップデートとしてリリースを行います
- ハードウェアアクセラレーターに対応します
- サポートしません
- アドバイスします
- フィードバック歓迎します
最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。
Discord へお願いします。
Apache License 2.0
Copyright 2023-2024, Wandbox LLC (Original Author)
Copyright 2023-2024, 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.
https://www.openh264.org/BINARY_LICENSE.txt
"OpenH264 Video Codec provided by Cisco Systems, Inc."