リリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2025.1.0

メジャーアップデート

リリース:

2025 年 6 月 25 日

重要

Sora 2024.2.x から 2025.1.x への移行については 2024.2.x から 2025.1.x への移行 をご確認ください。

ハイライト

  • クラスターリレー機能のツリー化によりノードの負荷を分散できるようになりました

  • クラスターリレー機能が正式版になりました

    • クラスターアフィニティ機能やテンポラリーノード機能も正式版になりました

  • セッション単位で最大同時接続数を制限できる機能が正式版になりました

  • セッション単位でのクライアント ID 重複時の既存接続の追い出し機能を追加しました

  • 帯域推定機能を追加しました

  • メディア配信ワーカー自動スケール機能を追加しました

正式版

今回のリリースで以下の機能が実験的機能から正式版になりました。

破壊的変更

  • WHIP の TURN 機能をデフォルトで有効にしました

    • 2024 年 7 月リリースの OBS 30.2 より以前の OBS が接続できなくなります

    • 2025 年 12 月リリース予定の Sora にて WHIP の TURN 機能の設定 whip_turn を廃止し、TURN 機能を無効にできなくなります

  • WHEP の TURN 機能をデフォルトで有効にしました

    • WHEP の TURN 機能を無効にする設定は非推奨になりました

    • 2025 年 12 月リリース予定の Sora にて WHEP の TURN 機能の設定 whep_turn を廃止し、TURN 機能を無効にできなくなります

廃止情報

  • レガシーストリームを廃止しました

    • multistream 項目をウェブフック、ログ、API から削除しました

    • multistreamfalse にして接続した場合バリデーションエラーになります

  • ユーザーエージェント統計機能を廃止しました

    • 今後は RTC 統計機能をご利用ください

  • 統計エクスポーター機能を廃止しました

  • モード機能のウェブフック session.vanished を廃止しました

  • メディア配信ワーカー数を指定する media_publish_worker_number を廃止しました

    • ワーカーは自動でスケールするようになりました

    • 自動スケールの閾値は sora.confmedia_publish_worker_autoscale_threshold を利用してください

    • デフォルトは 50 で、50 接続単位でワーカーを増減させます

非推奨情報

  • 組み込み TURN 機能を無効にする turnfalse に設定することを非推奨にしました

    • 2025 年 12 月リリース予定の Sora にて組み込み TURN 機能を無効にする設定 turn を廃止し、組み込み TURN 機能を無効にできなくなります

  • セッション単位での最大同時接続数制限機能の trial_max_connections を非推奨にしました

    • 今後は max_connections をご利用ください

    • 2025 年 12 月リリース予定の Sora にて廃止します

  • sora.confice_connection_state_disconnected_timeout を非推奨にしました

  • sora.confice_connection_state_failed_timeout を非推奨にしました

  • AV1 を無効にする必要がないと判断したため、sora.confav1false にする設定を非推奨としました

    • 2025 年 12 月リリース予定の Sora にてこの設定は廃止し、AV1 の利用を無効化することはできなくなります

  • H.265 を無効にする必要がないと判断したため、sora.confh265false にする設定を非推奨としました

    • 2025 年 12 月リリース予定の Sora にてこの設定は廃止し、H.265 の利用を無効化することはできなくなります

  • WHIP の TURN 機能を無効にする whip_turnfalse に設定することを非推奨にしました

    • 2025 年 12 月リリース予定の Sora にて WHIP の TURN 機能の設定 whip_turn を廃止し、TURN 機能を無効にできなくなります

  • WHEP の TURN 機能を無効にする whep_turnfalse に設定することを非推奨にしました

    • 2025 年 12 月リリース予定の Sora にて WHEP の TURN 機能の設定 whep_turn を廃止し、TURN 機能を無効にできなくなります

  • WHIP の RFC 9725 化に伴い /whip-resource/:channel_id/:secret/ を非推奨にしました

    • NGINX の設定を resource から session に変更してください

    • 2025 年 12 月リリース予定の Sora にて廃止します

  • WHEP も WHIP に合わせて /whep-resource/:channel_id/:secret/ を非推奨にしました

    • NGINX の設定を resource から session に変更してください

    • 2025 年 12 月リリース予定の Sora にて廃止します

