リリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2025.2.0-canary

メジャーアップデート

リリース:

2025 年 12 月 17 日

重要

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

ハイライト

  • 環境変数 SORA_*sora.conf の設定を上書きできる機能を追加しました

  • 実験的機能として、クライアントから Sora の一部の HTTP API を DataChannel 経由で呼び出すことができる RPC 機能 を追加しました

  • 実験的機能として、視聴側の環境に合わせてサイマルキャストのストリームを自動で切り替える機能を追加しました

  • 実験的機能として、ノード単位での最大同時接続数制限機能を追加しました

  • 実験的機能として、認証ウェブフックで録画を開始する機能を追加しました

正式版

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

破壊的変更

  • マルチストリームにおける映像ビットレート自動シェアリング機能のデフォルト設定を 無効 に変更しました

  • 録画機能(セッション単位)のデフォルト出力フォーマットを MP4 に変更しました

    • sora.confdefault_recording_format のデフォルト値を webm から mp4 に変更しました

  • sora.confテスト API を利用するかどうかを指定する test_api を追加して、デフォルト無効にしました

    • 利用する場合は test_apitrue に設定してください

廃止機能

  • レガシー録画関連 API を廃止しました

  • RTP ストリーム停止/再開 関連 API を廃止しました

  • sora.confturn を廃止し、 TURN 機能 を無効化することができなくなりました

  • sora.confwhip_turn を廃止し、 WHIP 機能 の TURN のサポートを無効化することができなくなりました

  • sora.confwhep_turn を廃止し、 WHEP 機能 の TURN のサポートを無効化することができなくなりました

  • sora.confice_connection_state_disconnected_timeout を廃止しました

  • sora.confice_connection_state_failed_timeout を廃止しました

  • sora.confav1 を廃止し、 AV1 のサポートを無効化することができなくなりました

  • sora.confh265 を廃止し、 H.265 のサポートを無効化することができなくなりました

  • sora.confdevtools を廃止し、組み込みの開発ツールが利用できなくなりました

    • 開発ツールを利用する場合は NGINX のリバースプロキシやホスティングを利用してください

    • 詳細は 開発ツール をご覧ください

  • sora.conflegacy_signaling_notify_network_status を廃止しました

  • sora.confsignaling_forwarding_filter を廃止しました

変更履歴

  • [CHANGE] マルチストリームにおける映像ビットレート自動シェアリング機能 をデフォルト無効にしました

  • [CHANGE] sora.confテスト API を利用するかどうかを指定する test_api を追加し、デフォルトはテスト API を無効にしました

    • テスト API を利用する場合は test_apitrue に設定してください

  • [CHANGE] レガシー録画機能を廃止しました

    • レガシー録画機能廃止に伴い sora.conflegacy_recording を廃止しました

  • [CHANGE] コネクションログの e2ee を廃止しました

    • E2EE 機能は 2024.2.0 で廃止されており、ログに出力しても意味がないため廃止しました

    • 認証ウェブフックの e2ee 項目は削除しておりません

  • [CHANGE] コネクションログの simulcast の出力条件を変更しました

    • サイマルキャストが有効でかつスポットライトが無効で、ロールが sendonly または sendrecv の場合に出力されるようになりました

  • [CHANGE] コネクションログの spotlight_encodings の出力条件を変更しました

    • サイマルキャストが無効でかつスポットライトが有効で、ロールが sendonly または sendrecv の場合に出力されるようになりました

  • [CHANGE] シグナリングメッセージの "type": "re-answer" の受信待ち受け時間を 30 秒に制限しました

  • [ADD] スポットライトシグナリング通知を送るかどうかを sora.confsignaling_notify_spotlight で指定できるようになりました

    • デフォルトは true です

    • false に設定するとスポットライトシグナリング通知 spotlight.{focused, unfocused} が送信されなくなります

  • [ADD] コネクションログの項目を追加しました

    • id: コネクションログのユニーク ID

    • version: Sora のバージョン

    • label: Sora のラベル

    • node_name: Sora のノード名

  • [FIX] セッション単位での最大同時接続数制限機能セッション単位でのクライアント ID 重複時の既存接続の追い出し機能 を同時に有効にした場合に、最大同時接続数に達している状態で追い出しが発生した際、追い出しは成功するが最大同時接続数制限により接続が失敗する問題を修正しました

  • [FIX] 音声の SDP に a=rtcp-fbtransport-cc が付与されていない問題を修正しました

  • [FIX] サイマルキャストで特定の rid ストリームが復帰した際に、最初のキーフレームの SRTP 復号をスキップしてしまう問題を修正しました

  • [FIX] スポットライト機能利用時に spotlight_number を超える数のフォーカスが同時に当たり、かつ、次のアンフォーカスイベント発生まで、同時フォーカスが維持され続ける問題を修正しました

  • [FIX] スポットライト機能利用時に default_spotlight_focus_min_interval の値より default_spotlight_auto_unfocus_interval の値が短い場合に default_spotlight_auto_unfocus_interval が優先される問題を修正しました

  • [FIX] サイマルキャスト機能利用時に、認証成功時の払い出しで simulcast_rid を指定しても無視されてしまう問題を修正しました

