リリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2024.2.0-canary¶
メジャーアップデート
- リリース予定:
2024 年 12 月 11 日
ハイライト¶
MP4 形式での録画アーカイブファイルの出力に対応しました
H.265 コーデックでの録画アーカイブファイルの出力に対応しました
実験機的機能として転送フィルター機能で複数のフィルターを設定できるマルチ転送フィルター機能を追加しました
メッセージング機能のメッセージに送信先の connection_id をヘッダーとして付与する機能を追加しました
session.created の払い出しにセッションの同時接続数を制限する session-webhook-max_connections を追加しました
正式版¶
今回のリリースで以下の機能は実験的機能から正式版になりました。
破壊的変更¶
セッションの同時接続数が
0
の際にmultistream
とspotlight
が異なる新規接続が来た場合にエラーになるように変更しましたクライアントに通知されるエラーメッセージを改善しました
詳細は シグナリングエラー時のエラーメッセージの改善 をご確認ください
転送フィルターの認証成功時の払い出しエラーが発生した場合、接続が失敗するようになりました
転送フィルターのセッション生成時の払い出しエラーが発生した場合、セッションが破棄されるようになりました
session_created_response_validate_warning_as_error が
false
の場合でもエラーとなりセッションを破棄します
廃止情報¶
JoinCluster API を廃止しました
今後は同じ機能を持つ RegisterClusterNode API をご利用ください
E2EE 機能を廃止しました
将来的に Message Layer Security (MLS) を利用した E2EEの機能を提供予定です
ウェブフックに含まれる
e2ee
項目は予約項目として常にfalse
が含まれますsora.conf
からe2ee
項目を廃止しました
sora.conf
の移行用の設定legacy_auth_webhook_log
設定を廃止しましたsora.conf
の移行用の設定legacy_event_webhook_connection_destroyed_reason
設定を廃止しました
非推奨情報¶
転送フィルターを認証成功時やセッション生成時の払い出しで指定できる
forwarding_filter
を非推奨にしました代わりに複数の転送フィルターを指定できる
forwarding_filters
をご利用くださいforwarding_filter
は 2025 年 12 月リリース予定の Sora で廃止します
転送フィルターをシグナリング接続時に指定できる signaling_forwarding_filter を非推奨にしました
代わりに複数の転送フィルターを指定できる signaling_forwarding_filters をご利用ください
signaling_forwarding_filter は 2025 年 12 月リリース予定の Sora で廃止します
session.vanished を非推奨にしました
代わりに GetStatsReport API の
total_ongoing_connections
をご利用ください。session.vanished は 2025 年 6 月リリース予定の Sora にて廃止します
RTP ストリーム停止/再開 API を非推奨にしました
代わりに 転送フィルター をご利用ください
RTP ストリーム停止/再開 API は 2025 年 12 月リリース予定の Sora にて廃止します
変更履歴¶
[CHANGE]
sora.conf
の legacy_recording のデフォルトをtrue
からfalse
に変更しました[CHANGE]
spotlight.focused
とspotlight.unfocused
イベントウェブフックの送信を行わない場合はログを書き込まないよう変更しました[CHANGE] ウェブフックを送信を行わない (ignore) の設定した場合でも以下のウェブフックはログを出力するように変更しました
recording.started
セッションウェブフックsession.updated
セッションウェブフックsession.vanished
セッションウェブフックconnection.failed
イベントウェブフックlegacy_signaling_error が
true
かつ ignore_connection_failed_webhook がtrue
の場合、 ログを出力しません
archive.started
イベントウェブフックrecording.started
イベントウェブフック
[CHANGE]
sora.conf
の default_h264_param_profile_level_id のデフォルト値を42e01f
から42e02a
へ変更しましたChrome / Edge がデフォルト値を変更した事への追従です
[CHANGE]
sora.conf
の移行用の設定legacy_auth_webhook_log
設定を廃止しました[CHANGE]
sora.conf
の移行用の設定legacy_event_webhook_connection_destroyed_reason
設定を廃止しました[CHANGE]
E2EE
機能を廃止しましたsora.conf
のe2ee
を廃止しましたウェブフックに含まれる
e2ee
は常にfalse
が含まれます
[UPDATE] ListConnections API の戻り値に
node_name
を追加しました[UPDATE] ListChannelConnections API の戻り値に
node_name
を追加しました[UPDATE]
sora.conf
の connection_created_wait_timeout の最小値を1 s
から0 s
へ変更しました挙動確認などで意図的にエラーを発生させられるように変更しました
[UPDATE] テスト API がクラスターで利用できるようになりました
[ADD]
"type": "offer"
メッセージにaudio
とvideo
関連項目を追加しましたaudio
は必ず含まれますaudio_codec_type
はオプションで、audio
がtrue
の場合に含まれますaudio_bit_rate
はオプションで、audio
がtrue
かつaudio_bit_rate
が指定された場合に含まれますvideo
は必ず含まれますvideo_codec_type
はオプションで、video
がtrue
の場合に含まれますvideo_bit_rate
はオプションで、video
がtrue
の場合に含まれます
[ADD] サイマルキャスト機能の設定項目に
scaleResolutionDownTo
を追加しました[ADD]
connection.jsonl
にsimulcast_encodings
とsimulcast_codecs
項目を追加しましたsimulcast
のみtrue
の場合はsimulcast_encodings
を出力しますsimulcast
とsimulcast_multicodec
がtrue
の場合はsimulcast_codecs
も出力します
[FIX] Safari Technology Preview や Chrome Canary で H.265 の配信ができない問題を修正しました
[FIX] コネクションの切断が発生しない録画失敗のログレベルを
error
からwarning
に修正しました[FIX] ウェブフック送信時にボディを待つ時間に webhook_response_timeout が反映されていない問題を修正しました
[FIX] ウェブフック送信時に TCP コネクションの確立を待つ時間に webhook_connect_timeout が反映されていない問題を修正しました
[FIX] 録画ファイル書き込みに失敗するとクラッシュログが出力されることがある問題を修正しました
[FIX] GetStatsReport API のウェブフック統計情報はウェブフックを送信したときのみカウントされるように修正しました
[FIX] GetStatsReport API のウェブフック統計情報が正しくカウントされない問題を修正しました
total_ignored_session_webhook
が実際よりも少なくカウントされていた問題を修正しましたaudio-streaming.started と audio-streaming.stopped のウェブフック統計情報が
total_ignored_XXX_webhook
とtotal_successful_XXX_webhook
の両方がカウントされていた問題を修正しました
[FIX] サイマルキャスト機能利用時に
simulcast_encodings
にactive
を未指定だと接続が失敗する問題を修正しました
セッション単位での同時接続数制限機能¶
これは実験的機能です
認証ウェブフックでの接続制限はウェブフックが並列で送信されるため、厳密な同時接続制限ができませんでした。 この機能ではセッション単位での同時接続数を制限することで、厳密に同時接続制限ができるようになります。
この機能を利用することで認証に成功した場合でも、セッションに接続できない場合があります。
その場合は、クライアントには SERVICE-UNAVAILABLE
が通知されます。
この機能は実験的機能のトライアル中です。 将来的にロール単位やクライアント ID 単位での接続制限機能などを加えていく予定です。
正式版と明確に区別するため trial_
を prefix として付与しています。
[ADD] session.created の払い出しにセッションの同時接続数を制限する trial_max_connections を追加しました
デフォルトは未指定で制限がない状態です
指定できる範囲は 0..10000 です
trial_max_connections
が0
の場合は誰も接続することができなくなりますセッションが同時接続数制限に達した場合はクライアントに
SERVICE-UNAVAILABLE
を通知します
統計情報の追加¶
[ADD] GetStatsReport API に SRTP パケットの統計情報を追加しました
total_received_srtp
受信した SRTP パケットの合計数
total_received_srtp_byte_size
受信した SRTP パケットの合計バイト数
total_sent_srtp
送信した SRTP パケットの合計数
total_sent_srtp_byte_size
送信した SRTP パケットの合計バイト数
total_decrypted_srtp
復号した SRTP パケットの合計数
total_decrypted_srtp_byte_size
復号した SRTP パケットの合計バイト数
[ADD] GetStatsReport API に DataChannel で利用している SCTP パケットの統計情報を追加しました
total_received_sctp
DataChannel で受信した SCTP パケットの合計数
total_received_sctp_byte_size
DataChannel で受信した SCTP パケットの合計バイト数
total_sent_sctp
DataChannel で送信した SCTP パケットの合計数
total_sent_sctp_byte_size
DataChannel で送信した SCTP パケットの合計バイト数
[ADD] GetStatsReport API に無視されたウェブフックの統計情報を追加しました
total_ignored_session_webhook
無視されたセッションウェブフックの合計数
total_ignored_event_webhook
無視されたイベントウェブフックの合計数
total_ignored_stats_webhook
無視された統計ウェブフックの合計数
Sora 側からのシグナリング切断時のクライアントへの通知改善¶
[CHANGE] WebSocket シグナリング利用時にメッセージサイズが大きすぎる場合の
code
を4490
から1009
に変更しましたメッセージサイズの最大は 5 MiB です
WebSocket の仕様に合わせました
[CHANGE] WebSocket シグナリング利用時に Sora 側からのクライアントへの通知を改善しました
正常切断
code
は1000
ですreason
には切断理由が含まれますTYPE-DISCONNECT
DISCONNECTED-API
LIFETIME-EXPIRED
SESSION-DESTROYED
異常切断
異常が発生して Sora 側から切断した場合は
code
に4490
が含まれますreason
には切断理由が含まれます
[ADD]
sora.conf
に data_channel_signaling_close_message を追加しましたデフォルトは
false
ですtrue
の場合は Sora からコネクションを切断する際、 DataChannel シグナリングが有効かつ、ignore_disconnect_websocket
がtrue
な場合signaling
ラベルに"type": "close"
メッセージを送信しますfalse
の場合は今まで通り、 DataChannel を閉じます"type": "close"
メッセージにはcode
とreason
が含まれます正常切断
切断 API や期限切れで Sora 側から切断した場合は
code
に1000
が含まれますreason
には切断理由が含まれますLIFETIME-EXPIRED
SESSION-DESTROYED
DISCONNECTED-API
異常切断
異常が発生して Sora 側から切断した場合は
code
に4490
が含まれますreason
には切断理由が含まれます
[ADD]
sora.conf
に signaling_normal_close_reason を追加しましたデフォルトは
true
ですfalse
を指定した場合、正常切断時のreason
が空文字になりますfalse
を指定した場合でも異常切断時はreason
は含まれます
シグナリングエラーの改善¶
[ADD]
sora.conf
にレガシーシグナリングエラーを有効にする設定を追加しました legacy_signaling_error を追加しましたデフォルトは
false
ですこの設定は移行用で 2025 年 6 月に廃止します
この設定は 2024.1.x までの Sora との後方互換性を維持するための機能です
false
の場合はlog/connection_created_wait_timeout
にログが出力されなくなりましたfalse
の場合はlog/signaling_error.jsonl
にシグナリングエラーログが出力されるようになりましたfalse
の場合はconnection.failed
ウェブフックは 認証成功時 かつ connection.created が送信されていない場合のみ送信されるようになりましたfalse
の場合はsora.jsonl
に認証失敗ログが出力されなくなりましたfalse
の場合はsora.jsonl
にシグナリング失敗ログが出力されなくなりましたtrue
の場合は今まで通りignore_connection_failed_webhook
がtrue
の場合、event_webhook.jsonl
にシグナリングログが出力されません
[CHANGE] クライアントに通知するエラーメッセージを変更しました
クライアントへ通知するエラーがあまりにもサーバーよりのメッセージが多く、混乱を招くため整理しました
Sora の内部的なエラーは
INTERNAL-ERROR
を通知するよう変更しました以下のメッセージはクライアントへは通知されなくなりました
SIGNALING-INTERNAL-ERROR
AUTH-WEBHOOK-RESPONSE-EMPTY-BODY
AUTH-WEBHOOK-RESPONSE-UNEXPECTED-STATUS-CODE
INVALID-AUTHZ-MEDIA
WHEP-INCOMPATIBLE-UPSTREAM-TRACK
DUPLICATED-CONNECTION-ID-ERROR
INVALID-SPOTLIGHT-NUMBER
DUPLICATED-CHANNEL-ID
UNMATCH-CODEC-TYPE-ERROR
Sora が一時的に利用できない場合は
SERVICE-UNAVAILABLE
を通知するように変更しました以下のメッセージはクライアントへは通知されなくなりました
EXCEED-MAX-CONNECTIONS
BLOCK-NEW-CONNECTION
BLOCK-NEW-SESSION
INVALID-MODE
Sora でタイムアウトが発生した場合は
TIMEOUT
を通知するように変更しました以下のメッセージはクライアントへは通知されなくなりました
CONNECTION-CREATED-WAIT-TIMEOUT-ERROR
CONNECT-WAIT-TIMEOUT-ERROR
ANSWER-TIMEOUT-ERROR
PONG-TIMEOUT-ERROR
シグナリングメッセージが不正な場合は
INVALID-MESSAGE
を通知するように変更しました以下のメッセージはクライアントへは通知されなくなりました
INVALID-JSON
INVALID-SIGNALING-TYPE
MISSING-TYPE
BAD-FINGERPRINT
TOO-LARGE-JSON
TOO-MANY-CANDIDATE
INVALID-VIDEO-FORMAT
FAILURE-SDP-PARSE
MISSING-ICE-SDP
INVALID-VIDEO-FORMAT
INVALID-AUDIO-FORMAT
FAILURE-JSON-DECODE
UNEXPECTED-SIGNALING-TYPE
UNKNOWN-AUDIO-CODEC-TYPE
INVALID-AUDIO-BIT-RATE
UNKNOWN-VIDEO-CODEC-TYPE
INVALID-VIDEO-BIT-RATE
録画機能¶
[CHANGE] 録画ファイル処理の開始に失敗した場合のログレベルを
ERROR
からWARNING
に変更しました[ADD] イベントウェブフック
archive.*
とsplit-archive.*
に項目を追加しましたsplit_only
指定していない場合は
false
が入ってきます
format
mp4
またはwebm
が含まれます
expire_time
指定していない場合は項目が含まれません
expired_at
指定していない場合は項目が含まれません
split_duration
指定していない場合は項目が含まれません
MP4 録画機能¶
これは実験的機能です
MP4 形式での録画ファイル出力に対応しました。
[ADD] MP4 形式での録画に対応しました
MP4 録画機能はレガシー録画機能では利用できません
OBS が提唱する Hybrid MP4 形式に対応しています
[ADD]
sora.conf
に default_recording_format を追加しましたデフォルトは
webm
ですwebm
とmp4
が指定できますMP4 録画機能はレガシー録画機能では利用できません
[ADD] StartRecording API に
format
(オプション) を追加しましたformat
にはwebm
とmp4
が指定できますformat
が未指定の場合は default_recording_format の値が利用されます映像コーデックが H.265 の場合
format
にmp4
を指定しない場合、録画が行われません
[ADD] session.created の払い出しに
recording_format
を追加しましたrecording_format
にはwebm
とmp4
が指定できますrecording_format
が未指定の場合は default_recording_format の値が利用されます映像コーデックが H.265 の場合
format
にmp4
を指定しない場合、録画が行われません
[ADD] session.updated の
recording
にformat
を追加しました"format": "webm"
または"format": "mp4"
が含まれるようになりました
[ADD] セッションウェブフック
recording.*
にdata.format
を追加しました"format": "webm"
または"format": "mp4"
が含まれるようになりました
[ADD] イベントウェブフック
archive.*
とsplit-archive.*
にdata.format
を追加しました"format": "webm"
または"format": "mp4"
が含まれるようになりました
H.265 録画機能¶
これは実験的機能です
H.265 コーデックでの録画機能に対応しました。
[ADD] H.265 録画機能に対応しました
H.265 は
format
にmp4
が設定されている場合のみ録画ができますWebM 形式を設定した場合 H.265 の録画は行われません
H.265 録画機能はレガシー録画では利用できません
ICE コネクションステート変更のシグナリング通知¶
これは実験的機能です
ICE コネクションステートが変更した際、 同一チャネルに接続している自分を含むクライアント全員へ通知する仕組みを追加しました。
この機能を利用することで、 自分の ICE コネクションステートの変更を 同じセッションに参加している自分を含むクライアント全員 へ通知する事ができます。
他のシグナリング通知機能とは異なり、この設定は有効にした場合、 自分を含むチャネル参加者へ通知を行いますので注意してください。
用途としては 4 人で双方向のビデオ通話をしている際、 特定のクライアントが不安定だという事を知ったり、 1:50 の片方配信の際に配信者の通信状態を視聴者側が知ったりすることができるようになります。
通知されるタイミングは 4 種類あります。
connected から checking になった時
checking から connected になった時
checking から disconnected になった時
disconnected から checking になった時
[ADD]
sora_conf
に signaling_notify_ice_connection_state を追加しましたデフォルトは
false
ですtrue
に設定すると ICE コネクションステートが変更された際に、同一チャネルに接続しているクライアントへ通知しますtrue
にするとチャネル参加時のシグナリング通知connection.created
の既存参加者のdata
にice_connection_state
が含まれるようになります
[ADD] 認証成功時の払い出しに
signaling_notify_ice_connection_state
を追加しましたデフォルトは signaling_notify_ice_connection_state の値です
[ADD] ICE コネクションステートを強制的に変更し維持する LockIceConnectionState テスト API を追加しました
転送フィルター機能¶
[CHANGE] 認証成功時の転送フィルターの払い出しがエラーになった場合、接続が失敗するように変更しました
INTERNAL-ERROR
エラーとなります
[CHANGE] セッション生成時の転送フィルターの払い出しがエラーになった場合、セッションを破棄するように変更しました
INTERNAL-ERROR
エラーとなりますsession_created_response_validate_warning_as_error が
false
の場合でもエラーとなりセッションを破棄します
マルチ転送フィルター機能¶
これは実験的機能です
マルチ転送フィルター機能は 1 チャネルや 1 コネクションに対して 1 つしか指定できなかった転送フィルターを 名前と優先度を設定し、複数の転送フィルターを指定できるようにする機能です。
[ADD] 認証成功時の払い出しに複数の転送フィルターを設定できる
forwarding_filters
を追加しました既存の
forwarding_filter
は 2025 年 12 月リリース予定の Sora にて廃止します
[ADD] セッション生成時の払い出しに複数の転送フィルターを設定できる
forwarding_filters
を追加しましたforwarding_filter
は 2025 年 12 月リリース予定の Sora にて廃止します
[ADD]
sora.conf
にシグナリング時に複数の転送フィルターを設定できるforwarding_filters
を設定できるようになる signaling_forwarding_filters を追加しましたsora_config-signaling_forwarding_filter は 2025 年 12 月リリースの Sora にて廃止します
[ADD] 転送フィルター API ListForwardingFilters にチャネルの転送フィルターをリストで表示する
channel_forwarding_filters
を追加しました既存の
channel_forwarding_filter
は 2025 年 12 月リリース予定の Sora にて廃止します
[ADD] 転送フィルター API CreateChannelForwardingFilter と CreateConnectionForwardingFilter に
name
とpriority
を追加しました[ADD] 転送フィルター API UpdateChannelForwardingFilter と UpdateConnectionForwardingFilter に
name
とpriority
を追加しました[ADD] 転送フィルター API DeleteChannelForwardingFilter と DeleteConnectionForwardingFilter に
name
を追加しました
詳細は マルチ転送フィルター機能 をご確認ください。
OBS WHIP¶
[FIX] OBS WHIP で H.264 で一部のエンコーダーを利用した際、録画ファイルの映像が正常に記録されない問題を修正しました
[FIX] OBS WHIP で AV1 で録画できない問題を修正しました
メッセージングヘッダー機能¶
メッセージング機能において、
メッセージに Sora 側でヘッダーを追加する機能です。
sender_connection_id
を追加できます。
[ADD]
data_channels
にメッセージングにヘッダーを追加するheader
項目を新しく追加しましたヘッダーを付与するかどうかはメッセージを受信する側が指定します
{"label": "#spam", "direction": "recvonly", "header": [{"type": "sender_connection_id"}]
この設定を行ったクライアントは
#spam
ラベルのメッセージは常に先頭 26 バイトにsender_connection_id
が含まれるようになります
ヘッダーは Sora 側で付与します
header
はオプションですheader
には[{"type": "sender_connection_id"}]
のように指定しますtype
はsender_connection_id
のみ指定可能ですsender_connection_id
はメッセージングの送信元の connection_id です先頭 26 バイトが
sender_connection_id
になります将来的に指定できる
type
を増やして行く予定です
"type": "offer"
時のdata_channels
にheader
が含まれる場合、length
項目を追加しますlength
はsender_connection_id
の長さですlength
の単位はバイトですsender_connection_id
の場合length
は 26 固定です
音声ストリーミングヘッダー機能¶
音声ストリーミング機能において、HTTP/2 経由で送信する音声パケットに Sora 側でヘッダーを追加する機能です。
[ADD] 音声ストリーミング機能利用時に
sora.conf
に audio_streaming_header を追加しましたデフォルトは
false
ですtrue
に設定すると音声パケットに Sora 側でヘッダーを追加しますヘッダーのフォーマットは
[Timestamp:64 bit, SequenceNumber:64 bit, Length:32 bit]
ですtimestamp
は音声パケット送信時の UTC 時間マイクロ秒の整数ですRTP のタイムスタンプとは異なります
seq_num
は音声パケットのシーケンス番号で、 1 から始まりますRTP のシーケンス番号とは異なります
length
はヘッダーを除いた音声パケットの長さです
--- title: "音声ストリーミングヘッダーフォーマット" --- packet-beta 0-63: "Timestamp" 64-127: "SeqNum" 128-159: "Length"
プレイアウト遅延機能¶
実験的機能です
プレイアウト遅延機能の仕様を変更しました。 今までは配信側に影響する設定でしたが、今回のリリースから視聴側に影響する設定に変更しました。
この変更により視聴側毎にプレイアウト遅延を指定できるようになりました。
[ADD] sendrecv と recvonly のロールに影響する設定に変更しました
sendonly には影響しません
[CHANGE]
sora.conf
の default_playout_delay_min_delay は視聴側のプレイアウト遅延の最小値のデフォルトを指定するように変更しましたデフォルトは未指定です
[CHANGE]
sora.conf
の default_playout_delay_max_delay は視聴側のプレイアウト遅延の最大値のデフォルトを指定するように変更しましたデフォルトは未指定です
[CHANGE] 認証成功時の払い出し
playout_delay_min_delay
は視聴側の最小値を指定するように変更しましたplayout_delay_max_delay
も一緒に指定する必要があります
[CHANGE] 認証成功時の払い出し
playout_delay_max_delay
は視聴側の最大値を指定するように変更しましたplayout_delay_min_delay
も一緒に指定する必要があります
詳細は プレイアウト遅延機能 をご確認ください。
テスト API¶
[UPDATE] テスト向け API の録画失敗を意図的に起こす FailArchive API をクラスターに対応しました
[UPDATE] テスト向け API のシグナリング通知を送信する SendSignalingNotify API をクラスターに対応しました
2024.1.3¶
バグフィックスアップデート
- リリース:
2024 年 8 月 9 日
[FIX] 証明書の署名アルゴリズムに SHA1 が利用されている場合でも、許容するように変更しました
[FIX] クラスター機能利用時に、アフィニティが有効な場合でもまれにリレーが発生する場合がある問題を修正しました
[FIX] 転送フィルター機能利用時に、シグナリング通知の送信がまれに失敗する場合がある問題を修正しました
[FIX] イベントウェブフックやシグナリング通知の
connection.created
のチャネル接続数の値が、まれに実際の値よりも小さくなる場合がある問題を修正しました[FIX] 録画機能利用時に、RTP のシーケンス番号が等しいが RTP ヘッダー拡張
abs-capture-time
の値が異なるパケットが短期間に複数送られて来た場合に録画が失敗してしまう問題を修正しました[FIX] 録画機能利用時に、一部の端末で RTP ヘッダー拡張
abs-capture-time
に意図しない値が含まれると録画が失敗してしまう事があるため、 rtp_hdrext_abs_capture_time のデフォルトをfalse
に変更しました詳細については Chrome/Edge の不具合による録画機能利用時の音ズレ問題について をご確認ください
2024.1.1¶
バグフィックスアップデート
- リリース:
2024 年 7 月 1 日
[FIX] 録画機能利用時、パケットのタイムスタンプに異常がある場合に発生する問題を修正しました
2024.1.0¶
メジャーアップデート
- リリース:
2024 年 6 月 26 日
ハイライト¶
クラスターリレー機能を追加しました
いずれのノードからでも同一のチャネルに接続できるようになりました
クラスターアフィニティ機能を追加しました
リレー機能利用時に、特定のノードに同一セッションの接続を集約する仕組みを追加しました
この機能によりノード間通信を極力発生させないようにすることができます
ライセンスの同時接続数の合計を維持する機能を追加しました
ノードに障害が発生したとしても、クラスター全体の同時接続数を維持できるようになりました
テンポラリーノード機能を追加しました
クラスターの維持に影響しないノードを手軽に削除できるようになりました
OBS WHEP に対応しました
OBS の WHEP ソース機能を利用し Sora から映像を取得できるようになりました
2024 年 12 月 現在、OBS 安定版では WHEP に対応していません
OBS WHIP/WHEP の TURN に対応しました
2024 年 12 月 現在、OBS 安定版では TURN に対応していません
OBS WHIP/WHEP の H.265 (HEVC) に対応しました
2024 年 12 月 現在、OBS 安定版では H.265 に対応していません
セッションとコネクションが破棄される時間を指定できるライフタイム機能を追加しました
セッションやコネクションで指定した時間が経過すると自動的に破棄されるようになりました
複数のコーデックで、複数の画質が同時に配信できるサイマルキャストマルチコーデック機能を追加しました
2024 年 12 月 現在、ブラウザでは利用できません
音声トラックを削除した後に、再度音声トラックを追加した際に正常に録音されない問題に対応しました
Chrome/Edge の不具合により、今まで音声がずれて録画されてしまっていた問題を解決しました
Safari でも同様の不具合を確認していますが、本対応では解決できていません
正式版¶
今回のリリースで以下の機能は実験的機能から正式版になりました。
廃止情報¶
CentOS 7 向けパッケージの提供を終了しました
モード機能のイニシャルモードを廃止しました
認証成功時に払い出す
h264_profile_level_id
を廃止しました代わりに
"video_h264_params": {"profile_level_id": "<profile-level-id>"}
を使用してください
sora.conf
からdefault_h264_profile_level_id
を廃止しました代わりに default_h264_param_profile_level_id を使用してください
実験的機能として提供していた
sora.conf
のrtp_publish_worker_number
を廃止しました代わりに media_publish_worker_number を使用してください
実験的機能として提供していた Lyra を廃止しました
Opus 1.5 で Lyra 同様の低ビットレートが利用可能になったこと、Lyra が 2 年間更新がないことが廃止の理由です
sora.conf
のcontact_node_name_list
を廃止しました今後は RegisterClusterNode API を利用してください
sora.conf
のcluster_auto_connect
を廃止しましたクラスター機能の自動での再接続は常に有効になります
非推奨情報¶
Ubuntu 20.04 の提供を Sora 2024.1.x 系をもって終了します
Ubuntu 20.04 は 2025 年 4 月にサポートが終了します
multistream: false
で利用するレガシーストリームを非推奨にしましたmultistream: false
は 2025 年 6 月リリース予定の Sora で廃止しますマルチストリームを利用してください
JoinCluster
API を非推奨にしましたJoinCluster
API は 2024 年 12 月リリース予定の Sora で廃止しますRegisterClusterNode API を利用してください
ListClusterNodes API の
include_all_known_nodes
指定を非推奨にしましたinclude_all_known_nodes
は 2024 年 12 月リリース予定の Sora で廃止します廃止後は
include_all_known_nodes
が常にtrue
として動作するようになります
統計エクスポーター機能を非推奨にしました
統計エクスポーター機能は 2025 年 6 月リリース予定の Sora で廃止します
統計ウェブフック を利用してください
ユーザエージェント統計を非推奨にしました
ユーザエージェント統計は 2025 年 6 月リリース予定の Sora で廃止します
RTC 統計情報を利用してください
ユーザエージェント統計 API を非推奨にしました
ユーザエージェント統計 API は 2025 年 6 月リリース予定の Sora で廃止します
RTC 統計情報 API を利用してください
破壊的変更¶
クラッシュを意図的に発生させるテスト用
Sora_20221221.GenerateCrashLog
API を Sora_20380119.GenerateCrashLog に変更しましたイベントウェブフック connection.destroyed の
reason
に含まれる値を変更しました2023.2.x までは
disconnected_api_reason
と同じ、またはdisconnected_api_reason
が無ければnull
が含まれていました2024.1.x からは
normal
/disconnected_api
/session_destroyed
/lifetime_expired
が含まれるようになります2023.2.x までの設定を維持する移行用の設定
legacy_event_webhook_connection_destroyed_reason
を追加していますこの移行用の設定
legacy_event_webhook_connection_destroyed_reason
は 2024 年 12 月リリース予定の Sora にて廃止します
詳細は 2023.2.x-to-2024.1.x-connection_destroyed_reason をご確認ください
統計 API の RTP ヘッダー拡張の項目名のプレフィックスを
rtp_hdr_ext
からrtp_hdrext
へ変更しましたTerminateSession API を非同期に変更しました
セッション破棄の確認は session.destroyed ウェブフックを利用してください
ライセンスチェックのタイミングを変更しました
今までは WebSocket 接続時にライセンスチェックを行っていましたが、
"type": "connect"
時にチェックを行うように変更しましたWHIP
とWHEP
については変更はありません
詳細についてはサポートまでお問い合わせください
変更履歴¶
[CHANGE] シグナリング "type": "disconnect" 時に指定できる
reason
の最大値を 128 バイトに制限しました[CHANGE] TerminateSession API を非同期に変更しました
セッション破棄の確認は session.destroyed ウェブフックを利用してください
[CHANGE] 統計 API の RTP ヘッダー拡張の項目名のプレフィックスを
rtp_hdr_ext
からrtp_hdrext
へ変更しました[CHANGE] モード機能のイニシャルモードを廃止しました
[CHANGE] 最大帯域幅指定で利用する SDP を
b=TIAS
とb=AS
からb=TIAS
のみに変更しました[CHANGE] 帯域推定で利用する
REMB
で送信するビットレートをb=TIAS
のみに変更したのに合わせて音声ビットレートを含めないようにしました[CHANGE] 音声コーデック Lyra への対応を廃止しました
[CHANGE] SDP の
msid
のappdata
を UUIDv4 を BASE32 でエンコードした値から、connection_id
に メディアの種類を追加した値に変更しましたRFC 8830 WebRTC MediaStream Identification in the Session Description Protocol
この変更により MediaStreamTrack の id から
connection_id
を取得できるようになりましたこの変更により WebRTC 統計情報の
inbound-rtp
のtrackIdentifier
からconnection_id
を取得できるようになりましたFirefox では利用できません
[UPDATE] 開発ツール を最新版に更新しました
[ADD] Ubuntu 24.04 x86_64 と arm64 版のパッケージ提供を開始しました
[ADD]
connection.jsonl
にコネクションを破棄した理由destroyed_reason
を追加しましたdestroyed_reason
にはnormal
/disconnected_api
/session_destroyed
/lifetime_expired
が含まれます
[ADD]
sora.conf
に VP9 利用時に RTP ヘッダー拡張dependency_descriptor
を払い出す rtp_hdrext_dependency_descriptor_vp9 を追加しましたデフォルトは
false
ですこの設定を
true
した場合 Firefox で VP9 が利用できなくなります
[ADD] ListConnections API と ListChannelConnections API の戻り値に
recording_block
項目を追加しました[FIX] メッセージングオンリー機能利用時に
multistream: true
の指定を不要にしました
テスト機能¶
[CHANGE] クラッシュを意図的に発生させるテスト用
Sora_20221221.GenerateCrashLog
API のバージョンを変更し Sora_20380119.GenerateCrashLog API に変更しました今後、テスト API はバージョンが全て
20380119
に固定されます
[ADD] シグナリング通知を送信するテスト用 SendSignalingNotify API を追加しました
スポットライト機能¶
[ADD] スポットライト機能利用時に、セッションウェブフック session.updated と session.destroyed に
spotlight_number
項目が含まれるようにしました[ADD] セッションウェブフック session.created 時に
spotlight_number
を払い出せるようにしましたspotlight_number
には1
から8
までの値を指定できますセッションウェブフックで
spotlight_number
を払い出した場合、シグナリング接続時や認証成功時の払い出しのspotlight_number
と異なる場合はエラーとなります。シグナリング時と認証成功時の
spotlight_number
指定は非推奨になりました
[FIX] スポットライト機能利用時に同一セッションで
spotlight_number
が同時接続数0
の場合にシグナリング接続時、または認証成功時払い出しで変更できてしまう問題を修正しましたセッション破棄までは ChangeSpotlightNumber API 以外ではスポットライト数を変更できないように修正しました
[FIX] スポットライト機能利用時に
multistream: true
の指定を不要にしました
レガシーストリームを非推奨化¶
今まで multistream: false
で利用していた、レガシーストリーム(非マルチストリーム)を非推奨にしました。
レガシーストリームは 2025 年 6 月に廃止します。
[CHANGE]
sora.conf
にレガシーストリームを有効にする legacy_stream を追加しましたデフォルトは
false
ですレガシーストリームを利用する場合は
true
に設定してください
詳細は レガシーストリーム(非マルチストリーム)機能からマルチストリーム機能への移行 をご確認ください。
ウェブフック機能¶
[ADD]
sora.conf
に認証ウェブフック失敗時にauth_webhook.jsonl
にのみログを出力するlegacy_auth_webhook_log
を追加しました2023.2.x までの挙動を維持する設定です
この設定は 2024 年 12 月リリース予定の Sora にて廃止します
デフォルトは
false
ですこの設定を
false
にした場合、認証ウェブフックが失敗した際にはauth_webhook_error.jsonl
にログを出力しますauth_webhook.jsonl
にはログを出力しません
この設定を
true
にした場合、認証ウェブフックが失敗した際には 2023.2.x までと同様にauth_webhook.jsonl
にログを出力しますauth_webhook_error.jsonl
にはログを出力しません
[ADD]
sora.conf
にウェブフックの接続確立タイムアウト時間を指定する webhook_connect_timeout を追加しました今までは固定の
600 s
としていましたが、設定を追加するにあたりデフォルトを30 s
と変更しました範囲は
1 s
から600 s
です
[ADD] 認証ウェブフックリクエストに
Accept
ヘッダーを追加しましたAccept
ヘッダーにapplication/json
が含まれます
[ADD] セッションウェブフックリクエストに
Accept
ヘッダーを追加しましたAccept
ヘッダーにapplication/json
が含まれます
[FIX] 認証ウェブフックでステータスコード 2XX で空ボディを受け取った際の不具合を修正しました
[FIX] 認証ウェブフックにシグナリング接続時の転送フィルターが含まれていない問題を修正しました
セッションウェブフック機能¶
[ADD] セッションウェブフック session.created の戻り値が正常では無い場合、エラーとしてセッションを破棄して、セッションウェブフック session.destroyed を送信する設定の session_created_response_validate_warning_as_error を
sora.conf
に追加しましたデフォルトは
false
ですfalse
の場合はバリデーションに失敗した場合、デフォルト値が採用されそのまま処理は継続しますtrue
の場合はバリデーションに失敗した場合、エラーとしてセッションを破棄しますセッションウェブフック session.destroyed の
reason
にはvalidate_error
が含まれます
[ADD] セッションウェブフック session.created のウェブフック処理中に問題が発生した際に session.destroyed の
reason
にwebhook_error
が含まれるようになりました[ADD] セッションウェブフックがエラーになった理由を、
session_webhook_error.jsonl
ログにreason
として出力するようにしました[FIX] セッションウェブフックの戻り値の JSON が不正な場合に、センシティブデータの処理をしていた問題を修正しました
[FIX] セッションウェブフックの戻り値が JSON オブジェクトではない場合に処理が失敗していた問題を修正しました
録画アーカイブイベントウェブフック機能¶
[ADD] 録画アーカイブ失敗時のウェブフック archive.failed に
split
とsplit_only
とsplit_index
を含むようにしました[FIX] 分割録画にもかかわらず、録画アーカイブ失敗時のウェブフック archive.failed に分割録画ファイルが含まれない問題を修正しました
一括と分割録画の両方が有効な場合、
filename
とfile_path
とsplit_filename
とsplit_file_path
が含まれるようになります分割録画が有効な場合、
split_filename
とsplit_file_path
が含まれるようになります分割録画のみの場合、
filename
とfile_path
は含まれなくなります
[ADD] テスト向け API として録画失敗を意図的に起こす FailArchive API を追加しました
録画が実行されている指定した
client_id
の録画を失敗させますイベントウェブフックの録画失敗ウェブフック archive.failed を意図的に発生させることができます
イベントウェブフック connection.destroyed の reason の破壊的変更¶
[CHANGE] イベントウェブフック
connection.destroyed
に含まれる reason の変更を行いました今までは
disconnected_api_reason
と同様、コネクション切断系 API で指定したreason
値、または未指定の場合はnull
が含まれていましたが、 今回の変更でnormal
/disconnected_api
/session_destroyed
/lifetime_expired
のいずれかが含まれるようになりましたnormal
は通常のコネクション破棄disconnected_api
はコネクション切断系 API でコネクション破棄session_destroyed
はセッションライフタイムによりセッションの期限が切れた、または TerminateSession API によってセッション強制破棄されたことでのコネクション破棄lifetime_expired
はコネクションライフタイムによりコネクションの期限が切れたことによるコネクション破棄
[ADD]
sora.conf
にイベントウェブフックconnection.destroyed
に含まれるreason
の値を、disconnected_api_reason
に含まれる値と同じにする移行用の設定legacy_event_webhook_connection_destroyed_reason
を追加しましたデフォルトは
false
です設定を
true
にした場合、disconnected_api_reason
の項目が無い場合はnull
が含まれますまた、コネクションライフタイム機能で切断したか際の判断ができなくなります
この設定は 2024 年 12 月リリース予定の Sora にて廃止します
録画機能音ズレ問題の改善¶
この問題の改善はレガシー録画、セッション録画の両方で行っています。
Chrome / Edge 側のバグにより、録画機能利用時に replaceTrack
などを利用して MediaStreamTrack
を削除し、
一定時間経過後に新しく MediaStreamTrack
を追加した際に、音声パケットに関連するタイムスタンプと NTP タイムスタンプが正しく出力されない問題あります。
この問題により Chrome / Edge では録音/録画したファイルにて音ズレが発生してしまう場合がありました。
今回、新しく利用できるようになった RTP ヘッダー拡張 abs-capture-timestamp
を利用する事で、
音声タイムスタンプを実際の値に推測する機能を導入することでこの問題に対応しました。
この問題は Safari / Safari Technology Preview では
RTP ヘッダー拡張 abs-capture-timestamp
が音声パケットに含まれてこないため、
改善することができません。
[CHANGE] rtp_hdrext_abs_capture_time のデフォルトを
true
に変更しました[FIX] RTP ヘッダー拡張録画機能の音声タイムスタンプの推測機能を利用し、Chromium ベースのブラウザで録音/録画を行った際、音ズレが発生する問題を修正しました
abs-capture-time
が利用できない場合は今まで通り音ズレが発生する場合があります
OBS WHIP対応¶
これは実験的機能です
[CHANGE] ウェブフックの
sora_client
に含まれるtype
をOBS-Studio
からOBS-Studio-WHIP
に変更しました"sora_client": { "raw": "Mozilla/5.0 (OBS-Studio/30.1.0; Mac OS X; ja-JP)", "type": "OBS-Studio-WHIP", "version": "30.1.0", "environment": "environment":"Mozilla/5.0 (OBS-Studio/30.1.0; Mac OS X; ja-JP)" },
[ADD]
sora.conf
に OBS WHIP で TURN を利用する whip_turn を追加しましたこの設定は OBS が正式に TURN へ対応したタイミングで廃止します
[ADD] OBS WHIP/WHEP で将来的に必須になる
rtcp-mux-only
に対応しました[ADD] OBS WHIP で H.265 (HEVC) に対応しました
OBS 30.1 ではまだ WHIP での H.265 はサポートされていません
OBS WHEP 対応¶
これは実験的機能です
OBS での WebRTC/WHEP に対応しました。WebRTC で送られてくる音声と映像を WHEP ソースとして利用する事ができます。
[ADD] OBS WHEP に対応しました
Opus と H.264 の組み合わせのみ利用できます
WHEP での接続は複数の配信が発生したタイミングで切断されます
WHEP での接続は複数の配信が存在するチャネルには接続できません
OBS 30.1 ではまだ WHEP に対応していません
[ADD]
sora.conf
に OBS (WHEP) を有効にする whep を追加しましたデフォルトは
false
です
[ADD]
sora.conf
に OBS WHEP の Bearer トークンを認証ウェブフックのmetadata
に対応させるキーを指定する whep_bearer_token_metadata_key を追加しましたOBS WHEP からの接続についても Bearer トークンを利用した認証機能が利用できます
デフォルトは未指定です
[ADD] WHEP 向けエンドポイント URL
https://example.com/whep/<channel-id>
を追加しました[ADD] WHEP 向けリソース URL
https://example.com/whep-resource/<channel-id>/<secret>
を追加しましたPATCH と DELETE メソッドに対応しています
[ADD] WHEP を利用した際、認証ウェブフックに
whep: true
を追加しましたWHEP を利用していない接続の場合はこの項目は含まれません
[ADD] OBS WHEP で User-Agent として送られてくる情報を sora_client としてウェブフックで送信するようにしました
"raw": "Mozilla/5.0 (OBS-Studio/31.0.0; Mac OS X; ja-JP)"
"type": "OBS-Studio-WHEP"
"environment": "environment":"Mozilla/5.0 (OBS-Studio/31.0.0; Mac OS X; ja-JP)"
"version": "31.0.0"
[ADD]
sora.conf
に OBS WHEP で TURN を利用する whep_turn を追加しましたこの設定は OBS が正式に TURN へ対応したタイミングで廃止します
詳細は OBS (WHEP) 対応機能 をご確認ください。
クラスター機能¶
これは実験的機能です
[UPDATE] ListClusterNodes API にライセンス情報を追加しました
license_type
license_serial_code
license_max_connections
[UPDATE] ListClusterNodes API にエラー情報を追加しました
ノードに接続ができなかった場合、そのノード情報に
error
を含めるようにしました
[CHANGE] 最大ノード数ライセンスと通常ライセンスが同一クラスターで混在できなくなりました
[CHANGE]
sora.conf
のcontact_node_name_list
を廃止しました今後は RegisterClusterNode API を利用してください
[CHANGE]
sora.conf
のcluster_auto_reconnect
を廃止しましたクラスター機能の自動での再接続は常に有効になります
[CHANGE]
JoinCluster
API の名前だけを変更した RegisterClusterNode API を追加しましたRegisterClusterNode API は
JoinCluster
API とまったく同じ動作をしますJoinCluster
API は 2024 年 12 月にリリース予定の Sora で廃止します
[ADD] クラスター利用時に以下の API でクラスター全体の結果を返せる仕組みを追加しました
API に
local
を追加しfalse
を指定した場合はクラスター全体の結果を返しますlocal
のデフォルトはtrue
ですListConnections API
ListChannels API
ListRtcStats API
クラスターのローリングアップデート中に
local=false
は利用できません
[FIX] InitCluster API で指定するノードが全て同一バージョンでは無い場合、エラーを返すように修正しました
クラスターテンポラリーノード機能¶
これは実験的機能です
クラスターの維持に影響しない一時的なノードを追加できるようになりました。 テンポラリーノードを利用する事でスケールアウト/スケールインが容易になります。
[ADD]
sora.conf
にテンポラリーノードとして利用する cluster_temporary_node を追加しましたデフォルトは
false
ですこの設定は cluster が
true
の時のみ有効ですこの機能は 最大ノード数ライセンス のみ有効です
最大ノード数ライセンス を利用していない場合は cluster_temporary_node が
true
の場合、起動できません
テンポラリーノードはクラスター構成を維持するためのノードとしては認識されません
テンポラリーノードに障害が発生してもライセンスで決められた最大同時接続数の合計を維持する機能による接続数の維持は行われません
テンポラリーノードはクラスターへの登録には RegisterClusterNode API を利用してください
テンポラリーノードは停止時にクラスターから消去されます
テンポラリーノードを再起動した場合、クラスターには自動で参加しません。再度 RegisterClusterNode API を利用して登録してください
テンポラリーノードだけでクラスターを構築する事はできません
テンポラリーノードは PurgeClusterNode API でノードを消去することはできません
テンポラリーノードは InitCluster API で初期化することはできません
テンポラリーノードはクラスターの全てのノードが
2024.1.0
以降である必要があります
[UPDATE] ListClusterNodes API に
temporary_node: <boolean>
項目を追加しました
詳細は テンポラリーノード機能 をご確認ください。
ライセンスで決められた最大同時接続数の合計を維持する機能¶
これは実験的機能です
クラスターのノードが離脱した際に、合計接続数を残りのノードで維持する機能を追加しました。
[ADD] クラスターでライセンスの同時接続数の合計を維持する機能を追加しました
この機能は
cluster
がtrue
の場合にのみ有効ですこの機能は 最大ノード数ライセンス のみ有効です
同時接続数が 100 の 3 ノードのクラスターで動作させた場合に、 1 ノードが離脱した際、残りの 2 ノードが最大同時接続数が 150 に一時的に引き上げられ、合計での接続数を維持します その後、障害が発生していたノードが復旧した歳には、最大同時接続数は 100 に戻ります 100 を超えている接続は切断されたりはしません
詳細は ライセンスで決められた最大同時接続数の合計を維持する機能 をご確認ください。
クラスターリレー機能¶
これは実験的機能です
クラスター利用時に、複数のノードから同一チャネルに参加できる仕組みを追加しました。
[ADD]
sora.conf
にクラスター利用時に複数ノードから同一チャネルに接続できる機能を実現するcluster_relay
の設定を追加しましたこの機能は
cluster
がtrue
の場合にのみ利用できますデフォルトで
true
が設定されていますクラスターリレー機能は 最大ノード数ライセンス のみで利用できます
最大ノード数ライセンス を利用していない場合は
cluster_relay
がtrue
になっていても、リレー機能は利用できません
クラスターリレー機能は
"multistream": false
では利用できませんリレー機能はクラスターの全てのノードが
2024.1.0
以降である必要があります詳細は リレー機能 をご確認ください
[ADD] GetStatsReport API にクラスターリレー機能の統計情報を追加しました
この統計データは厳密なデータではないため、参考程度にご利用ください
ノードが削除された場合でも再起動するまでは統計情報は残り続けます
cluster_relay
[{"node_name": "sora-01@192.0.2.100", "total_sent_byte_size": 5000, "total_received_byte_size": 5000, ...]
node_name
対象ノード名
total_sent_byte_size
対象ノードへリレー機能で送信したバイト数の合計
total_received_byte_size
対象ノードからリレー機能で受信したバイト数の合計
total_sent
対象ノードからリレー機能で送信したパケット数の合計
total_received
対象ノードからリレー機能で受信したパケット数の合計
[CHANGE] リレー機能利用時には認証が 2 回発生する場合があります
詳細は クラスターリレー機能利用時に認証が 2 回行われる場合がある をご確認ください
[CHANGE] リレー機能利用時には multistream と spotlight が既存セッションと異なる場合の挙動 の挙動が変わり、接続数が
0
の場合にmultistream
とspotlight
の指定が既存セッションと異なる場合でもセッションが破棄されなくなりますこの挙動は 2024 年 12 月リリースの Sora にてリレー機能を利用しない場合でも反映される予定です
詳細は リレー機能 をご確認ください。
クラスターリレー機能利用時のアフィニティ機能¶
これは実験的機能です
クラスターリレー機能利用時に一定の同時接続数まで特定のノードに同一セッションの接続を集約する機能を追加しました。
[ADD]
sora.conf
にリレー機能を利用する際に、アフィニティ機能(同一セッションへの接続を同一ノードに寄せる) かどうかを指定する default_cluster_affinity の設定を追加しましたデフォルトで
true
が設定されていますこの機能は
sora.conf
の cluster がtrue
の場合にのみ利用できますこの機能は
sora.conf
の cluster_relay がtrue
の場合にのみ利用できます最大ノード数ライセンス を利用していない場合は
sora.conf
の cluster_relay がtrue
になっていても、リレー機能やアフィニティ機能は利用できません
true
の場合は一定数の接続までは特定のノードに接続を集約します同時接続数がライセンス最大値の場合はリダイレクトが発生します
false
を指定すると、可能な限りリダイレクトをせずにそのノードでリレーが行われます同時接続数がライセンス最大値の場合はリダイレクトが発生します
[ADD]
sora.conf
にアフィニティを行う 1 ノード、1 セッションあたりの最大同時接続数を指定する cluster_affinity_threshold を追加しましたデフォルトは 10 です
1 ノード、1 セッションあたりの同時接続数が
cluster_affinity_threshold
未満のノードがあれば、同じノードに新規接続が割り振られます
[ADD] 認証成功時の払い出しで cluster_affinity の払い出し を払い出すことでコネクション単位でのアフィニティ機能を利用するかどうかを指定できる機能を追加しました
払い出しをしない場合は
sora.conf
の default_cluster_affinity の値が利用されます
音声ストリーミング¶
音声ストリーミング機能のエラー処理を充実させました。
[ADD] audio_streaming_url に接続ができない場合、再接続を試みる機能を追加しました
[ADD] audio_streaming_url への接続を諦める機能を追加しました
接続を諦めた場合、再接続を試みるには一度クライアントを切断する必要があります
[ADD] audio_streaming_url に接続ができない場合、再接続を試みる回数を指定する audio_streaming_max_retries を追加しました
最大リトライ回数まで再接続を試みても接続ができない場合は接続を諦めます
デフォルトは
0
です0
にした場合は常に再接続を試みます0..10
の間で指定できます
[ADD] audio_streaming_url に接続ができない場合、再接続を試みる間隔を指定する audio_streaming_retry_interval を追加しました
デフォルトは
5 s
です0
にした場合は音声パケットが送られてきたタイミングで再接続を試みます0..60 s
の間で指定できます
[ADD] audio_streaming_url からステータスコード 5xx が返ってきた場合、再接続を試みる機能を追加しました
最大リトライ回数まで再接続を試みても接続ができない場合は接続を諦めます
再接続の回数は audio_streaming_max_retries を利用します
再接続の間隔は audio_streaming_retry_interval を利用します
[ADD] audio_streaming_url への接続を諦めた際、イベントウェブフック
audio-streaming.failed
を送信する機能を追加しました諦めるのはコネクション単位のため、イベントウェブフックを送信します
このウェブフックは ignore_audio_streaming_webhook の影響は受けません
[ADD] イベントウェブフック
audio-streaming.failed
を送信しない設定 ignore_audio_streaming_failed_webhook を追加しましたデフォルトは
true
ですtrue
にした場合はaudio-streaming.failed
イベントウェブフックを送信しません
[ADD] audio_streaming_url から
"type": "error"
が含まれる JSON が送られてきた際、音声ストリーミングサーバーへの接続を諦める機能を追加しました[ADD] audio_streaming_url への接続を諦めた際、セッションに参加している全てのコネクションにシグナリング通知
audio-streaming.failed
を送信する機能を追加しましたデフォルトは
false
ですsignaling_notify_audio_streaming_failed を
true
にすることで有効になります
[FIX] 音声ストリーミング audio-streaming.started のウェブフック処理中にエラーになった場合、セッションが破棄されてしまう問題を修正しました
統計ウェブフック機能¶
実験的機能です
統計エクスポーター に変わる、 統計ウェブフック機能 を追加しました。
[ADD]
sora.conf
に統計ウェブフックの送信先を指定する stats_webhook_url を追加しました[ADD]
sora.conf
に統計ウェブフックログを出力するかどうかを指定する stats_webhook_log を追加しましたデフォルト
false
ですデフォルトではログを出力しません。ログを出力したい場合は
true
に設定してください
[ADD]
sora.conf
に統計ウェブフック type: connection.rtc を無視するかどうかを指定する ignore_connection_rtc_webhook を追加しましたデフォルト
false
です
[ADD]
sora.conf
に stats_webhook_worker_number を追加しました[ADD] 統計ウェブフックにクライアントの RTC 統計情報を送信する type: connection.rtc を追加しました
これは統計エクスポーターの
"type": "connection.user-agent"
と同じデータをウェブフックとしてリクエストを送信します統計エクスポーターでは HTTP/2 を利用して送信していましたが、統計ウェブフックは HTTP/1.1 で送信します
[ADD] GetStatsReport API に統計ウェブフックの成功数の項目
total_successful_stats_webhook
を追加しました[ADD] GetStatsReport API に統計ウェブフックの失敗数の項目
total_failed_stats_webhook
を追加しました
詳細は 統計ウェブフック機能 をご確認ください。
RTC 統計 (ユーザエージェント機能)¶
統計ウェブフック機能追加に伴い、ユーザーエージェント統計から RTC 統計へ名前を変更します。 ユーザエージェント機能は 2025 年 6 月リリース予定の Sora で廃止します。
[ADD]
sora.conf
に RTC 統計機能をデフォルトを指定する default_rtc_stats を追加しましたデフォルトは
true
ですtrue
の場合、 Sora はクライアントへ RTC 統計の送信を要求します
[ADD] 認証成功時の払い出しに rtc_stats の払い出し を追加しました
未指定の場合は default_rtc_stats の値が利用されます
[ADD] ListRtcStats API を追加しました
[ADD] ListChannelRtcStats API を追加しました
[ADD] GetRtcStats API を追加しました
[ADD] 実験的機能として
sora.conf
に rtc_stats_log を追加しましたデフォルトで
false
ですrtc_stats
項目個別にrtc_stats.jsonl
にログを出力します
[FIX] ユーザーエージェント統計情報の認証成功時払い出し指定が無視されていた問題を修正しました
[FIX] ユーザーエージェント統計情報の GetUserAgentStats の戻り値の
stats
をuser_agent_stats
に修正しました
セッションライフタイム機能¶
実験的機能です
セッションに対してライフタイム (破棄されるまでの時間) を設定する機能を追加しました。
[ADD] セッションのライフタイムをセッションウェブフック session.created の戻り値で session_lifetime を指定できるようになりました
秒 で指定してください
最大 2,592,000 秒 (30 日) まで指定できます
セッション生成後に変更することはできません
session_lifetime
が未指定の場合は 無制限 ですsession.destroyed
のreason
にlifetime_expired
が入りますconnection.destroyed
のreason
にsession_destroyed
が入りますセッションのライフタイムが終了すると、セッションが破棄され切断します
セッションのライフタイムが終了すると、セッションウェブフック
session.destroyed
が送信されます
コネクションライフタイム機能¶
実験的機能です
コネクションに対してライフタイム (破棄されるまでの時間) を設定する機能を追加しました。
[ADD] コネクションのライフタイムを認証ウェブフックの払い出しで connection_lifetime の払い出し を指定できるようになりました
秒 で指定してください
最大 2,592,000 秒 (30 日) まで指定できます
コネクション生成後に変更することはできません
connection_lifetime
が未指定の場合は 無制限 ですconnection.destroyed
のreason
にlifetime_expired
が入りますコネクションのライフタイムが終了すると、コネクションが破棄され切断します
コネクションのライフタイムが終了すると、コネクションウェブフック
connection.destroyed
が送信されますコネクションのライフタイムよりセッションのライフタイムが優先されます
サイマルキャストマルチコーデック機能¶
実験的機能です
一つのサイマルキャストで複数のコーデックを利用する事ができる、サイマルキャストマルチコーデックを追加しました。
[ADD] 複数の映像コーデックを同時に配信するサイマルキャストマルチコーデック機能に対応しました
サイマルキャストマルチコーデックの配信に対応した SDK のみで利用できます
2024 年 12 月 時点で以下の SDK が実験的に対応しています
Sora C SDK
Sora C++ SDK
ブラウザを利用した場合、サイマルキャストマルチコーデック機能を利用して配信することはできません、視聴側は利用できます
[ADD]
sora.conf
にてサイマルキャストコーデック機能を有効にするするかどうかを指定する simulcast_multicodec を追加しましたデフォルトは
false
ですsimulcast_multicodec を
true
に設定するとサイマルキャストマルチコーデック機能が利用可能になります
[ADD] シグナリング接続時に
"simulcast_multicodec"
項目を追加しました"simulcast_multicodec": true
を指定する際には"simulcast": true
を指定する必要があります
[ADD] 認証ウェブフックに
"simulcast_multicodec"
項目を追加しましたsimulcast
がtrue
かつsimulcast_multicodec
がtrue
の時のみ含まれます
[ADD] 認証成功時の払い出しで
simulcast_multicodec
を払い出した場合、サイマルキャストマルチコーデックを利用できるようになりましたsora.conf
にて simulcast_multicodec がtrue
に指定されている必要があります"simulcast": true
が指定されている必要があります
[ADD] 認証成功時の払い出しで
simulcast_codecs
を指定できるようになりました[ADD]
sora.conf
にてサイマルキャストのデフォルトコーデックを設定する simulcast_codecs_file を指定できるようになりました[ADD] イベントウェブフック
connection.{created, updated, destroyed}
に simulcast_multicodec 項目を追加しましたsimulcast
がtrue
かつsimulcast_multicodec
がtrue
の時のみ含まれます
[ADD] コネクションログに
simulcast_multicodec
項目を追加しました項目は必ず含まれます
[ADD]
"type": "offer"
時にsimulcast_multicodec
項目を追加しました項目は必ず含まれます
詳細は サイマルキャストマルチコーデック をご確認ください。
H.264/H.265 B-frame 対応¶
実験的機能です
実験的機能として H.264 と H.265 の B-frame 向けの RTP ヘッダー拡張 に対応しました。
B-frame 向けの RTP ヘッダー拡張に対応している場合、 H.264/H.265 で B-frame を利用した配信/視聴が行えるようになります。
B フレームの録画には対応していません。
[ADD] H.264 と H.264 で B-frame を利用する RTP ヘッダー拡張に対応しました
[ADD]
sora.conf
に H.264 で B-frame を利用するかどうかを指定する h264_b_frame を追加しましたデフォルトは
false
です
[ADD]
sora.conf
に H.265 で B-frame を利用するかどうかを指定する h265_b_frame を追加しましたデフォルトは
false
です
[ADD] シグナリング
type: connect
時に H.264 で B-frame を利用するかどうかを指定するh264_params: {"b_frame": true}
を追加しましたデフォルトは
false
ですsora.conf
にて h264_b_frame がtrue
に指定されている必要がありますsora.conf
にて signaling_h264_params がtrue
に指定されている必要があります
[ADD] シグナリング
type: connect
時に H.265 で B-frame を利用するかどうかを指定するh265_params: {"b_frame": true}
を追加しましたデフォルトは
false
ですsora.conf
にて h265_b_frame がtrue
に指定されている必要がありますsora.conf
にて signaling_h265_params がtrue
に指定されている必要があります
[ADD] ウェブフックの
video_h264_params
にb_frame
を追加しましたsora.conf
の h264_b_frame がtrue
に指定されていない場合はb_frame
は含まれません
[ADD] ウェブフックの
video_h265_params
にb_frame
を追加しましたsora.conf
の h264_b_frame がtrue
に指定されていない場合はb_frame
は含まれません
[ADD] 認証成功時の払い出しで
video_h264_params
にb_frame
を追加しましたデフォルトは
false
です接続時や払い出し時に未指定の場合はデフォルトの
false
が利用されます
[ADD] 認証成功時の払い出しで
video_h265_params
にb_frame
を追加しましたデフォルトは
false
です接続時や払い出し時に未指定の場合はデフォルトの
false
が利用されます
プレイアウト遅延機能¶
実験的機能です
プレイアウト遅延機能を追加しました。
プレイアウト遅延機能を利用することでフレームをどれくらい速くレンダリングする必要があるかを配信毎に指定できます。
[CHANGE]
sora.conf
の RTP ヘッダー拡張 playout-delay を利用するかどうかを指定する rtp_hdrext_playout_delay のデフォルトをtrue
に変更しました[ADD]
sora.conf
にプレイアウト遅延の最小値のデフォルトを指定する default_playout_delay_min_delay を追加しました[ADD]
sora.conf
にプレイアウト遅延の最大値のデフォルトを指定する default_playout_delay_max_delay を追加しました[ADD] 認証成功時の払い出しでプレイアウト遅延の最小値を指定する
playout_delay_min_delay
を追加しましたplayout_delay_max_delay
も一緒に指定する必要があります
[ADD] 認証成功時の払い出しでプレイアウト遅延の最大値を指定する
playout_delay_max_delay
を追加しましたplayout_delay_min_delay
も一緒に指定する必要があります
詳細は プレイアウト遅延機能 をご確認ください。
メディア配信ワーカー¶
実験的機能です
配信ワーカー機能をメディア配信ワーカー機能に変更しました。
[UPDATE] スポットライト機能をメディア配信ワーカーで利用できるようになりました
[CHANGE]
sora.conf
の rtp_publish_worker_number を media_publish_worker_number に変更しました
WebSocket シグナリング時の HTTP ヘッダーを認証ウェブフックにコピーする機能¶
実験的機能です
[ADD]
sora.conf
に WebSocket シグナリング接続時の HTTP ヘッダーを認証ウェブフックのヘッダーにコピーする copy_websocket_signaling_header_names を追加しましたデフォルトは未指定です
大文字小文字は区別されません
copy_websocket_signaling_header_names = X-Forwarded-For, X-Real-IP, Tracestate
のように指定してください
[ADD] 認証ウェブフックログ
auth_webhook.jsonl
にcopy_headers
項目を追加しました認証ウェブフックにコピーされたヘッダーを出力します