リリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2025.2.3

ホットフィックスアップデート

リリース:

2026 年 10 月 09 日

変更履歴

  • [ADD] RequestKeyFrame API に、キーフレームを要求する際に RID を指定できる rid パラメーターを追加しました
    • r0 / r1 / r2 を指定できます
  • [UPDATE] RequestKeyFrame API で rid を省略した場合、視聴者が受信している映像にキーフレームを要求するようにしました
    • クラスターリレー、録画、RTP 転送のいずれかがある場合は、配信者が送信しているすべての映像に要求します
    • 視聴者、クラスターリレー、録画、RTP 転送がいずれもない場合は要求を送信しません。この場合も API は成功を返します
  • [UPDATE] Chrome の仕様変更に対応し、サイマルキャスト利用時に、視聴中の映像や切り替え先の映像にキーフレームを個別に要求するようにしました
  • [FIX] TURN で特定の不正なメッセージを受け取った場合に、接続が切れることがある問題を修正しました
  • [FIX] DTLS で特定の不正なレコードを受信した場合に、接続が切れることがある問題を修正しました
    • 破棄した不正な DTLS レコードの数を示す統計 total_received_dtls_discarded を追加しました
  • [FIX] DTLS で特定の不正なレコードを受信し続けた場合に、メモリ使用量が増え続ける問題を修正しました
  • [FIX] サイマルキャスト利用時に、認証ウェブフックが "simulcast": true を払い出し、視聴する RID を払い出さない場合、接続時に指定した simulcast_request_rid / simulcast_rid が無視される問題を修正しました
  • [FIX] サイマルキャスト利用時に、帯域制限がない状態でも RID 自動切り替えが誤って発生することがある問題を修正しました
  • [FIX] 視聴開始時やクラスターリレーの再開時に、映像の表示が遅れることがある問題を修正しました
  • [FIX] クラスターリレーとサイマルキャストのスポットライト機能を併用した際に、リレー先の視聴者に表示される映像の切り替えが遅れることがある問題を修正しました

2025.2.2

ホットフィックスアップデート

リリース:

2026 年 09 月 09 日

変更履歴

  • [FIX] クラスターリレー機能利用時に、視聴接続がなくなったリレー先ノードへのメディア転送が継続し、長時間配信でリレー負荷が高まり続けることがある問題を修正しました
    • リレー先ノードで対象セッションの視聴接続がない状態が一定時間続くと、配信元ノードからのメディア転送を休止するようにしました
  • [FIX] 録画機能利用時に、映像より大幅に先行したタイムスタンプの音声を受信すると、音声フレームを無制限に保持してメモリ使用量が増え続けることがある問題を修正しました
    • 映像より先行した音声フレームの長さの合計が上限 (デフォルトは 10 分) を超えた場合に、先行量の大きい音声フレームを破棄するようにしました
    • 保持量の上限を超えたために破棄された音声フレームの数を示す録画統計 total_audio_linger_discarded を追加しました
  • [FIX] 録画機能利用時に、不完全な映像データを受信すると、録画ファイルの映像が乱れることがある問題を修正しました
    • Chrome 152 (libwebrtc m152) の挙動変更により、Sora がパケットの欠落や情報の不整合を含む不完全な映像データを受信することがあります
    • 末尾のパケットが欠落した映像フレームを、次の映像フレームの受信時に録画対象から除外するようにしました
    • 除外した不完全な映像フレームの数を示す録画統計 total_video_incomplete_frame_discarded を追加しました
  • [FIX] 録画機能利用時に、不完全な H.264 映像データを受信すると、保持すべき映像フレームが破棄され、キーフレームだけがまばらに残ることがある問題を修正しました
    • Chrome 152 (libwebrtc m152) の挙動変更により、Sora がパケットの欠落や情報の不整合を含む不完全な映像データを受信することがあります
    • STAP-A パケット内の映像データを基に破棄対象を判定し、保持すべき映像フレームを録画対象に含めるようにしました

2025.2.1

バグフィックスアップデート

リリース:

2026 年 04 月 13 日

変更履歴

2025.2.0

メジャーアップデート

リリース:

2025 年 12 月 17 日