rolerecvonly の場合の codec_typebit_rate などの指定を無視する変更

マルチストリーム機能のみの提供になっても、 Sora 2025.1.0 で廃止したレガシーストリームとの互換性を維持するために、 rolerecvonly の場合でもシグナリングや認証成功時の払い出しで、 codec_typebit_rate などの指定ができていました。

Sora 2025.2.0 からは、下記のように codec_typebit_rate などを指定したとしても無視する仕様に変更しました。

  • [CHANGE] rolerecvonly の場合、シグナリングや認証成功時に以下の指定が無視されるようになりました

    • audiocodec_typebit_rateopus_params

    • videocodec_typebit_ratesimulcastvp9_paramsav1_paramsh264_paramsh265_params

  • [CHANGE] rolerecvonly の場合、connection ログに以下の情報が出力されなくなりました

    • audiocodec_typebit_rateopus_params

    • videocodec_typebit_ratesimulcastvp9_paramsav1_paramsh264_paramsh265_params

環境変数による sora.conf の設定上書き機能

環境変数にて SORA_<設定項目名> を指定することで sora.conf の設定を上書きできる機能を追加しました。

例えば SORA_DEFAULT_VIDEO_BIT_RATE=500 という環境変数を指定することで sora.confdefault_video_bit_rate の設定を上書きできます。もし設定が default_video_bit_rate = 300 であっても、Sora は起動時に環境変数の値を優先して 500 として動作します。

  • [ADD] 環境変数にて SORA_<設定項目名> を指定することで sora.conf の設定を上書きできるようになりました

詳細は 環境変数による設定上書き機能 をご確認ください。

RPC 機能

これは実験的機能です

クライアントから、Sora の一部の HTTP API をデータチャネル経由で呼び出すことができる RPC 機能を追加しました。 この機能を利用するにはデータチャネルシグナリングを有効にする必要があります。

  • [ADD] sora.conf に RPC 機能を指定する data_channel_rpc を追加しました

    • デフォルトは true です

  • [ADD] 認証成功時の払い出しに、利用できる RPC メソッドの一覧を指定する rpc_methods を追加しました

    • "rpc_methods": ["2025.2.0/RequestSimulcastRid"] のように指定します

    • 未指定または空リスト [] の場合は RPC 機能を利用できません

  • [ADD] シグナリングメッセージ "type": "offer" に認証成功時に払い出した rpc_methods が含まれるようになりました

  • [ADD] connection.jsonlrpc_methods が含まれるようになりました

  • [ADD] メタデータ拡張機能の PutSignalingNotifyMetadata API を RPC 機能で利用できるようになりました

  • [ADD] メタデータ拡張機能の PutSignalingNotifyMetadataItem API を RPC 機能で利用できるようになりました

  • [ADD] サイマルキャスト機能の RequestSimulcastRid API を RPC 機能で利用できるようになりました

  • [ADD] スポットライト機能の RequestSpotlightRid API を RPC 機能で利用できるようになりました

  • [ADD] スポットライト機能の ResetSpotlightRid API を RPC 機能で利用できるようになりました

詳細は RPC 機能 をご確認ください。

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

これは実験的機能です

  • [ADD] クライアント ID 重複時の既存接続の追い出し機能が有効になっているセッションにおいて、追い出される対象の既存のコネクションが存在する場合に、そのクライアントの ice_connection_state を認証ウェブフックに含めるようになりました

    • シグナリング接続時に、その接続と重複した client_id が指定されている追い出し対象のコネクションがすでに存在する場合にのみ ice_connection_state が含まれます

サイマルキャスト新機能追加に関する設定項目名と API 名の変更

Sora 2025.2.0 から ridnone を設定できるようになりました。これに伴い sora.conf の設定や、接続時、認証成功時の払い出し項目、API の名前をよりわかりやすくしたものを追加しました。

Sora 2025.2.0 より前の古い設定項目名や API 名も引き続き利用できますが、2027 年 12 月リリース予定の Sora にて廃止予定です。新しい設定項目名や API 名をご利用ください。

古い設定項目や API では ridnone を指定することはできません。