変更履歴

  • [CHANGE] スポットライト機能利用時に、フォーカスなしの音声転送の上限レートを指定する sora.confdefault_spotlight_unfocus_audio_rate_limit のデフォルト値を 2 から 5 に引き上げました

    • この変更により多人数で同時に発話があった際の音声がより快適になります

  • [CHANGE] スポットライト機能利用時に、フォーカスなしの音声転送の上限レートを指定する sora.confdefault_spotlight_unfocus_audio_rate_limit の上限を 20 に引き上げました

  • [CHANGE] RTP ヘッダー拡張 abs-send-time の利用を廃止しました

  • [FIX] セッション終了と DisconnectChannel API の実行が重なった場合、 SIGNALING-API-INTERNAL-ERROR エラーが出力されていたのを修正しました

  • [FIX] セッション終了と DisconnectClient API の実行が重なった場合、 SIGNALING-API-INTERNAL-ERROR エラーが出力されていたのを修正しました

  • [FIX] セッション終了と DisconnectConnection API の実行が重なった場合、 SIGNALING-API-INTERNAL-ERROR エラーが出力されていたのを修正しました

  • [FIX] 同じチャネル ID のセッション破棄と作成が連絡した場合、録画情報がセッションをまたいで使い回される問題を修正しました

  • [FIX] パケロスが多い状況で DataChannel が正常に動作せず、メッセージを送信しなくなる問題を修正しました

  • [FIX] パケロスが多い状況で OBS WHIP を利用して高いビットレートの配信を録画しようとしたときに、録画が正常に行われない問題を修正しました

  • [FIX] OBS WHIP 利用時に H.265 の録画開始後、すぐに終了すると録画が正常に行われない問題を修正しました

  • [FIX] SIGTERM で Sora を終了した際に、意図しないログが出力されてしまう問題を修正しました

  • [FIX] H.264 録画時に H.264 NAL Unit の SEI をスキップするように修正しました

  • [FIX] クラスター機能利用時にスポットライトのアンフォーカスの音声転送の上限レートが正しく設定されない問題を修正しました

  • [FIX] クラスターリレー機能利用時にスポットライトのアンフォーカス音声のペース制限の対象となるパケット判定が正しく行われない問題を修正しました

パッケージ

  • [UPDATE] RHEL 9 x86_64 版のパッケージを 9.6 へ更新しました

  • [ADD] RHEL 10 x86_64 版のパッケージを追加しました

sora.conf

  • [CHANGE] セッションウェブフック session.vanished 廃止に伴い sora.confignore_session_vanished_webhook を廃止しました

  • [CHANGE] sora.conf の設定コメントをドキュメントの URL のみに変更しました

  • [CHANGE] sora.conf のコメントの値をデフォルト値に変更しました

  • [CHANGE] sora.conf のコメントのデフォルト値が存在しない場合、 key = のみの表記に変更しました

  • [CHANGE] sora.conf の設定の並び順をアルファベット順に変更しました

  • [ADD] sora.conf にコネクションライフタイムのデフォルト値を指定する default_connection_lifetime を追加しました

    • デフォルトは未指定です

    • 最小は 0 ms で最大は 720 h です

レガシーストリーム廃止

  • [CHANGE] レガシーストリーム機能を廃止しました

    • multistream 項目をウェブフック、ログ、API から削除しました

    • multistreamfalse にして接続した場合バリデーションエラーになります

  • [CHANGE] レガシーストリーム機能廃止に伴い sora.conflegacy_stream を廃止しました

  • [CHANGE] レガシーストリーム機能廃止に伴い StartForwardingRtp API の connection_id を必須にしました

  • [CHANGE] レガシーストリーム機能廃止に伴い StopForwardingRtp API の connection_id を必須にしました

統計エクスポーター廃止

