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 でレガシー録画機能を廃止します。
移行については レガシー録画機能から新しい録画機能への移行 をご確認ください。
廃止については レガシー録画機能の廃止 をご確認ください。
レガシー録画機能をご利用のお客様は、新しい録画機能へ移行をご検討ください。
機能や移行に関してのご不明点などがあれば、サポートまでお問い合わせください。
Ubuntu 24.04 版の提供開始について¶
Sora 2024.1.0 から Ubuntu 24.04 版の提供を開始しました。
Ubuntu 24.04 版への切り替えをご希望のお客様はサポートまでご連絡ください。
古いドキュメントについて¶
古いドキュメント をご確認ください。
このドキュメントについて¶
このドキュメントは WebRTC SFU Sora 2025.1.0 に対応しています。
- 2024.2.x から 2025.1.x への移行
- レガシー録画機能から新しい録画機能 (セッション単位) への移行
- リリースノート
- 用語集
- 既知の問題
- 実験的機能
- 非推奨機能
- 廃止機能
- 概要
- Ubuntu 20.04 対応
- CentOS 7 対応
- 統計エクスポーター機能の廃止
- ユーザーエージェント統計の廃止
- legacy_signaling_error の廃止
- mode_session_vanished の廃止
- レガシーストリーム(非マルチストリーム)機能の廃止
- 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_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
- default_recording_mp4_pli_interval
- 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
- default_connection_lifetime
- 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
- 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
- ignore_turn_five_tuple
- 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 の払い出し
- シーケンス図
- セッションウェブフック
- イベントウェブフック
- 統計ウェブフック
- ウェブフックの型定義
正式 API
非推奨・廃止 API
クラスター機能
- クラスター機能
- クラスター機能チュートリアル
- クラスター機能運用
- クラスター利用時のファイル操作に問題が発生した場合
- クラスターのレギュラーノード数
- クラスターのテンポラリーノード数
- 最大ノード数
- クラスター利用時のライセンス
- ポートの開放
- ノード間通信
- ノード間通信の暗号化
- テンポラリーノード機能の利用
- クラスターからの一時的な離脱
- 一時的に離脱したノードを含めるクラスターノード一覧
- クラスターからレギュラーノード情報の完全消去
- クラスターのローリングアップデート
- クラスターのローリングアップデート中の挙動
- 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
- シーケンス図
- 転送フィルター機能
- マルチ転送フィルター機能
- プレイアウト遅延機能
非推奨・廃止機能
SDK
ツール
libwebrtc