# FAQ

ここでは WebRTC SFU Sora に関するよくある質問についてまとめています。

## WebRTC 全般

### 双方向配信には対応していますか？

対応しています。WebRTC のマルチストリームという技術を利用して実現しています。

クライアント側の負荷を考慮し、 1 チャネルに参加するクライアントは 12 までを推奨としています。

1 チャネルで 12 より多いクライアントで双方向の配信を行いたい場合は [スポットライト機能](SPOTLIGHT.html) を検討するかサポートまでお問い合わせください。

### 片方向配信には対応していますか？

対応しています。

### 片方向配信はどのくらいの接続数まで対応していますか？

1 つの Sora で、1 チャネルあたり 1 万接続程度まで対応しています。

クラスターリレー機能を利用することで、1 チャネルあたり数万〜数十万接続規模の配信もできます。

Sora では設計上 1 チャネルあたり 100 万接続程度の大規模な配信ができます。
ただし、使用するマシンスペックやネットワーク環境によっても大きく変わるため、
接続数が 1 万を超える規模の配信を検討している場合は、サポートまでお問い合わせください。

### 音声検出による映像の切り替えには対応していますか？

対応しています。Sora 独自のスポットライト機能という名前で提供しています。

この機能は多人数で会議を行う場合に、クライアントやサーバーの負荷を減らせる技術です。

100 名以上が 1 チャネルに参加できます。

詳細は [スポットライト機能](SPOTLIGHT.html) をご確認ください。

### スクリーンキャプチャ機能には対応していますか？

2026 年 6 月 の時点でスクリーンキャプチャ機能はブラウザでは Chrome と Firefox と Safari と Edge が対応しています。
getDisplayMedia を利用することで、実現できます。

[MediaDevices.getDisplayMedia() - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia)

### マルチストリームには対応していますか？

> **ヒント**
>
> Sora はデフォルトでマルチストリームを利用します。

対応しています。ブラウザでは Chrome と Firefox と Safari と Edge で対応しています。

また、すべての SDK が対応しています。

### マルチトラックには対応していますか？

Sora はマルチトラックに対応していません。
Sora は 1 メディアストリームにつき 1 音声トラック、1 映像トラックしか対応していません。

マルチトラックへの対応は今のところ未定です。

### 複数の音声や複数の映像を 1 つのコネクションで配信することはできますか？

いいえ。 1 つのコネクションで複数ストリームを配信をすることはできません。

1 接続では 1 ストリーム (1 音声/1 映像) のみの配信ができます。

複数の配信を行いたい場合はマルチストリームの `sendonly` ロールを利用して複数接続してください。

### 1 ユーザーで送受信と送信のみを利用している場合、送受信側で送信のみの音声や映像を受信しないことはできますか？