今後は 統計ウェブフック をご利用ください。

  • [CHANGE] 統計エクスポーター機能を廃止しました

    • sora.confdefault_stats_exporter を廃止しました

    • sora.confdefault_stats_collector_url を廃止しました

    • sora.confdefault_stats_exporter_number を廃止しました

    • sora.confdefault_stats_exporter_tls_fullchain_file を廃止しました

    • sora.confdefault_stats_exporter_tls_privatekey_file を廃止しました

    • sora.confdefault_stats_exporter_tls_verify_cacert_file を廃止しました

ユーザーエージェント統計機能廃止

ユーザーエージェント統計機能を廃止しました。 今後は RTC 統計機能をご利用ください。

レガシーシグナリングエラー廃止

  • [CHANGE] sora.conf のレガシーシグナリングを指定する legacy_signaling_error を廃止しました

    • log/connection_created_wait_timeout にログが出力されなくなりました

    • log/signaling_error.jsonl にシグナリングエラーログが出力されるようになりました

    • connection.failed ウェブフックは 認証成功時 かつ connection.created が送信されていない場合のみ送信されるようになりました

    • sora.jsonl に認証失敗ログが出力されなくなりました

    • sora.jsonl にシグナリング失敗ログが出力されなくなりました

データチャネル

  • [ADD] API やログで取得できるデータチャネル関連の統計情報を追加しました

    • total_enqueued_sent_chunk

      • SCTP 送信用キュー (sent_queue) に追加されたチャンク数

    • total_dequeued_sent_chunk

      • SCTP 送信用キュー (sent_queue) から取り出されたチャンク数

    • total_enqueued_outbound_chunk

      • SCTP 送信待ちキュー (outbound_queue) に追加されたチャンク数

    • total_dequeued_outbound_chunk

      • SCTP 送信待ちキュー (outbound_queue) から取り出されたチャンク数

    • total_increased_flight_size

      • SCTP フライトサイズの増加量の合計値 (バイト単位)

    • total_decreased_flight_size

      • SCTP フライトサイズの減少量の合計値 (バイト単位)

    • total_expired_t3_timer

      • SCTP T3 タイマーの満了回数

ウェブフック

  • [CHANGE] イベントウェブフック利用時のワーカー数を指定する event_webhook_worker_number のデフォルトを 5 から 100 に変更しました

  • [ADD] イベントウェブフック利用時にウェブフックがどのワーカーを利用するかを判断する event_webhook_worker_key を追加しました

    • デフォルトは channel_id です

    • channel_id の場合はチャネル ID 単位でイベントウェブフックは同一のウェブフックワーカーを利用します

      • 例えば channel_idsora に接続している全てのクライアントは同一ウェブフックを利用します

    • connection_id の場合はコネクション ID 単位でイベントウェブフックは同一のウェブフックワーカーを利用します

      • connection_id は接続毎にユニークなため、同じチャネルに接続しているコネクションでも、それぞれに割り当てられたウェブフックワーカーを利用します

  • [ADD] セッションウェブフック session.destroyed を送信しないようにする ignore_session_destroyed_webhook を追加しました

    • デフォルトは false です

    • この設定を true にすると session.destroyed を送信しなくなります

  • [ADD] セッションウェブフック recording.report を送信しないようにする ignore_recording_report_webhook を追加しました

    • デフォルトは false です

    • この設定を true にすると recording.report を送信しなくなります

  • [ADD] イベントウェブフック archive.available を送信しないようにする ignore_archive_available_webhook を追加しました

    • デフォルトは false です

    • この設定を true にすると archive.available を送信しなくなります

  • [ADD] イベントウェブフック split-archive.end を送信しないようにする ignore_split_archive_end_webhook を追加しました

    • デフォルトは false です

    • この設定を true にすると split-archive.end を送信しなくなります

  • [ADD] イベントウェブフック archive.failed を送信しないようにする ignore_archive_failed_webhook を追加しました

    • デフォルトは false です

    • この設定を true にすると archive.failed を送信しなくなります