ResetRtpStream API については活用場所が難しく、 RequestSimulcastRid で代替できることから 2026 年 12 月にて廃止することにしました。

  • [CHANGE] ResetRtpStream API を非推奨にしました

  • [ADD] rid の切り替えをリクエストする RequestSimulcastRid API を追加しました

    • ridr0r1r2 に加えて none が指定できるようになりました

    • RequestRtpStream API は 2027 年 12 月リリース予定の Sora にて廃止予定です

    • send_connection_idsender_connection_id へ変更しています

    • recv_connection_idreceiver_connection_id へ変更しています

  • [ADD] サイマルキャスト視聴側がどの rid を視聴するかのデフォルトを指定する sora.confdefault_simulcast_request_rid を追加しました

    • デフォルトは r0 です

    • simulcasttrue の場合にのみ有効です

    • sora.confdefault_simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です

  • [ADD] シグナリング接続時に視聴するストリームの rid を指定する simulcast_request_rid を追加しました

    • simulcast_request_rid には noner0r1r2、 を指定できます

    • simulcast_request_ridrolesendrecv または recvonly の場合にのみ有効です

    • simulcasttrue の場合にのみ有効です

    • シグナリング接続時の simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です

  • [ADD] 認証成功時の払い出しにて視聴するストリームの rid を指定する simulcast_request_rid を追加しました

    • simulcast_request_rid には noner0r1r2 を指定できます

    • simulcast_request_ridrolesendrecv または recvonly の場合にのみ有効です

    • simulcasttrue の場合にのみ有効です

    • 認証成功時の simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です

  • [ADD] 認証成功時の払い出しにて RPC 機能経由で 2025.2.0/RequestSimulcastRid で利用できる rid を指定する simulcast_rpc_rids を追加しました

    • デフォルトは未指定で、どれも指定できません

    • simulcasttrue の場合にのみ有効です

    • "simulcast_rpc_rids": ["none", "r0", "r1"] のように指定します

サイマルキャスト機能利用時の視聴環境に合わせたストリーム自動切り替え機能

これは実験的機能です

実験的機能として、サイマルキャスト機能に Sora 側で視聴環境に合わせてストリームを自動で切り替える仕組みを追加しました。

例えば、 ridr2 のストリームが高ビットレート、 r1 のストリームが低ビットレートの場合、視聴環境が悪化した場合に Sora が自動で r2 から r1 に切り替えます。

重要

simulcast_auto_rids が指定された場合、 Sora 2025.2.0 ではまだ 視聴環境が悪化した場合に、ビットレートが低い映像に自動的に下げる機能 のみになります。 視聴環境が改善した場合にビットレートが高い映像に自動的に上げる機能 は 2026 年リリース予定の Sora にて対応予定です。

  • [ADD] sora.conf にサイマルキャスト機能利用時に、視聴環境に合わせて Sora が自動で配信する rid ストリームを切り替える default_simulcast_auto_rids を追加しました

    • デフォルトは未指定で、自動では切り替わりません

    • default_simulcast_auto_rids はサイマルキャストが有効な場合のみ利用できます

    • default_simulcast_auto_rids = r0, r1 のように複数指定することができます

    • 指定した rid の中で視聴環境に合わせて Sora が自動で切り替えます

  • [ADD] 認証成功時の払い出しに、サイマルキャスト利用時に、視聴側の環境に合わせて配信する rid ストリームを Sora が自動で切り替える simulcast_auto_rids の払い出し を追加しました

    • デフォルトは default_simulcast_auto_rids の値です

    • simulcast_auto_rids の払い出し を払い出す場合は同時に simulcasttrue で払い出す必要があります

    • rids には ["r0", "r1"] のように複数指定できます

    • 指定した rid の中で視聴環境に合わせて Sora が自動で切り替えます

    • 空リスト [] で指定した場合は自動で切り替わらなくなります

  • [ADD] サイマルキャスト機能利用時に視聴側の環境に合わせて Sora が自動で配信する rid ストリームを切り替えるように変更できる ChangeSimulcastAuto API を追加しました

    • デフォルトは default_simulcast_auto_rids の値です

    • ChangeSimulcastAuto API はサイマルキャストが有効な場合のみ利用できます

    • rids には ["r0", "r1"] のように複数指定できます

    • 指定した rid の中で視聴環境に合わせて Sora が自動で切り替えます

    • 空リスト [] を指定した場合、自動切り替えは無効になります

  • [ADD] sora.conf にサイマルキャスト機能利用時に simulcast_auto_rids を指定した際、自動で切り替わる最小の間隔を秒数で指定します simulcast_auto_min_switch_interval を追加しました

    • デフォルトは 5 s です

    • 範囲は 1..300 s です

  • [ADD] 統計情報にサイマルキャスト機能利用時に視聴環境に自動で切り替わる simulcast_auto を追加しました

    • target_sender_count

      • サイマルキャスト rid 切り替えの対象となった送信ストリーム数

    • total_switched

      • サイマルキャスト rid が自動で切り替わった回数

    • total_up_trend

      • 帯域推定が上昇傾向だった際に切り替えをスキップした回数

    • total_history_not_ready

      • 履歴サイズが十分でないために切り替えをスキップした回数の累計値

