WebRTC SFU Sora ドキュメント¶
製品のお問い合わせなどは sora at shiguredo.jp までお願いいたします。 (このメールアドレスへの特定電子メールの送信を拒否いたします)
重要なお知らせ¶
署名アルゴリズムに SHA-1 が利用されている中間証明書をご利用されているお客様へ¶
Sora 2023.2.0 から 2024.1.0 までは署名アルゴリズムが SHA-1 の中間証明書を利用した場合、 Bad Certificate エラーとして接続が拒否されます。
影響のある機能は下記の機能です。
ウェブフック機能
音声ストリーミング機能
統計エクスポーター機能
もし、このエラーがログに出力された場合、 Sora 2024.1.3 をご利用ください。
Sora RHEL 版の追加料金について¶
RHEL 9 のフルサポートが終了する 2027 年 6 月 1 日より、Sora RHEL 版をご利用のお客様については、 サポート費用としてライセンス料金に 10% (ただし最大で 10 万円) の料金を上乗せさせていただきます。
料金例¶
ライセンス料金が 60 万円の場合は 6 万円
ライセンス料金が 84 万円の場合は 8.4 万円
ライセンス料金が 120 万円の場合は 10 万円
ライセンス料金が 252 万円の場合は 10 万円
RHEL の場合、Ubuntu と比べて維持や Sora の動作検証コストが大きいためで、 ご理解いただきますようお願いいたします。
レガシー録画機能の廃止について¶
2023 年 12 月リリースの Sora 2023.2.0 で新しい録画機能を追加しました。 今までの録画機能はレガシー録画機能と名前を変更しました。 2025 年 12 月リリース予定の Sora でレガシー録画機能を廃止します。
移行については レガシー録画機能から新しい録画機能への移行 をご確認ください。
廃止については レガシー録画機能の廃止 をご確認ください。
レガシー録画機能をご利用のお客様は、新しい録画機能へ移行をご検討ください。
機能や移行に関してのご不明点などがあれば、サポートまでお問い合わせください。
レガシーストリーム(非マルチストリーム)機能の廃止について¶
2024 年 6 月リリースの Sora 2024.1.0 でレガシーストリーム機能をデフォルトで無効にしました。
2025 年 6 月リリース予定の Sora でレガシーストリーム機能を廃止します。
移行については レガシーストリーム(非マルチストリーム)機能からマルチストリームへの移行 をご確認ください。
廃止については レガシーストリーム(非マルチストリーム)機能の廃止 をご確認ください。
レガシーストリーム機能をご利用のお客様は、マルチストリーム機能へ移行をご検討ください。
機能や移行に関してのご不明点などがあれば、サポートまでお問い合わせください。
Ubuntu 24.04 版の提供開始について¶
Sora 2024.1.0 から Ubuntu 24.04 版の提供を開始しました。
Ubuntu 24.04 版への切り替えをご希望のお客様はサポートまでご連絡ください。
Ubuntu 20.04 版の提供終了について¶
Ubuntu 20.04 は 2025 年 4 月末でサポートが終了となるのに合わせて、Sora の Ubuntu 20.04 版については以下のとおりとなります。
- パッケージの提供
2024 年 6 月のリリースの 2024.1.0、およびその後リリースされる可能性のある 2024.1.x の提供をもって終了
- サポートの終了
2024.1.0 およびおよびその後リリースされる可能性のある 2024.1.x に対しては 2025 年 6 月末で終了
Ubuntu 20.04 版をご利用のお客様は、早めに OS の変更をご検討の上、移行先の OS をサポートまでご連絡下さい。
CentOS 7 版の提供終了について¶
CentOS 7 は 2024 年 6 月末でサポートが終了となるのに合わせて、Sora の CentOS 7 版については以下のとおりとなります。
- パッケージの提供
2023 年 12 月にリリースの 2023.2.0、およびその後リリースされる可能性のある 2023.2.x の提供をもって終了
- サポートの終了
2023.2.0 およびおよびその後リリースされる可能性のある 2023.2.x に対しては 2024 年 12 月末で終了
CentOS 7 版をご利用のお客様は、早めに OS の変更をご検討の上、移行先の OS をサポートまでご連絡下さい。
古いドキュメントについて¶
古いドキュメント をご確認ください。
このドキュメントについて¶
このドキュメントは WebRTC SFU Sora 2024.2.0 に対応しています。
- 2024.1.x から 2024.2.x への移行
- 概要
- レガシー録画機能のデフォルト無効
- セッション単位での同時接続数を制限する session-webhook-max_connections の追加
- ウェブフックを送信を行わない場合でもログを出力するように変更
- セッションの同時接続数が
0
の際にmultistream
とspotlight
が異なる新規接続が来た場合の挙動の変更 - プレイアウト遅延機能が配信側から視聴側への適用に変更
- 録画の出力ファイルが MP4 形式に対応しました
- WebSocket シグナリング時のフレームサイズが大きい場合のエラー改善
- クライアントからの "type": "disconnect" による切断の改善
- WebSocket シグナリング利用時に Sora から正常切断が発生した際の改善
- DataChannel シグナリングのみ利用時に Sora から切断が発生した際の
"type": "close"
メッセージの送信 - Sora からの正常切断時の
reason
の値を空文字にする設定 - シグナリングエラー時の改善
- シグナリングエラー時のエラーメッセージの改善
- クラスターのローリングアップデートについて
- JoinCluster API を廃止しました
- ListClusterNodes API の include_all_known_nodes の廃止しました
- sora.conf の legacy_auth_webhook_log を廃止しました
- sora.conf の legacy_event_webhook_connection_destroyed_reason を廃止しました
- sora_conf-signaling_forwarding_filter を非推奨にしました
- 認証成功時とセッション生成時の払い出し
forwarding_filter
を非推奨にしました - mode_session_vanished ウェブフックを非推奨にしました
- RTP ストリーム停止/再開 API を非推奨にしました
- レガシー録画機能から新しい録画機能 (セッション単位) への移行
- レガシーストリーム(非マルチストリーム)機能からマルチストリーム機能への移行
- リリースノート
- 用語集
- 既知の問題
- 実験的機能
- 非推奨機能
- CentOS 7 対応
- Ubuntu 20.04 対応
- レガシー録画機能の廃止
- レガシーストリーム(非マルチストリーム)機能の廃止
- ListForwardingFilters API の
channel_forwarding_filter
の廃止 - 認証成功時とセッション生成時の
forwarding_filter
の廃止 - RTP ストリーム停止/再開 API の廃止
- 統計エクスポーター機能の廃止
- ユーザーエージェント統計の廃止
- mode_session_vanished の廃止
- スポットライト機能
spotlight_number
項目の認証成功時の払い出しの非推奨化 - ウェブフックと統計エクスポーターの HTTP ヘッダー
x-sora
prefix の非推奨化 - API
- 廃止機能
- 概要
- ListClusterNodes API の include_all_known_nodes の廃止
- sora.conf の legacy_auth_webhook_log の廃止
- sora.conf の legacy_event_webhook_connection_destroyed_reason の廃止
- 認証成功時の払い出し h264_profile_level_id の廃止
- sora.conf の default_h264_profile_level_id の廃止
- Lyra コーデック対応の廃止
- sora.conf の legacy_log_format の廃止
- sora.conf の legacy_log_extension の廃止
- sora.conf の legacy_webhook_audio_video_json_structure の廃止
- DataChannel で利用している SCTP 関連の実験的な設定の廃止
- Ubuntu 18.04 サポートの終了
- sora.conf の split_archive_legacy_prefix の廃止
- sora.conf の default_multistream の廃止
- redact_archive_metadata_sensitive_data と redact_api_sensitive_data の廃止
- recording.report の metadata_filename と metadata_file_path の廃止
- シグナリング通知メタデータ metadata_list の廃止
"type": "update"
の廃止- sora.conf の demo の廃止
- sora.conf の remote_stats の廃止
- StopRecording API の redirect の配信
- CentOS 8 対応
- extmap_allow_mixed 設定のデフォルト有効化と廃止
- スポットライトレガシー機能の廃止
rtp
にある RTCP 関連統計情報を廃止sora.conf
のopus_param_clock_rate
を廃止sora.conf
のdcsctp_association_max_retrans
を廃止- role の upstream と downstream を廃止
- client_id を指定する設定の廃止
- 旧サイマルキャスト画質変更 API の廃止
- bin/sora start の廃止
- Ubuntu 16.04 サポートの終了
- チュートリアル
- 本番稼働に向けて
- 優先順位
- IPv4 アドレスの固定
- IPv6 アドレスの利用について
- sora.conf の turn_fqdn を設定する
- ウェブフックなどで利用する CA 証明書のインストール
- HTTP API のループバックアドレスからのみのアクセス
- シグナリングのループバックアドレスからのみのアクセス
- ファイルディスクリプタ数の設定
- systemd の適用
- TURN-TLS、TURN-TCP、シグナリングで 443 番ポートを使用する
- カーネルパラメーターの適用
- コンテナ環境での利用する場合
- SDK の利用
- やりたいことが 1:1 の双方向配信の場合
- やりたいことが複数人での双方向配信の場合
- やりたいことが 1:多 の双方向配信の場合
- やりたいことが 1:多 の片方向配信で、大規模の場合
- やりたいことが OBS からの配信の場合
- やりたいことが OBS での取り込みの場合
- Edge が機能要件に含まれている場合
- Firefox が機能要件に含まれている場合
- 認証を外部の指定した HTTP サーバーで判断したい場合
- 接続、切断の検知を外部の指定した HTTP サーバーで利用したい場合
- 配信されている音声や映像を記録したい場合
- クライアント側で参加してきたユーザーの情報を通知したい場合
- ライセンス
- ログファイル
- sora.conf リファレンス
- 単位指定
- 範囲表記
- license_file
- label
- ipv4_address
- ipv6
- ipv6_address
- ipv6_only
- devtools
- media_publish_worker_number
- auth_webhook_url
- auth_webhook_log
- session_webhook_url
- session_webhook_worker_number
- session_created_timeout
- session_destroyed_timeout
- session_updated_webhook_interval
- session_created_response_validate_warning_as_error
- event_webhook_url
- event_webhook_worker_number
- stats_webhook_url
- stats_webhook_log
- stats_webhook_worker_number
- webhook_ipv6
- webhook_connect_timeout
- webhook_response_timeout
- connection_updated_webhook_interval
- webhook_insecure
- webhook_basic_authn
- webhook_basic_authn_user_id
- webhook_basic_authn_password
- webhook_proxy_url
- webhook_proxy_auth_user
- webhook_proxy_auth_password
- webhook_tls_fullchain_file
- webhook_tls_privkey_file
- webhook_tls_verify_cacert_file
- ignore_connection_updated_webhook
- ignore_connection_failed_webhook
- ignore_session_updated_webhook
- ignore_session_vanished_webhook
- ignore_audio_streaming_webhook
- ignore_audio_streaming_failed_webhook
- ignore_spotlight_changed_webhook
- ignore_recording_started_webhook
- ignore_archive_started_webhook
- ignore_split_archive_available_webhook
- ignore_connection_rtc_webhook
- archive_dir
- archive_tmp_dir
- default_recording_format
- recording_max_expire_time
- recording_max_split_duration
- recording_expire_time_required
- recording_dual_output
- signaling_port
- signaling_loopback_address_only
- signaling_normal_close_reason
- signaling_notify
- signaling_notify_session_id
- signaling_notify_client_id
- signaling_notify_bundle_id
- signaling_notify_connection_id
- signaling_notify_connection_created_timestamp
- signaling_notify_media
- signaling_notify_metadata
- signaling_notify_metadata_ext
- signaling_notify_authn_metadata_max_size
- signaling_notify_network
- signaling_notify_rtp_stream
- signaling_notify_recording
- signaling_notify_forwarding_filter
- signaling_notify_audio_streaming_failed
- signaling_notify_ice_connection_state
- signaling_vp9_params
- signaling_av1_params
- signaling_h264_params
- signaling_h265_params
- signaling_bundle_id
- copy_websocket_signaling_header_names
- websocket_signaling_ping_interval
- websocket_signaling_pong_timeout
- websocket_stats_timer_interval
- default_data_channel_signaling
- data_channel_signaling_close_message
- default_ignore_disconnect_websocket
- data_channel_messaging
- data_channel_messaging_only
- data_channel_stats_timer_interval
- data_channel_stats_max_retransmits
- whip
- whip_bearer_token_metadata_key
- whip_turn
- whep
- whep_bearer_token_metadata_key
- whep_turn
- api_port
- api_loopback_address_only
- api_cors_origin
- turn
- turn_realm
- turn_fqdn
- turn_tls_fqdn
- turn_tcp
- turn_tcp_allocate_success_delay_time
- turn_tcp_listen_port
- turn_tcp_port
- turn_tcp_only
- turn_tls
- turn_tls_port
- turn_tls_only
- rtx
- ulpfec
- audio_red
- generic_nack
- default_audio_bit_rate
- default_video_bit_rate
- default_vp9_param_profile_id
- default_av1_param_profile
- default_h264_param_profile_level_id
- default_h265_param_level_id
- default_simulcast_rid
- simulcast_encodings_file
- simulcast_multicodec
- simulcast_codecs_file
- default_forwarding_pli_interval
- forwarding_simulcast
- signaling_forwarding_filters
- signaling_forwarding_filter
- audio_streaming_url
- audio_streaming_header
- default_audio_streaming_result_push
- default_audio_streaming_language_code
- audio_streaming_max_retries
- audio_streaming_retry_interval
- audio_streaming_tls_fullchain_file
- audio_streaming_tls_privkey_file
- audio_streaming_tls_verify_cacert_file
- recycle_media_section
- hide_origin_username
- connection_created_wait_timeout
- default_spotlight_focus_rid
- default_spotlight_unfocus_rid
- default_spotlight_unfocus_audio
- default_spotlight_unfocus_audio_rate_limit
- default_spotlight_delayed_focus
- default_spotlight_delayed_focus_interval
- default_spotlight_auto_unfocus
- default_spotlight_auto_unfocus_interval
- default_spotlight_focus_min_interval
- default_spotlight_number
- spotlight_encodings_file
- multistream_auto_sharing_video_bit_rate
- default_rtc_stats
- rtc_stats_log
- user_agent_stats
- ice_connection_state_disconnected_timeout
- ice_connection_state_failed_timeout
- skip_redact_sensitive_data
- stats_collector_url
- default_stats_exporter
- stats_exporter_number
- stats_exporter_tls_fullchain_file
- stats_exporter_tls_privkey_file
- stats_exporter_tls_verify_cacert_file
- node_name
- cluster
- cluster_temporary_node
- cluster_relay
- default_cluster_affinity
- cluster_affinity_threshold
- external_signaling_url
- external_api_url
- cluster_listen_min_port
- cluster_listen_max_port
- data_dir
- av1
- h265
- h264_b_frame
- h265_b_frame
- legacy_recording
- legacy_signaling_error
- legacy_stream
- rtp_hdrext_video_orientation
- rtp_hdrext_video_content_type
- rtp_hdrext_video_timing
- rtp_hdrext_playout_delay
- default_playout_delay_min_delay
- default_playout_delay_max_delay
- rtp_hdrext_color_space
- rtp_hdrext_sdes_mid
- rtp_hdrext_abs_capture_time
- rtp_hdrext_dependency_descriptor_vp9
- rtp_packet_loss_simulator_incoming
- rtp_packet_loss_simulator_outgoing
- data_channel_packet_loss_simulator_incoming
- data_channel_packet_loss_simulator_outgoing
- opus_param_channels
- opus_param_maxplaybackrate
- opus_param_stereo
- opus_param_sprop_stereo
- opus_param_ptime
- opus_param_minptime
- opus_param_useinbandfec
- opus_param_usedtx
- systemd
- Linux カーネルチューニング
- IPv6 での動作について
- メタデータ
- 概要
- 接続時の認証メタデータ指定
- 認証ウェブフック成功時のメタデータ払い出し
- 認証ウェブフック成功時のイベントメタデータ払い出し
- 接続時のシグナリング通知メタデータ指定
- 認証ウェブフック成功時のシグナリング通知メタデータ払い出し
- シグナリング通知メタデータ拡張
- セッション生成時のセッションメタデータ払い出し
- 一括録画ファイルメタデータ archive-<connection_id>.json
- 分割録画ファイルメタデータ split-archive-<connection_id>_<index>.json
- 録画(セッション単位) の StartRecording API で指定するメタデータ
- 録画(セッション単位) のセッションウェブフック
session.created
で指定するメタデータ - レガシー録画の StartRecording API で指定するメタデータ
- センシティブデータ
- ウェブフック
- 概要
- ウェブフックリクエスト
- ウェブフックの設定
- ウェブフックのタイムアウト時間の指定
- ウェブフックリクエストなどの送信先サーバー証明書の検証に利用する OS 組み込みのルート CA 証明書について
- ウェブフックリクエスト送信先のサーバーがベーシック認証を利用している場合
- ウェブフックリクエスト送信先のサーバーが自己発行証明書などを利用している場合
- ウェブフックリクエスト送信先のサーバーが mTLS を利用している場合
- ウェブフックリクエスト送信先が IPv6 アドレスのみ対応している場合
connection.updated
とsession.updated
ウェブフック- ウェブフックの順番保証
- ウェブフックの警告メッセージ
- 認証ウェブフック
- 認証ウェブフック成功時の払い出し
- 概要
- 範囲表記
- audio の払い出し
- video の払い出し
- client_id の払い出し
- bundle_id の払い出し
- simulcast / simulcast_rid の払い出し
- simulcast_encodings の払い出し
- simulcast_codecs の払い出し
- spotlight_encodings の払い出し
- spotlight の払い出し
- data_channel_signaling の払い出し
- ignore_disconnect_websocket の払い出し
- data_channels の払い出し
- metadata の払い出し
- event_metadata の払い出し
- シグナリング経由での通知機能の払い出し
- シグナリング通知メタデータ拡張機能の初期値払い出し
- 録画ブロック機能の払い出し
- cluster_affinity の払い出し
- forwarding_filters の払い出し
- forwarding_filter の払い出し
- connection_lifetime の払い出し
- playout_delay_min_delay と playout_delay_max_delay の払い出し
- ipv4_address と ipv6_address の払い出し
- turn_fqdn 払い出し
- turn_tls_fqdn の 払い出し
- rtc_stats の払い出し
- user_agent_stats の払い出し
- audio_streaming_language_code の払い出し
- stats_exporter の払い出し
- turn_tcp_only / turn_tls_only の払い出し
- rtp_packet_loss_simulator_incoming / rtp_packet_loss_simulator_outgoing の払い出し
- シーケンス図
- セッションウェブフック
- イベントウェブフック
- 統計ウェブフック
- ウェブフックの型定義
- クラスター機能
- クラスター機能チュートリアル
- クラスター機能運用
- クラスター利用時のファイル操作に問題が発生した場合
- クラスターのレギュラーノード数
- クラスターのテンポラリーノード数
- 最大ノード数
- クラスター利用時のライセンス
- ポートの開放
- ノード間通信
- ノード間通信の暗号化
- テンポラリーノード機能の利用
- クラスターからの一時的な離脱
- 一時的に離脱したノードを含めるクラスターノード一覧
- クラスターからレギュラーノード情報の完全消去
- クラスターのローリングアップデート
- クラスターのローリングアップデート中の挙動
- Sora のバージョンダウン
- Sora のローリングアップデート失敗
- クラスター破綻からの再構築手順
- ノード名変更手順
- ロードバランサーの導入
- ログの出力
- クラスター構成情報ファイル
- クラスターからのレギュラーノードの完全消去について
- PurgeClusterNode API で完全消去したレギュラーノードの再度の参加
- クラスターから消去されたレギュラーノードを別クラスターに参加させたい場合
- ネットワーク障害やノード障害
- クラスター機能録画
- クラスター API
- 開発者ツール
- マルチストリーム機能
- サイマルキャスト機能
- サイマルキャストマルチコーデック機能
- スポットライト機能
- OBS Studio WHIP 対応機能
- OBS Studio WHEP 対応機能
- TURN 機能
- 録画機能 (セッション単位)
- レガシー録画機能
- メッセージング機能
- ICE コネクションステート機能
- モード機能
- ヘルスチェック機能
- メディア配信ワーカー機能
- 音声ストリーミング機能
- 概要
- 注意
- HTTP/2
- マルチストリームでのみ利用可能
- 音声ストリーミングの配信
- 音声ストリーミングのヘッダー
- 言語コードの指定
- セッションウェブフック経由での開始
- セッション破棄時の音声ストリーミング終了
- API 経由での開始と終了
- 自動開始/停止機能
- リトライ条件
- audio_streaming 関連の払い出し設定の組み合わせによる動作
- 1 コネクション 1 HTTP/2 コネクション
- プッシュ通知経由での戻り値の通知
- ウェブフック
- シグナリング通知経由で audio-streaming.failed をクライアントへ通知する
- 設定
- API
- Audio Streaming Gateway Suzu
- シーケンス図
- 転送フィルター機能
- マルチ転送フィルター機能
- プレイアウト遅延機能
- 統計エクスポーター機能