ログ

  • [ADD] API ログ api.jsonlid を追加しました

    • id は Base32 化した UUIDv4 です

  • [ADD] event_webhook.jsonlconnection.updated を出力しなくする event_webhook_connection_updated_logsora.conf に追加しました

    • デフォルトは true です

    • この設定を false にすると event_webhook.jsonlconnection.updated を出力しなくなります

  • [ADD] session_webhook.jsonlsession.updated を出力しなくする session_webhook_session_updated_logsora.conf に追加しました

    • デフォルトは true です

    • この設定を false にすると session_webhook.jsonlsession.updated を出力しなくなります

映像コーデックパラメーター追加

  • [ADD] AV1 コーデックパラメーターに level_idx を指定できるようにしました

    • デフォルトは 5 です

    • 範囲は 0 から 31 の整数が指定できます

  • [ADD] AV1 コーデックパラメーターに tier を指定できるようにしました

    • デフォルトは 0 です

    • 範囲は 01 の整数が指定できます

  • [ADD] H.265 コーデックパラメーターに profile_id を指定できるようにしました

    • デフォルトは 1 です

    • 範囲は 0 から 31 の整数が指定できます

  • [ADD] H.265 コーデックパラメーターに tier_flag を指定できるようにしました

    • デフォルトは 0 です

    • 範囲は 01 の整数が指定できます

  • [ADD] H.265 コーデックパラメーターに tx_mode を指定できるようにしました

    • デフォルトは SRST です

    • SRSTMRSTMRMT が指定できます

グループ機能

これは実験的機能です

セッションをグルーピングする group_id をセッションウェブフック session.created の払い出しで指定できるようになりました。

  • [ADD] セッションウェブフック session.created の払い出しで group_id を指定できるようになりました

    • group_id は 1 バイト以上 255 バイト以下の文字列です

    • group_id は未指定の場合は session_id が入ります

  • [ADD] ListSessions API に group_id を指定できるようになりました

    • group_id を指定した場合は指定した group_id のセッションのみを返します

    • group_id はオプションです

    • group_id を指定しない場合は全てのセッションを返します

  • [ADD] session_id 項目を含むウェブフックのリクエストに group_id を含めるようにしました

  • [ADD] session_id 項目を含む API の戻り値に group_id も含めるようにしました

  • [ADD] session_id 項目を含むログに group_id を含めるようにしました

  • [ADD] session_id 項目を含む録画メタデータに group_id を含めるようにしました

注釈

クライアントへの送るシグナリングメッセージには group_id は含まれません。

注意

session.createdgroup_id を指定して、ウェブフックの戻り値を受け取るまでは group_idsession_id の値になります。

セッション単位での最大同時接続数制限機能

セッション単位での最大同時接続数制限機能を正式版としてリリースしました。

  • [ADD] session.created でセッション単位での最大同時接続数を制限する max_connections を払い出せるようになりました

    • 正式版リリースに伴い trial_max_connections は 2025 年 12 月リリース予定の Sora にて廃止します

      • trial_max_connections は廃止後には無視します

    • trial_max_connectionsmax_connections を同時に指定した場合は max_connections が優先されます

クラスターリレー機能でツリー構造の採用

今までのクラスターリレー機能は他のノードへの転送はクライアントが配信しているノードが担当していました。 この場合多くのノードにリレーが発生するとそのノードの負荷が高くなってしまいます。

そこで、リレーを Plumtree という分散アルゴリズムを利用したツリー構造を採用する事で、冗長なリレーを削減し、ノードの負荷分散を実現しました。

セッション単位でのクライアント ID 重複時の既存接続の追い出し機能

これは実験的機能です

今までのクライアント ID の重複を許可するのに加えて、 既存の同一クライアント ID の接続を破棄することをセッション単位で指定できるようになりました。