サイマルキャスト機能利用時の rid 切り替わり時のシグナリング通知機能

これは実験的機能です

今まで視聴側で simulcast の rid が切り替わったことを知る手段がありませんでした。 今回、サイマルキャストの rid が切り替わった際にシグナリング通知が送信される機能を追加しました。

  • [ADD] サイマルキャスト機能で rid が切り替わった際に送信するシグナリング通知 simulcast.switched を追加しました

  • [ADD] sora.conf にサイマルキャストの rid が切り替わった際にシグナリング通知を送信するかどうかを指定する signaling_notify_simulcast_switched を追加しました

    • デフォルトは true です

{
  "type": "notify",
  "timestamp": "string",
  "event_type": "simulcast.switched",
  "sender_connection_id": "string",
  "priority": "higher | lower",
  "trigger": "api | rpc | sender | receiver",
  // simulcast_rpc_rids を指定した場合に含まれます
  // 未指定の場合は "rpc_rids": [] になります
  "rpc_rids": ["none", "r0", "r1", "r2"],
  // simulcast_auto_rids を指定した場合に含まれます
  // 未指定の場合は "auto_rids": [] になります
  "auto_rids": ["none", "r0", "r1", "r2"],
  "request_rid": "none | r0 | r1 | r2",
  "current_rid": "none | r0 | r1 | r2",
  "previous_rid": "none | r0 | r1 | r2",
}

認証ウェブフック経由での録画開始機能

これは実験的機能です

録画はセッションウェブフック session.created のタイミングで開始するか StartRecording API を呼び出すことで開始できますが、ウェブフックを利用して途中から録画を開始する事ができませんでした。

今回、実験的機能として認証ウェブフックの戻り値で録画を開始できる仕組みを追加しました。

  • [ADD] sora.conf に認証ウェブフック成功時の払い出しで録画を開始できるかどうかを指定する auth_webhook_recording を追加しました。

  • [ADD] 認証ウェブフックの戻り値に recording を追加しました

    • recordingtrue を指定すると録画が既に開始されていない場合は録画を開始します

    • recordingfalse を指定した場合は無視します

  • [ADD] 認証ウェブフックの戻りに recordingtrue を指定した際に利用できる録画用の項目を追加しました

    • recording_expire_time

    • recording_split_only

    • recording_split_duration

    • recording_metadata

    • recording_format

    • これらの設定の詳細については 認証ウェブフック をご確認ください。

ノード単位での最大同時接続数制限機能

これは実験的機能です

Sora は今までノード単位の同時接続数はライセンスでのみ制限をしていましたが、 低スペックのインスタンスを一時的に利用する際、ノード単位での最大同時接続数を制限したいという要望がありました。

今回 sora.conf にてノード単位での接続数を制限する仕組みを追加しました。

この機能を利用することで、例えば、ライセンスでは 300 同時接続まで許可されているが、ノード単位で 100 同時接続までに制限するといった運用が可能になります。

  • [ADD] sora.conf にノード単位での最大同時接続数を制限する max_connections を追加しました

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

    • 0 から 10000 までの値を指定できます

    • この値をチェックする前にライセンスによる最大同時接続数をチェックするため、ライセンスによる最大同時接続数を超えた接続はできません

セッション単位での最大同時接続数を無視する機能

これは実験的機能です

セッション作成時の max_connections にてセッション単位の最大同時接続数を制限できますが、 特定のクライアントは、このセッション単位の最大同時接続数の制限を無視して接続を許可したい場合があります。

今回、認証成功時の払い出しでセッション単位の最大同時接続数を無視して接続を許可する仕組みを追加しました。

  • [ADD] 認証成功時の払い出しにて ignore_max_connections を指定できるようになりました

    • セッション単位の最大同時接続数制限が指定されている場合に有効になります

    • ignore_max_connectionstrue を指定するとセッション単位での最大同時接続数制限を無視して接続を許可します

  • [ADD] コネクションログ connection.jsonlignore_max_connections を追加しました

    • コネクションログの ignore_max_connectionstrue の場合、セッション単位の最大同時接続数制限を無視して接続が許可されたことを示します

© Copyright 2025, Shiguredo Inc Created using Sphinx 9.0.4