ハイライト

  • 環境変数 SORA_* で sora.conf の設定を上書きできる機能を追加しました
  • 実験的機能として、クライアントから Sora の一部の HTTP API を DataChannel 経由で呼び出すことができる RPC 機能 を追加しました
  • 実験的機能として、視聴側の環境に合わせてサイマルキャストのストリームを自動で切り替える機能を追加しました
  • 実験的機能として、ノード単位での最大同時接続数制限機能を追加しました
  • 実験的機能として、認証ウェブフックで録画を開始する機能を追加しました

正式版

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

破壊的変更

  • マルチストリームにおける映像ビットレート自動シェアリング機能のデフォルト設定を 無効 に変更しました
  • 録画機能(セッション単位)のデフォルト出力フォーマットを MP4 に変更しました
    • sora.conf の default_recording_format のデフォルト値を webm から mp4 に変更しました
  • sora.conf に テスト API を利用するかどうかを指定する test_api を追加して、デフォルト無効にしました
    • 利用する場合は test_api を true に設定してください

廃止機能

  • レガシー録画関連 API を廃止しました
  • RTP ストリーム停止/再開 関連 API を廃止しました
  • 再送要求の頻度を利用した不安定レベルの通知機能を廃止しました
    • sora.conf の legacy_signaling_notify_network_status を廃止しました
  • sora.conf の turn を廃止し、 TURN 機能 を無効化することができなくなりました
  • sora.conf の whip_turn を廃止し、 WHIP 機能 の TURN のサポートを無効化することができなくなりました
  • sora.conf の whep_turn を廃止し、 WHEP 機能 の TURN のサポートを無効化することができなくなりました
  • sora.conf の ice_connection_state_disconnected_timeout を廃止しました
  • sora.conf の ice_connection_state_failed_timeout を廃止しました
  • sora.conf の av1 を廃止し、 AV1 のサポートを無効化することができなくなりました
  • sora.conf の h265 を廃止し、 H.265 のサポートを無効化することができなくなりました
  • sora.conf の devtools を廃止し、組み込みの開発ツールが利用できなくなりました
    • 開発ツールを利用する場合は NGINX のリバースプロキシやホスティングを利用してください
    • 詳細は 開発ツール をご覧ください
  • sora.conf の signaling_forwarding_filter を廃止しました

変更履歴

  • [CHANGE] multistream_auto_sharing_video_bit_rate をデフォルト無効にしました
  • [CHANGE] sora.conf に テスト API を利用するかどうかを指定する test_api を追加し、デフォルトはテスト API を無効にしました
    • テスト API を利用する場合は test_api を true に設定してください
  • [CHANGE] レガシー録画機能を廃止しました
    • レガシー録画機能廃止に伴い sora.conf の legacy_recording を廃止しました
  • [CHANGE] コネクションログの e2ee を廃止しました
    • E2EE 機能は 2024.2.0 で廃止されており、ログに出力しても意味がないため廃止しました
    • 認証ウェブフックの e2ee 項目は削除しておりません
  • [CHANGE] コネクションログの simulcast_encodings の出力条件を変更しました
    • サイマルキャストが有効でかつスポットライトが無効で、ロールが sendonly または sendrecv の場合に出力されるようになりました
  • [CHANGE] コネクションログの spotlight_encodings の出力条件を変更しました
    • サイマルキャストが無効でかつスポットライトが有効で、ロールが sendonly または sendrecv の場合に出力されるようになりました
  • [CHANGE] シグナリングメッセージの "type": "re-answer" の受信待ち受け時間を 30 秒に制限しました
  • [ADD] スポットライトシグナリング通知を送るかどうかを sora.conf の signaling_notify_spotlight で指定できるようになりました
    • デフォルトは true です
    • false に設定するとスポットライトシグナリング通知 spotlight.{focused, unfocused} が送信されなくなります
  • [ADD] コネクションログの項目を追加しました
    • id: コネクションログのユニーク ID
    • version: Sora のバージョン
    • label: Sora のラベル
    • node_name: Sora のノード名
  • [FIX] セッション単位での最大同時接続数制限機能 と セッション単位でのクライアント ID 重複時の既存接続の追い出し機能 を同時に有効にした場合に、最大同時接続数に達している状態で追い出しが発生した際、追い出しは成功するが最大同時接続数制限により接続が失敗する問題を修正しました
  • [FIX] 音声の SDP に a=rtcp-fb の transport-cc が付与されていない問題を修正しました
  • [FIX] サイマルキャストで特定の rid ストリームが復帰した際に、最初のキーフレームの SRTP 復号をスキップしてしまう問題を修正しました
  • [FIX] スポットライト機能利用時に spotlight_number を超える数のフォーカスが同時に当たり、かつ、次のアンフォーカスイベント発生まで、同時フォーカスが維持され続ける問題を修正しました
  • [FIX] スポットライト機能利用時に sora_conf-default_spotlight_focus_min_interval の値より sora_conf-default_spotlight_auto_unfocus_interval の値が短い場合に sora_conf-default_spotlight_auto_unfocus_interval が優先される問題を修正しました
  • [FIX] サイマルキャスト機能利用時に、認証成功時の払い出しで simulcast_rid を指定しても無視されてしまう問題を修正しました