この仕組みはセッションウェブフック session.created の払い出しで、 duplicate_client_idevict を指定することで有効になります。

  • [ADD] sora.conf にクライアント ID が重複するコネクションが認証に成功した際の挙動を指定する default_duplicate_client_id を追加しました

    • デフォルトは allow です

    • allow は未指定と同じで、今まで通り重複を許容します

    • evict は既存の接続を破棄し、新規接続を受け入れます

  • [ADD] セッションウェブフック session.created の払い出しにセッション単位での重複するクライアント ID を持つコネクションが認証成功した際の挙動を指定する duplicate_client_id を払い出せるようになりました

    • duplicate_client_id には allow または evict を指定できます

    • 未指定は sora.confdefault_duplicate_client_id の値を利用します

    • allow は今まで通り重複を許容します

    • evict は既存の接続を破棄し、新規接続を受け入れます

  • [ADD] クライアント ID の重複によるコネクションを破棄した際 connection.destroyeddata.reason"duplicate_client_id" を含めるようにしました

    • この値はセッションウェブフック session.created の払い出しで duplicate_client_idevict を指定して既存接続を破棄した場合に data.reason に含まれます

統計機能

  • [ADD] 実験的機能として GetStatsReport に Sora 内部で発生した遅延の累積値 (マイクロ秒単位) total_sent_srtp_sfu_delay_us を追加しました

  • [ADD] 実験的機能として GetStatsConnection に Sora 内部で発生した遅延の累積値 (マイクロ秒単位) total_sent_rtp_sfu_delay_us を追加しました

  • [ADD] 実験的機能として GetStatsClient に Sora 内部で発生した遅延の累積値 (マイクロ秒単位) total_sent_rtp_sfu_delay_us を追加しました

  • [ADD] 実験的機能として GetStatsAllConnections に Sora 内部で発生した遅延の累積値 (マイクロ秒単位) total_sent_rtp_sfu_delay_us を追加しました

帯域推定機能

帯域推定機能を追加しました、様々な情報を利用し帯域推定を行います。

以下を参考にしています。

シグナリング通知 network.status に帯域推定結果を追加

これは実験的機能です

実験的機能としてシグナリング通知の ネットワークのシグナリング通知 に帯域推定結果を通知する機能を追加しました。 これは受信者の帯域推定結果を通知するもので、送信者の帯域推定結果は通知しません。 そのため rolesendrecv または recvonly の場合に有効になります。

  • [ADD] sora.conf に legacy_signaling_notify_network_status を追加しました

    • デフォルトは false です

    • この設定を true にするとシグナリング通知 network.status のフォーマットを 2024.2.x までと同様にします

    • この設定は 2025 年 12 月リリースの Sora にて廃止します

  • [ADD] sora.conf にシグナリング通知 network.status の通知間隔を設定する signaling_notify_network_status_interval を追加しました

    • デフォルトは 10 s です

    • 最小は 20 ms で、最大は 10 min です

  • [ADD] シグナリング通知 ネットワークのシグナリング通知estimated_bandwidth を追加しました

    • sora.conf の legacy_signaling_notify_network_statusfalse の場合に有効になります

    • この通知は role が sendrecv または recvonly の場合に通知します

    • 帯域推定の値が含まれます

  • [ADD] シグナリング通知 ネットワークのシグナリング通知previous_estimated_bandwidth を追加しました

    • sora.conf の legacy_signaling_notify_network_statusfalse の場合に有効になります

    • この通知は role が sendrecv または recvonly の場合に通知します

    • 前回通知時の帯域推定の値が含まれます

    • 初回の通知時は 0 が入ります

  • [ADD] シグナリング通知 ネットワークのシグナリング通知unix_timestamp_ms を追加しました

    • sora.conf の legacy_signaling_notify_network_statusfalse の場合に有効になります

    • この通知は role が sendrecv または recvonly の場合に通知します

    • Unix タイムのミリ秒が含まれます

  • [ADD] シグナリング通知 ネットワークのシグナリング通知total_sent_rtp_byte_size を追加しました

    • sora.conf の legacy_signaling_notify_network_statusfalse の場合に有効になります

    • この通知は role が sendrecv または recvonly の場合に通知します

    • 通知時の RTP (音声と映像) 送信合計バイトサイズが含まれます

  • [ADD] シグナリング通知 ネットワークのシグナリング通知previous_unix_timestamp_ms を追加しました

    • sora.conf の legacy_signaling_notify_network_statusfalse の場合に有効になります

    • この通知は role が sendrecv または recvonly の場合に通知します

    • 前回通知時の Unix タイムのミリ秒が含まれます

    • 初回の通知時は 0 が入ります

  • [ADD] シグナリング通知 ネットワークのシグナリング通知previous_total_sent_rtp_byte_size を追加しました

    • sora.conf の legacy_signaling_notify_network_statusfalse の場合に有効になります

    • この通知は role が sendrecv または recvonly の場合に通知します

    • 前回通知時の RTP (音声と映像) 送信合計バイトサイズが含まれます

    • 初回の通知時は 0 が入ります