はい、できます。接続時、または認証成功時に [bundle_id](WEBSOCKET_SIGNALING.html#b23b22) で同じ値を指定してください。

> **注釈**
>
> シグナリング時に `bundle_id` を指定する場合は `sora.conf` の [signaling_bundle_id](SORA_CONF.html#279311) を `true` にする必要があります。

`bundle_id` が同じ接続では送信のみの音声と映像を送受信側で受信しなくなります。

### 映像コーデックは何がお勧めですか？

すべてのブラウザ、さらにほぼすべての端末で動作する VP9 か H.264 がお勧めです。

ただし、端末に VP9 のハードウェアアクセラレータが搭載されていることはほとんどないため、
H.264 を採用した方が電池消費量は減ります。

ただしブラウザの場合はハードウェアアクセラレーターを利用するかどうかは実装次第です。

一方で、H.264 は一部の Android 端末で、
VP9 は一部の Intel GPU 搭載端末で正常に動作しないことがあります。

すべての環境が Chrome に統一できる場合は AV1 をお勧めします。

### H.265 での映像配信に対応していますか？

- Chrome は 136 から H.265 に対応しています
- Safari は 18.0 から H.265 に対応しています

2026 年 6 月 の時点で、Firefox と Edge は H.265 に対応していません。

### 主要ブラウザのコーデック対応を教えてください

2026 年 6 月 の時点で、主要ブラウザの対応コーデックは以下のとおりです。

- Chrome 150 は VP8、 VP9、 AV1、 H.264、 H.265 に対応しています
- Edge 150 は VP8、 VP9、 AV1、 H.264 に対応しています- H.265 には対応していません
- Safari 26.5 は VP8、 VP9、 H.264、 H.265 に対応しています- 実験的機能として AV1 に対応しています
- Firefox 151 は VP8、 VP9、 H.264 に対応しています- AV1 には対応していません

Sora は配信者がコーデックを選択できる仕組みを採用しています。

詳細は [シグナリング](SIGNALING.html) をご確認ください。

### Safari は WebRTC に対応していますか？

はい。 Safari 12 で WebRTC に対応しました。

詳細は [Apple Safari の WebRTC について](SAFARI.html) をご確認ください。


### Chrome や Edge では HTTPS が必須ですか？

はい。ローカルホスト以外からのアクセスでブラウザで getUserMedia を使用する場合は HTTPS が必須になります。

もし、開発中に HTTP でアクセスしたい場合は、以下を参考にしてください。

[http でのアクセスでカメラの映像を取得する - Qiita](https://qiita.com/Hexa/items/a5e5c3e06ba2a3e6bb41)

### Safari では HTTPS が必須ですか？

はい。ただし、 開発者メニューから HTTP でも getUserMedia を使用できるようにするオプションが用意されています。

### Edge は WebRTC に対応していますか？

はい。 Chrome との違いは利用できるコーデックが違うくらいでそれ以外は基本的には同じです。

詳細は [Microsoft Edge の WebRTC について](EDGE.html) をご確認ください。

### サーバー側からクライアントごとにコーデックや最大ビットレートを指定できますか？

できます。 Sora からクライアントへ送信する Offer に含める SDP を、クライアントごとに指定できます。

詳細については [認証ウェブフック成功時の払い出し](AUTH_WEBHOOK_RETURN.html) をご確認ください。

### コーデックが異なるクライアントでも同じチャネルでの双方向通信はできますか？

できます。マルチストリームを利用することで接続ごとにコーデックを指定できます。

例えば、iOS の Safari は H.264、デスクトップの Chrome は VP8 という場合でも同じチャネルでの双方向通信が利用できます。

ただし、ブラウザが非対応の場合はもちろん送受信できませんのでご注意ください。

### Firefox で複数タブで音声デバイスを利用できますか？

いいえ。 Firefox 56 から複数タブで音声デバイスを利用できなくなりました。

### Safari で音声が有効な場合、自動で視聴を開始できますか？

いいえ。 Safari の仕様で、音声が含まれている映像を自動で再生することはできません。

### 高いビットレートで配信することはできますか？

できます。ただし、Sora では最大 50 Mbps での配信ができますが、
15 Mbps を超えるビットレートでの配信はサポート対象外です。

配信自体はできますが、クライアント、サーバーともに不安定になることがあるためです。

### WebRTC で 4K 30 fps の映像配信はできますか？

できます。ただし、クライアント側の負荷がとても高くなるため、ハードウェアアクセラレーターの利用が前提になります。

時雨堂が公開している SDK はハードウェアエンコーダーに対応していますので、
対応しているハードウェアをご用意ください。

ブラウザでも Safari での H.264/H.265 は確実にハードウェアアクセラレーターが利用できるため、4K 30 fps の配信が比較的安定して行えます。

また、時雨堂では [WebRTC Native Client Momo](https://momo.shiguredo.jp/) という、
様々なハードウェアエンコーダーに対応したクライアントをオープンソースで公開していますので、是非試してみてください。

[shiguredo/momo: WebRTC Native Client Momo](https://github.com/shiguredo/momo)



### 映像を 60 や 120 fps で配信することはできますか？

Sora は映像を 60 や 120 fps で配信することはできます。
Sora は映像の fps には関与しません。

そのため、 fps はカメラが対応していること、
また、クライアントが対応していることが必要になります。

### カメラで指定した解像度より低い解像度で配信されるのですが？

カメラ映像の解像度と WebRTC でエンコードされて配信される解像度は一致しません。

カメラから入ってくる映像を WebRTC では圧縮して配信します。WebRTC は圧縮時に CPU 使用率が高い、ネットワーク帯域不足などの状況に応じ、自動で解像度やフレームレートを落として配信できる状態にして配信します。

### WebRTC DataChannel には対応していますか？

対応しています。

2026 年 6 月 の時点では、シグナリング機能と [リアルタイムメッセージング機能](MESSAGING.html) と [RPC 機能](RPC.html) として [WebRTC DataChannel](https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel) を利用できます。

詳細は [DataChannel 経由のシグナリング](DATA_CHANNEL_SIGNALING.html) や [リアルタイムメッセージング機能](MESSAGING.html) と [RPC 機能](RPC.html) をご確認ください。

### 音声のステレオには対応していますか？

Sora は音声のステレオに対応しています。

ただし、ステレオで音声をエンコード/デコードするかどうかはクライアント側に依存します。

例えばブラウザの場合はデフォルトでステレオに対応していますが、エコーキャンセルが有効な場合はステレオは利用できません。
エコーキャンセルを無効にすることでステレオが利用できるようになります。

エコーキャンセルの設定は以下を参考にしてください。

[Media Capture and Streams](https://www.w3.org/TR/mediacapture-streams/#dom-mediatracksupportedconstraints-echocancellation)

### MediaStreamTrack から connection_id は取得できますか？

できます。

Sora では自分以外の MediaStreamTrack の ID に `{connection_id}-{audio | video}` という形式が含まれるようになっています。
そのため、MediaStreamTrack の ID から connection_id を取得することができます。

MediaStreamTrack の id や label 、getCapabilities の deviceId や getSettings の deviceId がこの形式になります。

- `"id": "CQE8KR2MAN1B1DD149NA2EX4MM-video"`
- `"label": "CQE8KR2MAN1B1DD149NA2EX4MM-video"`
- `"getCapabilities": {"deviceId": "CQE8KR2MAN1B1DD149NA2EX4MM-video", ...`
- `"getSettings": {"deviceId": "CQE8KR2MAN1B1DD149NA2EX4MM-video", ...`

> **危険**
>
> Firefox には対応していません

### WebRTC 統計情報 inbound-rtp から connection_id は取得できますか？

できます。

Sora では WebRTC 統計情報 `inbound-rtp` の `trackIdentifier` に `{connection_id}-{audio | video}` という形式が含まれるようになっています。
そのため、 `trackIdentifier` から connection_id を取得することができます。

`"trackIdentifier": "CQE8KR2MAN1B1DD149NA2EX4MM-video"` のように含まれます。

> **危険**
>
> Firefox には対応していません

## シグナリング

### シグナリングは独自仕様ですか？

独自仕様です。

WebRTC の規格ではシグナリング部分は定義されていないため、
WebRTC で利用されるシグナリングは独自仕様が前提です。

Sora は `JSON over WebSocket` または `JSON over DataChannel` をシグナリングの仕様として採用しています。
Sora の SDK を利用すればシグナリングを意識する必要がありません。

Sora のシグナリングの詳細な仕様について確認したい場合は、[シグナリング](SIGNALING.html) をご確認ください。

> **注釈**
>
> OBS 向けのシグナリングは WHIP / WHEP という RFC で定義されているプロトコルに対応しています。

### シグナリングに WebSocket (WS) ではなく WebSocket over TLS (WSS) を使うことはできますか？

できます。

`getUserMedia` を使用する場合、ローカルホスト以外では HTTPS が必須です。
また、HTTPS のページから Sora に接続する場合、WebSocket は WSS が必須になります。
ただし、Sora は WS のみに対応しています。

これは、実運用を考慮して、前段にリバースプロキシサーバーを立てていることを前提としており、
リバースプロキシサーバーで TLS を終端する構成を想定しているためです。

そのため、もし WSS を使う場合は、
NGINX などのリバースプロキシサーバーを使用して TLS を終端してください。

> **注意**
>
> NGINX の設定などについてはサポート対象外となりますので、お問い合わせはご遠慮ください。

弊社では、TLS を終端するリバースプロキシサーバーには NGINX の使用を推奨しています。

詳細については [nginx](NGINX.html) をご確認ください。


### OBS などで利用できる WHIP / WHEP 形式のシグナリングに対応していますか？

Sora は OBS などで利用できる [WHIP](https://datatracker.ietf.org/doc/html/rfc9725) と [WHEP](https://datatracker.ietf.org/doc/html/draft-ietf-wish-whep) に対応しています。

詳細については [WHIP 機能](WHIP.html) や [WHEP 機能](WHEP.html) をご確認ください。

### 接続単位で接続時間を知ることはできますか？

Sora は接続単位で接続時間を知ることはできます。Sora は接続ごとにタイマーを保持しており、
デフォルトで接続後 1 分ごとに外部のアプリケーションサーバーに HTTP 経由で接続の状態を通知します。

この通知はクライアントごとに独立しており、通知にはクライアント ID やチャネル ID やアプリケーションサーバーが認証時に指定した event_metadata が含まれています。
これらの情報を使用して、例えば、ユーザーごとに接続から 10 分経過したら切断する等の処理が簡単に行えます。

### シグナリングで利用している WebSocket や DataChannel を使ってクライアントにメッセージ送ることはできますか？

できます。 [プッシュ API](API_PUSH.html) を利用することでシグナリングで利用している WebSocket や DataChannel 経由でクライアントにメッセージを送ることができます。

または [リアルタイムメッセージング機能](MESSAGING.html) を利用してクライアント間でメッセージがやりとりできます。

### クライアントがシグナリング経由で他の人の接続を通知で受け取ることはできますか？

できます、ただし同一チャネルのみに限ります。

[シグナリング通知](SIGNALING_NOTIFY.html) をご確認ください。

### シグナリングに DataChannel を使うことはできますか？

できます。ただし、WebRTC 接続確立までは WebSocket を利用する必要があります。

詳細は [DataChannel 経由のシグナリング](DATA_CHANNEL_SIGNALING.html) をご確認ください。

## 認証

### シグナリング時の認証はできますか？

できます。ただし、Sora は認証機能を持っていますが、認証の判断をする仕組みを持っていません。
認証は外部のアプリケーションサーバーへウェブフックを送信し、その戻り値で判断を行います。

認証の判断材料として、
Sora のシグナリング開始時に任意の情報をクライアントに送ることができる `metadata` を指定できます。
これは外部のアプリケーションサーバー側で払い出して使用できます。

認証のフローを以下に簡単に書き出しておきます。

1. 外部のアプリケーションサーバーでアクセストークンをクライアントに払い出す
2. そのアクセストークンを `metadata` に入れて Sora に接続する
3. Sora はそのアクセストークンやコネクション ID を外部のアプリケーションサーバーに HTTP 経由で問い合わせる
4. 外部のアプリケーションサーバーはそのアクセストークンが正しいことを確認し、 `{"allowed": true}` を HTTP ステータスコード 200 番台で Sora に返す
5. Sora は Offer をクライアントに送る

```mermaid
sequenceDiagram
    participant C as クライアント
    participant S as Sora
    participant A as アプリケーションサーバー
    C->>+S: "type": "connect"
    S->>+A: 認証ウェブフック
    A-->>-S: 200 OK<br>"allowed": true
    S-)-C: "type": "offer"
    C-)S: "type": "answer"
    note over C,S: WebRTC 確立
```

外部の HTTP サーバーに対してウェブフックを送信し、
`{"allowed": true}` と HTTP ステータスコード 200 番台 が返ってきたら認証を許可します。

詳細は [認証ウェブフック](AUTH_WEBHOOK.html) をご確認ください。

### シグナリングの認証失敗時に失敗の理由をクライアントに返せますか？

できます。外部のアプリケーションサーバーで Sora への認証ウェブフックの戻り値を返す場合、
`{"allowed": false, "reason": "最大 100 バイトまでの文字列"}` という値を返す必要があります。

この `reason` 部分はクライアントに通知されます。

詳細は [認証ウェブフック](AUTH_WEBHOOK.html) をご確認ください。

## 通知

### チャネルに参加中のクライアントが、別のクライアントの参加や離脱を知ることはできますか？

できます。シグナリング通知機能を利用することにより、接続や切断のタイミングで、
シグナリングで利用している WebSocket または DataChannel 経由で通知されます。

詳細は [シグナリング通知](SIGNALING_NOTIFY.html) をご確認ください。

### チャネルに参加中のクライアントが、自分の録画開始/終了を知ることはできますか？

できます。シグナリング通知機能を利用することにより、録画の開始や終了のタイミングで、
シグナリングで利用している WebSocket または DataChannel 経由で通知されます。

詳細は [シグナリング通知](SIGNALING_NOTIFY.html) をご確認ください。

### 参加者に Sora 側で変更できるメタデータをもたせることはできますか？

できます。シグナリング通知メタデータ拡張機能を利用することで、
接続や切断のタイミングで API 経由で変更したメタデータを通知できます。
さらにメタデータの変更時に参加者全員にプッシュで通知することもできます。

詳細は [シグナリング通知メタデータ拡張](SIGNALING_NOTIFY_METADATA_EXT.html) をご確認ください。

## HTTP API

### 指定したコネクションのみを切断することはできますか？

できます。 Sora はチャネル ID とコネクション ID を指定して接続を切断できます。

詳細は [DisconnectConnection](API_SIGNALING.html#2ec3a0) をご確認ください。

### 指定したコネクションを切断した際に切断理由を含めることはできますか？

できます。 `reason` を指定することで、イベントウェブフック `connection.destroyed` の `disconnect_api_reason` として指定した値が入ってきます。

詳細は [DisconnectConnection](API_SIGNALING.html#2ec3a0) をご確認ください。

### 指定したクライアントのみを切断することはできますか？

できます。 Sora はチャネル ID とクライアント ID を指定して接続を切断できます。

詳細は [DisconnectClient](API_SIGNALING.html#e91c0b) をご確認ください。

### 指定したチャネルの配信者や視聴者のみを切断することはできますか？

できます。 Sora はチャネル ID を指定して配信者や視聴者のみを接続を切断できます。

詳細は [DisconnectChannelByRole](API_SIGNALING.html#39de6a) をご確認ください。

### 指定した配信者の映像を、指定した視聴者が受信しないことはできますか？

できます。Sora は配信者、視聴者のコネクション ID を指定して映像を Sora で一時的に止めることができます。

詳細は [転送フィルター 機能](FORWARDING_FILTER.html) をご確認ください。

### API を直接クライアントから呼び出してもいいですか？

Sora の HTTP API はクライアントから呼び出すことはできますが、
セキュリティの観点から推奨していません。

その代わり、特定の API を RPC 機能としてクライアントから呼び出すことができます。

詳細は [RPC 機能](RPC.html) をご確認ください。

## RPC

### RPC 機能とは何ですか？

Sora の RPC 機能は、クライアントから DataChannel 経由で Sora の特定の HTTP API を呼び出す仕組みです。

詳細は [RPC 機能](RPC.html) をご確認ください。

## 録画

### Sora で録画した場合に出力されるファイルの形式は何ですか？

デフォルトは MP4 形式です。WebM 形式も選択できます。

詳細は [録画機能](RECORDING.html) をご確認ください。

### Sora で録画した複数の WebM 形式のファイルを一つのファイルに出力することはできますか？

できますが、サポートの範囲外になります。 録画ファイル合成ツールをオープンソースとして公開しています。

[Recording Composition Tool Hisui](https://github.com/shiguredo/hisui)

### 録画した MP4 形式のファイルはブラウザで閲覧できますか？

できます。Chrome と Edge と Safari と Firefox で閲覧できます。

> **注釈**
>
> Firefox と Edge でも H.265 コーデックの MP4 形式のファイルは再生できます。

### 録画した WebM 形式のファイルはブラウザで閲覧できますか？

できます。Chrome と Firefox と Edge で閲覧できます。

Safari での視聴を検討している場合は MP4 形式での録画を利用してください。

### 録画できるコーデックは何ですか？

音声コーデックは Opus 、映像コーデックは VP8 と VP9 と AV1 と H.264 と H.265 に対応しています。
録画ファイルはデフォルトで MP4 形式で保存されます。

フォーマット指定することで WebM 形式でも保存することができますが、
デファクトスタンダードである MP4 形式での保存をお勧めします。

> **注意**
>
> H.265 は MP4 形式でのみ録画できます。

### 音声のみを録音できますか？

できます。Opus コーデックで音声のみの録音が可能になります。

- MP4 形式の場合 `m4a` ファイルではなく `mp4` ファイルで出力されますので、ご注意ください
- WebM 形式の場合 `webma` ファイルではなく `webm` ファイルで出力されますので、ご注意ください

### 録画した MP4 や WebM のサイズの例を教えてください

基本的には指定したビットレートで決まります。

例として Opus と VP8 の組み合わせの MP4 で、
Opus のビットレートが 64 kbps 、
VP8 の解像度が 640x480 でビットレートが 500 kbps で音声ありの場合、
1 分の映像で約 4.2 M バイトです。

### 録画が開始するタイミングを教えてください

録画が開始するタイミングは 3 つあります。

1. 認証ウェブフックで録画を開始した場合
2. セッションウェブフックで録画を開始した場合
3. [StartRecording](API_RECORDING.html#c5b527) API が呼ばれた場合

詳細は [録画の開始方法](RECORDING.html#acb9d1) をご確認ください。

### 録画が終了するタイミングを教えて下さい

1. セッションが破棄された場合
2. 録画開始時に指定した期限が来た場合
3. [StopRecording](API_RECORDING.html#fd0de5) API が呼ばれた場合

接続が切断しても他の接続が残っている場合は録画は終了しません。

詳細は [録画の終了方法](RECORDING.html#4c8592) をご確認ください。

### 録画の開始と終了をクライアントへ通知することはできますか？

録画の開始と終了をクライアントへ通知することはできます。

シグナリング通知で `recording.started` と `recording.stopped` が送られます。

### サイマルキャスト機能を利用した場合に録画はできますか？

サイマルキャスト機能を利用した場合に録画はできます。
映像の優先度が一番低い映像(多くの場合で画質が高い映像)を録画します。

映像の優先度については [映像の優先度](SIMULCAST.html#36c708) をご確認ください。

### スポットライト機能を利用した場合に録画はできますか？

スポットライト機能を利用した場合に録画はできます。
映像の優先度が一番低い映像(多くの場合で画質が高い映像)を録画します。

映像の優先度については [映像の優先度](SIMULCAST.html#36c708) をご確認ください。

### 録画関連ファイルをアップロードする仕組みはありますか？

録画関連ファイルをアップロードできますが、サポートの範囲外になります。

Sora が出力した録画関連ファイルを、
Amazon S3 や S3 互換オブジェクトストレージにアップロードするツールを GitHub に OSS として Apache-2.0 ライセンスで公開しています。

[Sora Archive Uploader](https://github.com/shiguredo/sora-archive-uploader)

### replaceTrack(null) を使うと、再生時に音声と映像がずれてしまいます

Chrome には、特定の条件で RTP タイムスタンプが正しく進まないという問題があり、
そのため Sora が生成する WebM ファイルの再生時に音声と映像がずれてしまうことがあります。

発生条件は、音声ストリームに対して RTCRtpSender.replaceTrack(null)  を実行した後に RTCRtpSender.replaceTrack(audioTrack) した場合です。

この問題は Chrome/WebRTC のバグトラッカー  で管理されています。

### 録画時のキーフレーム要求間隔は何秒ですか？

録画機能利用時の Sora からのキーフレーム要求間隔は 20 秒です。

MP4 形式では [default_recording_mp4_pli_interval](SORA_CONF.html#874e5b) で変更することができます。

WebM 形式は WebM の使用制限のため 20 秒固定です。

## TURN

### TURN サーバーを立てる必要はありますか？

Sora は TURN 機能を組み込んであり、 TURN サーバーを立てる必要はありません。

### Sora の組み込み TURN サーバーは TURN-TCP や TURN-TLS に対応していますか？

対応しています。ただし、TURN-TLS 機能を使用するためには NGINX が必要となります。

- TURN-UDP- ポート変動
- TURN-TCP- ポート固定
- TURN-TLS- ポート固定
  - NGINX 必須

詳細は [TURN 機能](TURN.html) をご確認ください

### HTTPS で利用される 443 番のポートを TURN 機能で利用することはできますか？

できますが、nginx の利用が必須です。
詳細は [TURN-TLS、TURN-TCP、シグナリングで 443 番ポートを使用する](PRODUCTION.html#14258d) をご確認ください。

> **注意**
>
> NGINX の設定などについてはサポート対象外となりますので、お問い合わせはご遠慮ください。

### TURN で UDP と TCP、TLS でどの経路が選択されるかはどう決められますか？

クライアント側の実装に依存します。Sora はクライアントがどの経路を選択するかには関与しません。

### TURN IPv6 に対応していますか？

対応しています。

### TURN の FQDN 設定はどのようなときに設定が必要ですか？

基本的に設定して問題はありません。

また、NAT64/DNS64 ネットワーク環境に対しては TURN の FQDN を設定する必要があります。

## ウェブフック

### ウェブフックのリクエスト送信先は複数登録できますか？

ウェブフックのリクエスト送信先は複数登録できません。

もし、送信先を複数にしたい場合は、登録した送信先のアプリケーションサーバーなどで対応をお願いします。

### ウェブフックにベーシック認証は利用できますか？

ウェブフックにベーシック認証は利用できます。

`sora.conf` にて [webhook_basic_authn](SORA_CONF.html#081a9f) の設定を有効にしてください。

詳細については [ウェブフックリクエスト送信先のサーバーがベーシック認証を利用している場合](WEBHOOK.html#2a13ea) をご確認ください。

### ウェブフックのタイムアウト値を設定できますか？

できます。

`sora.conf` にて [webhook_response_timeout](SORA_CONF.html#e81d13) を設定することで、ウェブフックのレスポンスのタイムアウトが変更できます。

### イベントウェブフックの session.updated の送信間隔を 1 分から変更できますか？

できます。 `sora.conf` にて [session_updated_webhook_interval](SORA_CONF.html#4612dc) に `3 min` と設定することで、
session.updated のイベントウェブフックリクエストの送信間隔を 3 分に変更できます。

### イベントウェブフックの session.updated を送らない設定はできますか？

できます。 `sora.conf` にて [ignore_session_updated_webhook](SORA_CONF.html#0901a0) を `true` を設定することで、
session.updated のイベントウェブフックリクエストが送信されなくなります。

### イベントウェブフックの connection.updated の戻り値を使用して切断などはできますか？

できません。切断をする場合は Sora が持つ切断 API を使用してください。

### イベントウェブフックの connection.updated の送信間隔を 1 分から変更できますか？

できます。 `sora.conf` にて [connection_updated_webhook_interval](SORA_CONF.html#e67c3b) に `3 min` と設定することで、
connection.updated のイベントウェブフックリクエストの送信間隔を 3 分に変更できます。

### イベントウェブフックの connection.updated を送らない設定はできますか？

できます。 `sora.conf` にて [ignore_connection_updated_webhook](SORA_CONF.html#f3f12a) を `true` を設定することで、
connection.updated のイベントウェブフックリクエストが送信されなくなります。

### イベントウェブフックのワーカー数を変更することはできますか？

できます。同時接続数が増えた場合や、ウェブフックリクエスト送信先のサーバーの応答速度が遅い場合は、
`sora.conf` にて [event_webhook_worker_number](SORA_CONF.html#58523d) の値を変更してください。

イベントウェブフックのワーカー割り当てに利用している値は `channel_id` となります。
ワーカーが 10 の場合、 `channel_id` が 100 利用している場合、1 ワーカーに 10 の `channel_id` が割り当てられます。

### イベントウェブフックの処理が遅くなった場合の挙動はどうなりますか？

イベントウェブフックワーカーがキューを持っており、もしそのワーカーがリクエストを処理中の場合、キューに追加されます。
そのリクエストの処理が終わったらキューから取り出され処理されます。

### 認証ウェブフックの同時接続数の項目を利用してセッション単位の接続数制限をかけることはできますか？

ウェブフック送信先で接続制限をかけることはできますが、厳密な制限をすることはできません。

厳密な接続制限をする場合は [max_connections](SESSION_WEBHOOK.html#498be9) を利用してください。

## DataChannel

### DataChannel でメッセージを送ることはできますか？

できます。 Sora のメッセージング機能は DataChannel を利用しています。

詳細については [リアルタイムメッセージング機能](MESSAGING.html) をご確認ください。

### role が recvonly で受信のみでもメッセージング機能を利用してメッセージを送ることはできますか？

できます。メッセージング機能でメッセージを送ることができるかどうかは `direction` にのみ影響を受けます。

### 送られてきたメッセージをどのクライアントが送ってきたかを判断することはできますか？

できます。 メッセージング機能のヘッダー付与を利用してください。

詳細については [header](MESSAGING.html#717481) をご確認ください。

### DataChannel でクライアントが `RTCPeerConnection.createDataChannel()` を利用することはできますか？

できません。Sora 側で用意された DataChannel を利用してください。

## 制限

### 1 Sora に接続できる数を制限できますか？

1 Sora に接続できる数を制限できます。

[max_connections](SORA_CONF.html#498be9) を利用してください。

### 1 チャネルに接続できる数を制限できますか？

1 チャネルに接続できる数を制限できます。

[max_connections](SESSION_WEBHOOK.html#498be9) を利用してください。

### 同一クライアント ID が接続した際、既存の接続を追い出すことはできますか？

同一クライアント ID が接続した際、既存の接続を追い出すことはできます。

[duplicate_client_id](SESSION_WEBHOOK.html#f94372) を利用してください。

## クラスター機能

### クラスターには対応していますか？

対応しています。現在 1 クラスター最大 100 ノードまで対応しています。

詳細については [クラスター機能](CLUSTER.html) をご確認ください。

### クラスター構築時に同一のライセンスを使う方法はありますか？

あります。通常は同一のライセンスを複数のノードで利用することはできませんが [最大ノード数ライセンス](LICENSE.html#aee259) を利用することでできるようになります。

### ロードバランスには対応していますか？

対応しています。

クラスター機能の一つとして、新規チャネルの接続は接続割合が少ない Sora ノードに割り振ります。

### クラスターへの自動登録には対応していますか？

対応していません。

[RegisterClusterNode](API_CLUSTER.html#09ed96) API を利用してクラスターにノードを登録する必要があります。

### クラスターの自動復旧には対応していますか？

対応しています。

ネットワーク障害やノード障害により、クラスターから離脱した場合 Sora は再度クラスターへの参加を自動で試みます。

### ノード間通信は暗号化されていますか？

されていません。そのためプライベートネットワークまたは暗号化されたネットワークを利用してください。

### 2 ノードでもクラスターを構築できますか？

できます。ただし推奨していません。

2 ノードの場合、どちらかのノードに障害が発生するとクラスター全体が止まってしまうため、
可用性は 1 ノードの場合よりも低くなります。

そのため 3 ノード以上でクラスターを組むことをお勧めします。

### クラスターからノードを離脱させたい場合はどうすれば良いですか？

Sora を終了することで離脱を行います。丁寧に離脱したい場合はモード切替で [新規コネクションブロックモード](MODE.html#0b67d3) を指定し、
すべての接続を切断してから終了してください。

もしそのノードが今後もクラスターに参加しない場合、
[PurgeClusterNode](API_CLUSTER.html#13b35a) API を利用してクラスターからそのノードの情報を完全消去してください。

なおノード情報を完全消去せずに、一度に過半数のノードを離脱させてしまうと、
残ったノードも接続を処理できなくなってしまうので注意が必要です。
詳細については [全ノードが半数以下のグループに所属した場合の挙動](CLUSTER_OPS.html#c1120e) をご確認ください。

### クラスターのディザスタリカバリーには対応していますか？

対応していません。今後対応予定はありますが、リリース時期は未定です。

### クラスターのリレーには対応していますか？

対応しています。

### クラスターの最大ノード数はいくつですか？

クラスターを構築するノードの最大数は 100 を想定しています。
これ以上のノード数でのクラスター構築を検討されている場合はサポートまでご連絡ください。

## その他

### IP アドレスは複数指定できますか？

できますが、運用が複雑になるため、現時点ではドキュメントには記載していません。
もし、IP アドレスの複数指定を利用したい場合は、サポートまでお問い合わせください。

基本的には、クライアントごとに IP アドレスを変更したい場合は、認証時の戻り値を使用してください。

### 配信者は音声と映像を配信し、視聴者は音声のみを受信することはできますか？

できます。視聴者は配信者からの映像や音声のどちらかだけを受け取るよう指定できます。

詳細は [配信または視聴メディアの選択](WEBSOCKET_SIGNALING.html#7cd3d2) をご確認ください。

### 複数のユーザーの中で、発言していないユーザーは低画質な映像のみを配信し、発言しているユーザーは音声と高画質な映像を配信することはできますか？

スポットライト機能を利用すればできます。

詳細は [スポットライト機能](SPOTLIGHT.html) をご確認ください。

### サイマルキャストに対応していますか？

対応しています。ブラウザは Chrome と Edge と Safari の最新バージョンに対応しています。
それ以外のブラウザでは配信はできませんが、視聴はできます。

映像コーデックは VP8、VP9、AV1、H.264、H.265 に対応しています。

- VP8 サイマルキャストは Chrome と Edge と Safari が対応しています
- VP9 サイマルキャストは Chrome と Edge が対応しています
- AV1 サイマルキャストは Chrome と Edge が対応しています
- H.264 サイマルキャストは Chrome と Edge と Safari が対応しています
- H.265 サイマルキャストは Chrome と Safari が対応しています

### サイマルキャスト視聴時に回線が不安定になったら自動的に低画質な映像に切り替えることはできますか？

Sora は `sora.conf` の [default_simulcast_auto_rids](SORA_CONF.html#97a674) や認証成功時の払い出しで [simulcast_auto_rids の払い出し](AUTH_WEBHOOK_RETURN.html#3b4f6a) に自動で切り替えることができる `rid` を指定することで、回線が不安定になった際に、利用できる `rid` の範囲で自動的に低画質な映像に切り替えます。

> **重要**
>
> Sora 2025.2.0 では自動切り替えは「下げること」のみです。回線が安定した際に自動的に高画質な映像に戻すことはできません。この機能は 2026 年のリリース予定の Sora にて対応予定です。

### 映像や音声を WebRTC 以外で出力する仕組みはありますか？

[StartForwardingRtp](EXPERIMENTAL_API_RTP_FORWARDING.html#c734b8) API と [StopForwardingRtp](EXPERIMENTAL_API_RTP_FORWARDING.html#729828) API を利用することで、
外部のサーバーに対して WebRTC の DTLS (暗号部分) を除いた RTP パケットを送ることができます。

FFmpeg などを使用することで、 RTP から HLS や MPEG-DASH などに変換することもできます。

### 音声や映像の配信を一時的に止めることはできますか？

Sora は音声や映像の配信を一時的に止めることはできます。

[転送フィルター](FORWARDING_FILTER.html) をご確認ください。

### HLS 配信はできますか？

Sora 単体ではできません。ただし、Sora の [RTP 転送 API](EXPERIMENTAL_API_RTP_FORWARDING.html) を利用して FFmpeg などに転送することで、HLS での配信ができます。

### 追いかけ再生はできますか？

Sora 単体ではできません。

ただし、Sora の [RTP 転送 API](EXPERIMENTAL_API_RTP_FORWARDING.html) を利用して FFmpeg などに転送することで、HLS での配信ができます。
そのため、この HLS での配信を利用することで追いかけ再生を実現できます。

### WebRTC が確立するまでにかかる時間は知ることができますか？

[GetStatsReport](EXPERIMENTAL_API_STATS.html#bbbfca) API の `average_setup_time_msec` でシグナリング接続開始から WebRTC 接続が確立するまでにかかった平均時間が取得できます。

## 性能

### 負荷試験はどう行えばよいですか？

サポートの範囲外になりますが、Sora 専用の負荷試験ツールをオープンソースとして公開しています。

[WebRTC Load Testing Tool Zakuro](https://github.com/shiguredo/zakuro)

### Sora は CPU をどの程度使用しますか？

> **重要**
>
> WebRTC ではすべての通信が暗号化されているため、暗号化/復号処理で最も CPU リソースを消費します

通信環境やビットレートに影響するため一概には言えませんが、参考値を紹介します。

環境は AWS の C5n.4xlarge を利用しています。

以下の CPU の % は 1 コアを 100% とした場合です。

解像度が QVGA / 20fps / 1000kbps の映像と音声の送受信で 1 チャネル 8 クライアントを 12 ルーム (96 接続) で CPU 使用率を 200 % 程度利用します。

### Sora はメモリをどの程度使用しますか？

Sora は再送のキャッシュ用途にメモリを使用します。 100 接続であれば 4 GB 以上あれば十分です。

また、録画利用時にはフレーム組み立てのため一時的にメモリを使用します。こちらはビットレートに依存します。

### Sora はディスクをどの程度使用しますか？

主に録画したファイルとログによりディスクが使用されます。

録画する映像の容量はコーデックやビットレートに依存するため一概には言えません。

### マルチストリームは 1 チャネルで最大何クライアントまで対応していますか？

2026.1.0 時点で最大 12 クライアントまで対応しています。それ以上を接続することもできますが、お勧めはできません。

もし、大規模での会議を行いたい場合は、現在実験的機能として提供中の [スポットライト機能](SPOTLIGHT.html) の利用を検討してください。

## 運用

### Sora を利用する場合、インターネット接続が必要ですか？

Sora を利用する場合、インターネット接続は必要ありません。

Sora はデフォルトでは外部アクセスをいっさい行わず、ライセンス確認も Sora 単体で行っています。
外部アクセスが発生するのは、ユーザーが sora.conf に明示的に設定を追加して、ウェブフック機能などを有効化した場合のみです。

その為、閉域網などのパブリックなネットワークへのアクセスができない環境でも利用頂けます。

### WebSocket が通らないプロキシ環境がある場合はどうしたらよいですか？

WebSocket は TLS を利用しているため、おそらくプロキシは TLS を一度終端するタイプかと思われます。

接続に対して中身の解析を行うプロキシであれば、
WebSocket だけでなく、TURN-UDP や TURN-TCP、TURN-TLS も通らない可能性が高いです。

結果として WebSocket が通らないプロキシを利用している場合は WebRTC 自体が利用できない可能性が高いため、プロキシの設定を変更してもらう以外の方法はありません。

### Sora は Prometheus 形式に対応した監視情報を出力しますか？

Sora は Prometheus 形式に対応した監視情報を出力しません。

その代わりに GitHub に OSS として Sora exporter を Apache-2.0 ライセンスで公開しています。

[Prometheus exporter for WebRTC SFU Sora metrics.](https://github.com/shiguredo/sora_exporter)

### Sora をデーモン化せずに起動することはできますか？

Sora をデーモン化せずに起動することはできます。

Sora を起動する際、 `bin/sora foreground` で起動してください。

### Sora を systemd で利用することはできますか？

Sora を systemd で利用することはできます。

詳細は [systemd](SYSTEMD.html) をご確認ください。

### Sora クラスターを利用せず、ロードバランサーを利用することはできますか？

Sora クラスターを利用せず、ロードバランサーを利用することはできません。

Sora ではかならず同一チャネルの接続を同一 Sora に集約する必要があるためです。
もしロードバランサーを利用したい場合はクラスターを構築する必要があります。

### Sora クラスターを利用して、ロードバランサーを利用することはできますか？

Sora クラスターを利用して、ロードバランサーを利用することはできます。

ロードバランサーは WebSocket に対応している必要があります。
さらにロードバランサー側では 30 秒以上のタイムアウトを設定する必要があります。
これは Sora は WebSocket と DataChannel をシグナリングに併用した場合 30 秒間隔で Ping を Sora から送るためです。

また、ロードバランサーを経由しないシグナリング接続もできるようにする必要があります。
これは Sora 側でシグナリングのリダイレクトを行い別の Sora に直接接続させる仕組みがあるためです。

### Sora はコンテナ上で利用できますか？

Sora をコンテナで運用するのは推奨していませんが、利用できます。
サポートへ問い合わせする場合はコンテナに関係する問題を切り分けをして頂く必要があります。

### Sora の WebSocket を利用したシグナリングのキープアライブの切断条件は何ですか？

Sora はデフォルトの設定では WebSocket 経由で 5 秒間隔で `"type": "ping"` を送信し、
60 秒間で 1 回も `"type": "pong"` が返ってこなかった場合、
Sora はシグナリング接続を切断します。

これらの時間について `sora.conf` の設定 [websocket_signaling_ping_interval](SORA_CONF.html#27aae2) と [websocket_signaling_pong_timeout](SORA_CONF.html#140464) で変更できます。

### Sora の DataChannel を利用したシグナリングの Sora 側からの切断条件は何ですか？

Sora は定期的に接続状態を確認する仕組みを持っており、その仕組みで切断かどうかを判断しています。

詳細は [ICE コネクションステート](ICE_CONNECTION_STATE.html) をご確認ください。

### Sora 1 起動あたりの最大同時接続数はいくつですか？

片方向配信の場合は、1 起動あたり 1 万同時接続程度まで対応しています。

双方向で大規模な配信を行う場合や、片方向で同時接続数が 1 万を超えるような配信を検討している場合は、
サポートまでお問い合わせください。

### Sora が対応している OS は何ですか？

2026.1.0 の時点では以下の OS に対応しています。

- Ubuntu 26.04 LTS x86_64
- Ubuntu 26.04 LTS arm64
- Ubuntu 24.04 LTS x86_64
- Ubuntu 24.04 LTS arm64
- Ubuntu 22.04 LTS x86_64
- Ubuntu 22.04 LTS arm64
- Red Hat Enterprise Linux 10 x86_64- マイナーバージョンアップ版は全てサポート対象です
  - 可能な限り最新のバージョンをご利用ください
- Red Hat Enterprise Linux 9 x86_64- マイナーバージョンアップ版は全てサポート対象です
  - 可能な限り最新のバージョンをご利用ください
- Red Hat Enterprise Linux 8 x86_64- マイナーバージョンアップ版は全てサポート対象です
  - 可能な限り最新のバージョンをご利用ください

### Sora は Amazon Linux に対応していますか？

対応していません。

Sora が対応していると明記している OS 以外で動作させている場合は Sora はサポート対象外となります。

### Sora のプロセス名は何になりますか？

`bin/sora daemon` で起動した場合、Sora 本体は run_erl というプロセスになります。こちらの死活監視をお願いします。

### Sora を終了しても epmd というプロセスが残りますが問題ありませんか？

問題ありません。 Sora と関係するプロセスですが独立しており、起動し続けていて構いません。

### カーネルパラメーターの設定は何をすれば良いですか？

まずはファイルディスクリプタ数をご確認ください。値は 65535 に設定しておくことをお勧めします。

その他のチューニング項目については [Linux カーネルチューニング](LINUX_KERNEL_TUNING.html) をご確認ください。

### ログローテーションはどうすれば良いですか？

sora.jsonl と connection.jsonl はローテーションされませんので必要な部分で mv コマンドなどで移動してください。
ファイルが無い場合、新しく作られます。

erlang.log については自動でログローテーションを行いますので気にする必要はありません。

ログの詳細については [ログファイル](LOG.html) をご確認ください。

### ログのタイムゾーンを教えてください

UTC です。

### Sora が使用する UDP のポート範囲を教えてください

Sora が使用する UDP ポートは Linux のエフェメラルポートを使用しています。

エフェメラルポートの範囲は sysctl などで確認してください。

実行例:

```
$ sysctl -n net.ipv4.ip_local_port_range
32768 60999
```

### Sora が使用する UDP のポート範囲を制限できますか？

できます。Sora が使用する UDP ポートの範囲はエフェメラルポートの範囲です。
Linux 側でエフェメラルポートの範囲を設定してください。

sysctl にて net.ipv4.ip_local_port_range の範囲を指定してください。

### ブラウザで WebRTC の詳細情報を取得することはできますか？

できます。

- Chrome であれば URL に `chrome://webrtc-internals` を入力してみてください
- Firefox であれば URL に `about:webrtc` を入力してみてください
- Edge であれば URL に `edge://webrtc-internals` を入力してみてください
- Safari であれば JavaScript コンソールの設定の一般から WebRTC を設定できます

![image](https://i.gyazo.com/cbcc400253e213c4d5e311377ea5a613.png)

### SELinux を利用する際の注意点はありますか？

Sora の log ディレクトリ以下にログを書き込めるようにする必要があります。

以下を参考にしてみてください。

- [logging - logrotate cron job not rotating certain logs - Stack Overflow](https://stackoverflow.com/questions/15652654/logrotate-cron-job-not-rotating-certain-logs)
- [linux - Configuring SELINUX to allow logging to a file that's outside /var/log - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/79311/configuring-selinux-to-allow-logging-to-a-file-thats-outside-var-log)

### 映像が乱れたり止まったりする場合は何を確認するのが良いですか？

映像が乱れたり止まったりする場合はネットワーク回線が不安定なことがほとんどです。

この場合は切断時に生成される `connection.jsonl` を確認してみてください。

このログで映像の送信側と受信側の統計情報が確認できますので、
映像が乱れたり止まったりした接続の `connection_id` を記録しておいてください。

- `total_received_rtcp_rtpfb_generic_nack`
- `total_sent_rtcp_rtpfb_generic_nack`

この値が多ければ多いほど「再送要求」の回数が多く、回線が不安定だったことが把握できます。

`connection.jsonl` の詳細については [connection ログ](LOG.html#f2e264) をご確認ください。

### Sora が突然終了しました

Sora は何か問題があり Sora が終了した場合 `erl_crash.dump` というログを出力します。
このログが出力された場合はサポート問い合わせの手順に従ってサポートまでご連絡ください。

もし `erl_crash.dump` が出力されずに Sora が終了した場合はカーネル側から停止された可能性があります。
まずは OOM Killer で殺されていないかどうかを確認してみてください。

### Sora で利用している Erlang VM のフラグを指定することはできますか？

> **重要**
>
> この設定を利用する場合はサポートまでお問い合わせください

できます。環境変数 `SORA_ADDITIONAL_ERL_ARGS` を利用してください。

### クライアントごとに Sora への経路を変更することはできますか？

できます。認証成功時にクライアントに `ipv4_address` または `ipv6_address` を払い出すことで、
クライアントはその IP アドレスを利用して Sora へ接続を試みるようになります。

例えばインターネット経由とプライベートネットワーク経由で接続先を変えることができます。

- パブリックネットワーク経由の場合は `ipv4_address` または `ipv6_address` に Sora が利用しているサーバーのパブリック IP アドレスを設定してください
- プライベートネットワーク経由の場合は `ipv4_address` または `ipv6_address` に Sora が利用しているサーバーのプライベート IP アドレスを設定してください

## SDK

Sora の SDK は基本的にシグナリング処理のための SDK です。
WebRTC 部分は [webrtc.org](https://webrtc.org/?hl=ja) が提供しているライブラリを利用しています。

### Sora の SDK へのサポートはありますか？

Sora の SDK サポートは提供していません。有償のサポートも提供していません。

もしアドバイスが必要だったり、問題が起きたりした場合は Discord へお願いします。バグ対応は最優先で行います。

### Discord サーバーの招待 URL



SDK の質問や相談については `sora-sdk-faq` を利用してください。

- Sora JavaScript SDK- 投稿時に `sora-js-sdk` タグを指定してください
- Sora iOS SDK- 投稿時に `sora-ios-sdk` タグを指定してください
- Sora Android SDK- 投稿時に `sora-android-sdk` タグを指定してください
- Sora Unity SDK- 投稿時に `sora-unity-sdk` タグを指定してください
- Sora C++ SDK- 投稿時に `sora-cpp-sdk` タグを指定してください
- Sora Python SDK- 投稿時に `sora-python-sdk` タグを指定してください

### JavaScript SDK はありますか？

Sora の JavaScript SDK に関しては以下をご確認ください。

- [Sora JavaScript SDK ドキュメント — Sora JavaScript SDK](https://sora-js-sdk.shiguredo.jp/)
- [WebRTC SFU Sora JavaScript SDK](https://github.com/shiguredo/sora-js-sdk)
- [WebRTC SFU Sora JavaScript SDK サンプル集](https://github.com/shiguredo/sora-js-sdk-examples)

### iOS SDK はありますか？

Sora の iOS SDK に関しては以下をご確認ください。 Swift で書かれています。

- [Sora iOS SDK ドキュメント — Sora iOS SDK](https://sora-ios-sdk.shiguredo.jp/)
- [WebRTC SFU Sora iOS SDK](https://github.com/shiguredo/sora-ios-sdk)
- [WebRTC SFU Sora iOS SDK クイックスタート](https://github.com/shiguredo/sora-ios-sdk-quickstart)
- [WebRTC SFU Sora iOS SDK サンプル集](https://github.com/shiguredo/sora-ios-sdk-samples)

### Android SDK はありますか？

Sora の Android SDK に関しては以下をご確認ください。 Kotlin で書かれています。

- [Sora Android SDK ドキュメント — Sora Android SDK](https://sora-android-sdk.shiguredo.jp/)
- [WebRTC SFU Sora Android SDK](https://github.com/shiguredo/sora-android-sdk)
- [WebRTC SFU Sora Android SDK クイックスタート](https://github.com/shiguredo/sora-android-sdk-quickstart)
- [WebRTC SFU Sora Android SDK サンプルアプリケーション](https://github.com/shiguredo/sora-android-sdk-samples)

### C++ SDK はありますか？

Sora の C++ SDK に関しては以下をご確認ください。 C++ で書かれています。

- [WebRTC SFU Sora C++ SDK](https://github.com/shiguredo/sora-cpp-sdk)

### Unity SDK はありますか？

Sora の Unity SDK に関しては以下をご確認ください。 C++ SDK をベースにしています。

- [Sora Unity SDK ドキュメント — Sora Unity SDK ドキュメント](https://sora-unity-sdk.shiguredo.jp/)
- [WebRTC SFU Sora Unity SDK](https://github.com/shiguredo/sora-unity-sdk)

### Python SDK はありますか？

Sora の Python SDK に関しては以下をご確認ください。 C++ SDK をベースにしています。

- [Sora Python SDK ドキュメント — Sora Python SDK](https://sora-python-sdk.shiguredo.jp/)
- [WebRTC SFU Sora Python SDK](https://github.com/shiguredo/sora-python-sdk)
- [Sora Python SDK サンプル集](https://github.com/shiguredo/sora-python-sdk-examples)

### JavaScript SDK は認証付き HTTP Proxy に対応していますか？

JavaScript SDK はブラウザで動作するため、ブラウザが WebRTC での HTTP Proxy に対応している必要があります。

主要なブラウザは HTTP Proxy に対応済みです。利用する場合はブラウザで HTTP Proxy の設定をしてください。

### iOS / Android / Unity / C++ SDK / Python SDK は認証付き HTTP Proxy に対応していますか？

対応しています。ただし Basic 認証のみの対応で、 **OS の設定や PAC ファイルへの対応は未定です** 。

- iOS SDK- 最新版で対応済みです
- Android SDK- 最新版で対応済みです
- C++ SDK- 最新版で対応済みです
- Unity SDK- 最新版で対応済みです
- Python SDK- 最新版で対応済みです

### ブラウザレスな WebRTC クライアントアプリケーションはありますか？

OSS として WebRTC Native Client Momo を公開しています。

- [WebRTC Native Client Momo](https://momo.shiguredo.jp/)
- [shiguredo/momo: WebRTC Native Client Momo](https://github.com/shiguredo/momo)

また OBS が WHIP という WebRTC シグナリング仕様を実装しています。

詳しくは [WHIP](WHIP.html) をご確認ください。

## ライセンス

### 同時接続とは具体的に何を指していますか？

シグナリングの同時接続数を指しています。1 シグナリング接続で 1 同時接続です。

### ライセンスの同時接続数を超えた時はどうなりますか？

もし、最大同時 100 接続のライセンスファイルを利用している場合で 101 本目の接続がきた場合、 Sora は 101 本目の接続を拒否します。

その際、クライアントには `SERVICE-UNAVAILABLE` というエラーメッセージを通知します。

Sora 側では `sora.jsonl` ログに `EXCEED-MAX-CONNECTIONS` というエラーログを出力します。

### ライセンスの同時接続数の最小の値はいくつですか？

ライセンスの同時接続数の最小は 100 となります。

10 や 50 といったライセンスは提供しておりません。

### ライセンスの同時接続数は 100 単位ですか？

ライセンスの同時接続数は 100 単位です。
100 の次は 200 となり、100 同時接続単位となります。

110 や 150 といったライセンスは提供しておりません。

### ライセンスの最大同時接続とは別に最大同時接続数を設定できますか？

Sora は `sora.conf` の [max_connections](SORA_CONF.html#498be9) で最大同時接続数を設定できます。

この値はライセンスの最大同時接続数以下に設定する必要があります。

### ライセンスの期限を過ぎた場合はどうなりますか？

動作上、既存の接続に対しては特に何もありませんが、新規の接続を受け付けなくなります。

### Sora の現在の同時接続数を確認する方法はありますか？

[GetStatsReport](EXPERIMENTAL_API_STATS.html#bbbfca) API の `total_ongoing_connections` で現在 Sora に接続している同時接続数が確認できます。

また、 [Sora Exporter](SORA_EXPORTER.html) を利用することで、現在の同時接続数を監視することができます。

### ライセンス期限のタイムゾーンを教えてください

ライセンス期限のタイムゾーンは UTC です。

### クラスター利用時に同一のライセンスを利用する方法はありますか？

あります。 `最大ノード数ライセンス` を契約することで、 1 つのクラスター構築時に同一のライセンスを利用できるようになります。

`最大ノード数ライセンス` では、 1 クラスターで同一のライセンスを最大いくつのノードに適用できるかがあらかじめ定義されています。
クラスターを構築する際に、その最大ノード数までは同一ライセンスを利用できます。

詳細は [最大ノード数ライセンス](LICENSE.html#aee259) をご確認ください。

### 最大ノード数ライセンスで契約できる最大ノード数はいくつですか？

最大ノード数は 1000 を想定しています。

## アップデート

### アップデートは有償ですか？

ライセンスをご契約いただいている期間は、無償でアップデートを提供させていただきます。

### アップデートのタイミングは決まっていますか？

原則として毎年 6 月と 12 月に、機能の追加や改善、削除を目的としたアップデートを行います。

その他、必要に合わせて不定期に修正のアップデートを行うことがあります。

詳細は [サポートライフサイクル](SUPPORT_LIFECYCLE.html) をご確認ください。

### Sora のバージョン表記

バージョン表記:

```
YYYY.MAJOR.FIX
```

- `YYYY` はリリースした年を示します
- `MAJOR` はその年のメジャーアップデートのリリース回数を示します
- `FIX` はバグフィックスアップデートおよびホットフィックスアップデートのリリース回数を示します

詳細は [サポートライフサイクル](SUPPORT_LIFECYCLE.html) をご確認ください。

## サポート

### 古いバージョンの Sora のサポートは提供していますか？

以前は最新バージョンの利用に対してのみサポートを提供していましたが、Sora 2023.1.0 以降はサポート提供期間を約 12 ヶ月間に変更しました。

詳細は [サポートライフサイクル](SUPPORT_LIFECYCLE.html) をご確認ください。

### Sora のサポートは電話で受け付けていますか？

いいえ。サポートはサポート専用のメールでのみ、受け付けています。

### Sora のサポートは 24 時間 365 日ですか？

いいえ。サポートは弊社営業日の 10:00-17:00 のみ、対応しています。

### SDK の有償サポートは受け付けていますか？

いいえ。Sora SDK の有償サポートは行っていません。

ただし GitHub 上ですべてのコードを公開しています。
もし何か問題が起きた場合は時雨堂コミュニティの Discord にてご相談ください。
バグ対応は最優先で行います。



### Zakuro や Hisui など関連ツールの有償サポートは受け付けていますか？

いいえ。関連ツールの有償サポートは行っていません。

ただし GitHub 上ですべてのコードを公開しています。
もし何か問題が起きた場合は時雨堂コミュニティの Discord にてご相談ください。
バグ対応は最優先で行います。