role が recvonly の場合の codec_type や bit_rate などの指定を無視する変更

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

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

  • [CHANGE] role が recvonly の場合、シグナリングや認証成功時に以下の指定が無視されるようになりました
    • audio の codec_type 、 bit_rate 、 opus_params
    • video の codec_type 、 bit_rate 、 simulcast 、 vp9_params 、 av1_params 、 h264_params 、 h265_params
  • [CHANGE] role が recvonly の場合、connection ログに以下の情報が出力されなくなりました
    • audio の codec_type 、 bit_rate 、 opus_params
    • video の codec_type 、 bit_rate 、 simulcast 、 vp9_params 、 av1_params 、 h264_params 、 h265_params

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

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

例えば SORA_DEFAULT_VIDEO_BIT_RATE=500 という環境変数を指定することで sora.conf の default_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.jsonl に rpc_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 から rid に none を設定できるようになりました。これに伴い sora.conf の設定や、接続時、認証成功時の払い出し項目、API の名前をよりわかりやすくしたものを追加しました。

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

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

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

  • [CHANGE] ResetRtpStream API を非推奨にしました
  • [ADD] rid の切り替えをリクエストする RequestSimulcastRid API を追加しました
    • rid は r0 、 r1 、 r2 に加えて none が指定できるようになりました
    • RequestRtpStream API は 2027 年 12 月リリース予定の Sora にて廃止予定です
    • send_connection_id を sender_connection_id へ変更しています
    • recv_connection_id を receiver_connection_id へ変更しています
  • [ADD] サイマルキャスト視聴側がどの rid を視聴するかのデフォルトを指定する sora.conf の default_simulcast_request_rid を追加しました
    • デフォルトは r0 です
    • simulcast が true の場合にのみ有効です
    • sora.conf の default_simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です
  • [ADD] シグナリング接続時に視聴するストリームの rid を指定する simulcast_request_rid を追加しました
    • simulcast_request_rid には none 、 r0 、 r1 、 r2、 を指定できます
    • simulcast_request_rid は role が sendrecv または recvonly の場合にのみ有効です
    • simulcast が true の場合にのみ有効です
    • シグナリング接続時の simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です
  • [ADD] 認証成功時の払い出しにて視聴するストリームの rid を指定する simulcast_request_rid を追加しました
    • simulcast_request_rid には none 、 r0 、 r1 、 r2 を指定できます
    • simulcast_request_rid は role が sendrecv または recvonly の場合にのみ有効です
    • simulcast が true の場合にのみ有効です
    • 認証成功時の simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です
  • [ADD] 認証成功時の払い出しにて RPC 機能経由で 2025.2.0/RequestSimulcastRid で利用できる rid を指定する simulcast_rpc_rids を追加しました
    • デフォルトは未指定で、どれも指定できません
    • simulcast が true の場合にのみ有効です
    • "simulcast_rpc_rids": ["none", "r0", "r1"] のように指定します

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

これは実験的機能です

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

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

  • [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 の払い出し を払い出す場合は同時に simulcast を true で払い出す必要があります
    • 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 を追加しました
    • recording に true を指定すると録画が既に開始されていない場合は録画を開始します
    • recording に false を指定した場合は無視します
  • [ADD] 認証ウェブフックの戻りに recording に true を指定した際に利用できる録画用の項目を追加しました
    • 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_connections に true を指定するとセッション単位での最大同時接続数制限を無視して接続を許可します
  • [ADD] コネクションログ connection.jsonl に ignore_max_connections を追加しました
    • コネクションログの ignore_max_connections が true の場合、セッション単位の最大同時接続数制限を無視して接続が許可されたことを示します