ICE コネクションステート機能

メディア配信ワーカー自動スケール機能

メディア配信ワーカー機能のワーカーを自動で増減する仕組みを追加しました。

  • [CHANGE] sora.conf の配信ワーカー数を指定する media_publish_worker_number を廃止しました

  • [ADD] sora.conf に配信ワーカー数を自動で増減させる閾値を指定する media_publish_worker_autoscale_threshold を追加しました

    • デフォルトは 50 です

  • [ADD] メディア配信ワーカーに関する統計情報を追加しました

    • media_publish_worker.peak_count

      • その接続でこれまでに同時に起動した配信ワーカー数の最大値

    • media_publish_worker.total_started

      • その接続でこれまでに起動した配信ワーカーの総数

    • media_publish_worker.total_stopped

      • その接続でこれまでに停止した配信ワーカーの総数

    • media_publish_worker.total_unknown_subscriber

      • 配信ワーカーとの対応が存在しないサブスクライバー (受信側接続) の数

WHIP/WHEP 機能

WHIP が RFC 9725 として公開されたため、RFC への準拠を進めています。

  • [CHANGE] sora.confwhip_turnwhep_turn をデフォルト true に変更しました

  • [CHANGE] WHIP/WHEP 利用時に offer の SDP に a=sendrecv を指定できるように変更しました

  • [CHANGE] WHIP/WHEP 利用時にセッション URL に PATCH メソッドでアクセスした場合 501 ではなく 422 を返すように変更しました

  • [CHANGE] WHIP/WHEP 利用時にエンドポイントとセッション URL に GETHEAD メソッドでアクセスした場合、 405 ではなく 200 を返すように変更しました

  • [CHANGE] RFC でリソース URL がセッション URL と名前が変わったことにより Location ヘッダーでは /whip-session/:channel_id/:secret/ を払い出すように変更しました

    • 2025 年 12 月リリース予定の Sora にて /whip-resource/:channel_id/:secret/ は廃止します

  • [ADD] クラスター利用時に別のノードへのリダイレクトが発生した際に HTTP ステータスコード 307 を返すようにしました

    • OBS が HTTP ステータスコード 307 に対応していなかったため、Sora 2024.2.x まではノード間通信で認証処理を行うようにしていました

  • [ADD] WHIP/WHEP 利用時にエンドポイントとセッション URL に OPTIONS メソッドでアクセスした場合 Accept-Post ヘッダーで application/sdp を返すようにしました

TURN-UDP 利用時の認証エラー時のレートリミット

TURN-UDP 時に認証エラーが発生した場合にレートリミットを設けて、 サイレントディスカードする仕組みを追加しました。デフォルトで特に困ることはありません。

  • [ADD] GetStatsConnection API に TURN-UDP 利用時の認証エラー時のレートリミットを超えた回数 total_turn_udp_allocate_request_401_rate_limit_exceeded を追加しました

    • この値は TURN-UDP 利用時の認証エラー時のレートリミットを超えた回数を累積した値です

  • [ADD] sora.conf に TURN-UDP 利用時の認証エラー時のレートリミットウィンドウを指定する turn_udp_allocate_request_401_rate_limit_window を追加しました

    • デフォルトは 60 s です

    • 最小は 1 s で、最大は 60 s です

  • [ADD] sora.conf に TURN-UDP 利用時の認証エラー時のレートリミット回数を指定する turn_udp_allocate_request_401_rate_limit_count を追加しました

    • デフォルトは 60 です

    • 最小は 0 で、最大は 300 です

© Copyright 2025, Shiguredo Inc Created using Sphinx 8.2.3