Skip to content

shiguredo/sora-c-sdk

Repository files navigation

Sora C SDK

GitHub tag (latest SemVer) License

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 C SDK について

WebRTC SFU Sora 向けの C のクライアント向け SDK です。 libwebrtc を利用せず、 libdatachannel を利用する事でバイナリサイズやフットプリント、アップデート頻度を抑えています。

特徴

Sora C++ SDK との比較

項目 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 対応 対応
Lyra 対応 非対応
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 機能

機能 Sora C++ SDK Sora C SDK
sendrecv (送受信) 対応 優先実装
sendonly (送信のみ) 対応 対応
recvonly (受信のみ) 対応 対応予定
データチャネルシグナリング 対応 対応
マルチストリーム 対応 対応
サイマルキャスト 対応 対応
スポットライト 対応 非対応
データチャネルメッセージング 対応 対応

Sora C SDK は Sora の機能への積極な対応を行いません。

対応 Sora

WebRTC SFU Sora 2023.2.0 以降

Sora Labo

検証目的であれば無料で利用可能な Sora Labo があります。 GitHub アカウントを持っていればすぐに利用可能です。

Sora Labo

動作環境

  • 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

FAQ.md をお読みください。

方針

優先実装

優先実装とは Sora のライセンスを契約頂いているお客様限定で Sora C SDK の実装予定機能を有償にて前倒しで実装することです。

優先実装が可能な機能一覧

詳細は Discord やメールなどでお気軽にお問い合わせください

ハードウェア対応

詳細は Discord やメールなどでお気軽にお問い合わせください

ハードウェア対応とは Sora のライセンスを契約頂いているお客様限定で Sora C SDK を指定いただいたハードウェアで動作するよう有償にて対応します。

  • メインラインにはマージしません
    • support ブランチにて公開します
    • VisionFive2 対応であれば support/vision-five2-risc-v にて公開します
    • Luckfox Pico 対応であれば support/luckfox-pico-arm64 にて公開します
  • メンテナンスが必要な場合は毎月の費用が発生します
    • バグ修正対応のみ
    • バグフィックスアップデートとしてリリースを行います
  • メインラインへの追従はそのたび費用が発生します
    • メジャーバージョンアップデートとしてリリースを行います
  • ハードウェアアクセラレーターに対応します

サポートについて

Discord

  • サポートしません
  • アドバイスします
  • フィードバック歓迎します

最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。

https://discord.gg/shiguredo

バグ報告

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.

OpenH264

https://www.openh264.org/BINARY_LICENSE.txt

"OpenH264 Video Codec provided by Cisco Systems, Inc."