リリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
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 年 6 月 現在、OBS 安定版では WHEP に対応していません
OBS WHIP/WHEP の TURN に対応しました
2024 年 6 月 現在、OBS 安定版では TURN に対応していません
OBS WHIP/WHEP の H.265 (HEVC) に対応しました
2024 年 6 月 現在、OBS 安定版では H.265 に対応していません
セッションとコネクションが破棄される時間を指定できるライフタイム機能を追加しました
セッションやコネクションで指定した時間が経過すると自動的に破棄されるようになりました
複数のコーデックで、複数の画質が同時に配信できるサイマルキャストマルチコーデック機能を追加しました
2024 年 6 月 現在、ブラウザでは利用できません
音声トラックを削除した後に、再度音声トラックを追加した際に正常に録音されない問題に対応しました
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 で廃止されますマルチストリームを利用してください
JoinClusterAPI を非推奨にしましたJoinClusterAPI は 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.GenerateCrashLogAPI を 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 にて廃止します
詳細は 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.GenerateCrashLogAPI のバージョンを変更し 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_typelicense_serial_codelicense_max_connections
[UPDATE] ListClusterNodes API にエラー情報を追加しました
ノードに接続ができなかった場合、そのノード情報に
errorを含めるようにしました
[CHANGE] 最大ノード数ライセンスと通常ライセンスが同一クラスターで混在できなくなりました
[CHANGE]
sora.confのcontact_node_name_listを廃止しました今後は RegisterClusterNode API を利用してください
[CHANGE]
sora.confのcluster_auto_reconnectを廃止しましたクラスター機能の自動での再接続は常に有効になります
[CHANGE]
JoinClusterAPI の名前だけを変更した RegisterClusterNode API を追加しましたRegisterClusterNode API は
JoinClusterAPI とまったく同じ動作をしますJoinClusterAPI は 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 年 6 月 時点で以下の 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項目を追加しました認証ウェブフックにコピーされたヘッダーを出力します
2023.2.7¶
バグフィックスアップデート
- リリース:
2024-04-24
[FIX] レガシー録画機能または録画機能(セッション単位)利用時の録画停止処理中に、新規コネクションが参加した際に、そのコネクションが切断されるまで、録画停止処理が完了しない問題を修正しました
[FIX] レガシー録画機能にて録画停止処理中に録画の開始および StopRecording API 実行した際
RECORDING-INTERNAL-ERRORが返されていたのをSTOPPING-RECORDINGを返すように修正しました[FIX] クラスター有効時に、ごく稀にノード起動に失敗することがある問題を修正しました
2023.2.5¶
ホットフィックスアップデート
- リリース:
2024-03-08
[FIX] 録画機能で録画中、出力済の分割録画ファイルのファイルディスクリプタを掴み続ける問題を修正しました
2023.2.4¶
ホットフィックスアップデート
重要
このリリースはクラスターをご利用いただいているお客様にのみ提供しております。
- リリース:
2024-02-27
[FIX] クラスター利用時にでリーダーノードがダウンした場合に、他のノードのセッションも終了してしまう問題を修正しました
2023.2.3¶
バグフィックスアップデート
- リリース:
2024-02-07
[FIX]
"multistream": falseを指定して接続した場合に、配信/視聴ができない問題を修正しました[FIX] セッションウェブフックが一部の HTTP サーバーで正常に処理できず、エラーになる問題を修正しました
[FIX] データチャネルの終了時にクライアント側で警告が出力される問題を修正しました
2023.2.2¶
バグフィックスアップデート
- リリース:
2024-01-04
変更履歴¶
[FIX]
sora.confの event_webhook_url が未指定の状態で録画を開始した場合、セッションが破棄されない問題を修正しました[FIX] ウェブフックで mTLS 利用時に、特定の条件下でクライアント証明書を送らなくなる問題を修正しました
ウェブフックで HTTPS を利用する場合は TLS 1.2 のみを利用するように変更しました
[FIX] ウェブフックで mTLS 利用時に、 CA 証明書が指定されていない場合に OS 組み込みの証明書を利用できない問題を修正しました
[FIX] 統計エクスポーターで mTLS 利用時に、 CA 証明書が指定されていない場合に OS 組み込みの証明書を利用できない問題を修正しました
[FIX] 音声ストリーミングで mTLS 利用時に、 CA 証明書が指定されていない場合に OS 組み込みの証明書を利用できない問題を修正しました
[FIX] API ログの書き込みに失敗した場合でも、 API の処理を中断しないように修正しました
[FIX] PurgeClusterNode API の API ログ操作名が
LeaveClusterとなっていたのをPurgeClusterNodeに修正しました[FIX] クラスターに参加済のノードが、別クラスターに対する JoinCluster API を受け入れてしまう問題を修正しました
[FIX] 録画機能で大幅にパケットの到着が遅れている場合、分割録画に失敗することがある問題を修正しました
2023.2.0¶
メジャーアップデート
- リリース:
2023-12-20
ハイライト¶
セッション単位で録画する新しい録画機能を追加しました
今までの録画機能は レガシー録画機能 と名前を変更しました
レガシー録画機能と新しい録画機能は別チャネルであれば同時に利用することができます
レガシー録画機能は 2025 年 12 月リリース予定の Sora にて廃止されます
詳細は 録画機能 (セッション単位) をご確認ください
接続単位で録画をブロックできる機能を追加しました
今まではチャネルに参加している全ての接続が録画されていましたが、新しい録画機能では接続単位で録画をブロックできるようになりました
新しい録画機能でのみ利用できます
より大規模な配信を可能にする配信ワーカー機能を追加しました
今まで音声や映像をクライアントに配信するワーカーは 1 つでしたが、配信するワーカーを複数にすることで、より多くのユーザーに配信することができるようになりました
データチャネルの負荷を下げるために SCTP パケットのチェックサム計算を省略する機能を追加しました
利用するにはクライアント側もチェックサム計算を省略する機能に対応している必要があります
ウェブフックで IPv6 アドレスが利用できるようになりました
ウェブフックなどでルート CA 証明書に OS 組み込みのものを利用するようにしました
正式版¶
セッションウェブフック が正式版になりました
DataChannel 経由のシグナリング が正式版になりました
メッセージング機能 が正式版になりました
廃止情報¶
sora.confのlegacy_log_formatを廃止しました詳細は sora.conf の legacy_log_format の廃止 をご確認ください
sora.confのlegacy_log_extensionを廃止しました詳細は sora.conf の legacy_log_extension の廃止 をご確認ください
sora.confのlegacy_webhook_audio_video_json_structureを廃止しました
破壊的変更¶
sora.confの signaling_notify_metadata をfalseにした場合でもシグナリング通知のdataが含まれるようになりましたsora.confの以下の設定を全てfalseにした場合、シグナリング通知のdataが含まれなくなりました実験的機能のクラスター機能利用時のセッションウェブフック session.destroyed に
connectionsが含まれなくなりました実験的機能のクラスター機能のログを
cluster.jsonlに出力するよう変更しました実験的機能のセッションウェブフック audio-streaming.started に
max_connectionsとtotal_connectionsが含まれなくなりました実験的機能のセッションウェブフック audio-streaming.started に
max_connectionsとtotal_connectionsが含まれなくなりました
変更履歴¶
[CHANGE] ウェブフックなどで利用するルート CA 証明書に OS 組み込みのものを利用するように変更しました
Ubuntu の場合は
apt install ca-certificatesでインストールされる証明書を利用しますRHEL の場合は
dnf install ca-certificatesでインストールされる証明書を利用します詳細は ウェブフックリクエストなどの送信先サーバー証明書の検証に利用する OS 組み込みのルート CA 証明書について をご確認ください
[UPDATE] DataChannel を利用したメッセージングのみで接続する場合に
roleがsendrecv以外でも接続ができるようになりました[ADD] シグナリング
"type": "offer"にchannel_idとsession_idを追加しました[ADD]
connection.jsonlのice_connection_stateに ICE コネクションステートcheckingとdisconnectedだった時間を追加しました[ADD] Sora が利用している Erlang VM の設定を追加できる環境変数
SORA_ADDITIONAL_ERL_ARGSを追加しました[ADD] 認証成功時の払い出しに検証用の RTP パケットロスシミュレーターの設定値、
rtp_packet_loss_simulator_incomingとrtp_packet_loss_simulator_outgoingが指定できるようになりました[ADD]
sora.jsonlとinternal.jsonlに UUIDv4 を Base32 でエンコードしたユニークな ID を含めるようにしました"id": "base32(uuidv4)"
[FIX] データチャネルで利用する SCTP のストリーム ID 採番を RFC 8832 に準拠させました
[FIX] 録画機能で H.264 利用時に送られてくる分割ペイロードが壊れている場合は処理をスキップするように修正しました
OBS WHIP¶
これは実験的機能です
[ADD] OBS WHIP で User-Agent として送られてくる情報を sora_client としてウェブフックで送信するようにしました
"sora_client": { "raw": "Mozilla/5.0 (OBS-Studio/30.0.0; Mac OS X; ja-JP)", "type": "OBS-Studio", "version": "30.0.0", "environment": "environment":"Mozilla/5.0 (OBS-Studio/30.0.0; Mac OS X; ja-JP)" },
[ADD] OBS WHIP で AV1 が動作するようにしました
OBS WHIP で AV1 を配信する仕組みは 2024 年 6 月 現在、 OBS には組み込まれていません
[FIX] WHIP 利用時に認証ウェブフックの項目に
ignore_disconnect_websocketが含まれない問題を修正しました常に
falseが含まれます
転送フィルター機能¶
これは実験的機能です
転送フィルターに version や metadata が指定できるようになりました。
version を指定することで、転送フィルターの更新 API が並列で実行されても期待した値に変更することができるようになりました。
[ADD] 転送フィルターに
versionを設定できるようになりました[ADD] 転送フィルターに
metadataを設定できるようになりました[ADD] 転送フィルター API CreateChannelForwardingFilter と CreateConnectionForwardingFilter に
versionを指定できるようになりました[ADD] 転送フィルター API CreateChannelForwardingFilter と UpdateChannelForwardingFilter に
metadataを指定できるようになりました[ADD] 転送フィルター API CreateConnectionForwardingFilter と UpdateConnectionForwardingFilter に
metadataを指定できるようになりました[ADD] 転送フィルター API UpdateChannelForwardingFilter と UpdateConnectionForwardingFilter API に指定した
expected_versionが既存のversionと一致していない場合は更新エラーになるようになりましたexpected_versionが既存のバージョンと一致した場合のみdesired_versionで指定した値でversionの値を更新します
[ADD] セッションウェブフックの戻り値に
versionとmetadataを指定できるようになりました[ADD] 認証成功の払い出し時に
versionとmetadataを指定できるようになりました[ADD] シグナリング時に
versionとmetadataを指定できるようになりました
セッション API¶
[ADD] 指定したセッションを取得する GetSession API を追加しました
channel_idを指定してセッションを取得します
[ADD] セッション一覧を取得する ListSessions API を追加しました
全てのセッション一覧を取得します
録画機能¶
[ADD]
sora.confに単一録画ファイルと分割録画ファイルの両方を出力する機能を有効にするかどうかを指定する recording_dual_output を追加しましたデフォルトは
trueですfalseに指定した場合は単一録画ファイルと分割録画ファイルの両方が出力のパターンを指定できなくなります
[ADD]
sora.confに録画期限の最大値を指定する recording_max_expire_time を追加しましたデフォルトは
86400 sです設定できる最大値は
86400 sですレガシー録画機能では一括録画と一括&分割録画で
expire_timeが指定できます新しい録画機能(セッション単位)では一括録画、分割録画、一括&分割録画で
expire_timeが指定できます
[ADD]
sora.confに分割録画時の分割時間の最大値を指定する recording_max_split_duration を追加しましたデフォルトは
86400 sです設定できる最大値は
86400 sです
[ADD]
sora.confに一括録画を含む場合に録画期限の設定を要求する recording_expire_time_required を追加しましたこの設定は一括録画時に録画ファイルが大きくなりすぎるのを防ぐための設定です
デフォルトは
falseですこの設定を
trueにした場合、一括録画を含む場合にexpire_timeが必須になりますこの設定を
trueにした場合、レガシー録画機能ではexpire_timeに0以外の値を指定する必要がありますこの設定を
trueにした場合、新しい録画機能(セッション単位)ではexpire_timeの値を指定する必要がありますこの設定を
trueにした場合でも分割録画のみの場合はexpire_timeは必須になりません
新しい録画機能 (セッション単位)¶
今までの録画機能は レガシー録画機能 と名前を変更しました。
レガシー録画機能と新しい録画機能は別チャネルであれば同時に利用することができます。
[ADD]
sora.confにレガシー録画を有効にするかどうか指定する legacy_recording を追加しましたデフォルトは
trueですfalseにした場合、レガシー録画機能が利用できなくなりますこの設定は移行用の設定で、 2025 年 12 月リリース予定の Sora にて廃止されます。
[ADD] セッションウェブフック
session.created時に"recording": trueを指定することで録画を開始します[ADD] セッションウェブフック
session.created時に"recording_expire_time"を指定することができるようになりましたセッション破棄時に録画は自動で終了します
セッション破棄前に期限が来た場合はそこで録画は終了します
[ADD] セッションウェブフック
session.created時に"recording_split_duration"を指定することができるようになりました[ADD] セッションウェブフック
session.created時に"recording_split_only"を指定することができるようになりました[ADD] セッションウェブフック
session.created時に"recording_metadata"を指定することができるようになりました[ADD] セッションウェブフック
recording.startedを追加しました[ADD] セッションウェブフック
recording.reportを追加しました[ADD] 新しい録画用の StartRecording API を追加しました
セッション破棄時に自動で録画は終了します
expire_timeがオプションになっていますexpire_timeデフォルトは未定義です
[ADD] 新しい録画用の StopRecording API を追加しました
詳細については 録画機能 (セッション単位) をご確認ください。
移行については レガシー録画機能から新しい録画機能 (セッション単位) への移行 をご確認ください。
新しい録画機能 (セッション単位) における接続単位の録画ブロック機能¶
これは実験的機能です
この機能は新しい録画機能 (セッション単位) でのみ利用できます。レガシー録画機能では利用できません
[ADD] 認証成功時に
"recording_block": trueを払い出すことで、その接続の録画をブロックし、録画ファイルの出力を拒否できるようになりましたこれは録画が有効になっていない場合に払い出しても問題ありません
この値を途中で変更することはできません
[ADD] イベントウェブフック
connection.{created, updated, destroyed}のdataに"recording_block"の項目を追加しました認証成功時に
"recording_block": trueを払い出していればtrueに、それ以外はfalseになります
シグナリング通知メタデータ¶
sora.conf で signaling_notify_metadata を false にした際の挙動を変更しました。
[CHANGE]
sora.confのsignaling_notify_metadataをfalseにした際でもdata項目が含まれるようになりましたdataのmetadataとauthn_metadataとauthz_metadataは含まれません
[CHANGE]
sora.confで以下の設定を全てfalseにした場合、シグナリング通知のdataが含まれなくなりました[FIX]
sora.confでsignaling_notify_metadataをfalseにした際にも、シグナリング通知のdata項目のauthn_metadataとauthz_metadataが含まれてしまう問題を修正しました
外部への HTTP リクエストに HTTP ヘッダーを追加¶
ウェブフックや統計エクスポーター、音声ストリーミングを利用した際の外部への HTTP リクエストに、
x-sora- prefix とは別に sora- prefix の HTTP ヘッダーを追加しました。
これは RFC 6648 による x- prefix の非推奨化に準拠するためです。
今後 x-sora- prefix は非推奨になります。
現時点で具体的な時期は決まっていませんが、将来的に 1 年以上の移行期間を設けて廃止する予定です。
[ADD] セッションウェブフックに
sora-session-webhook-typeヘッダーを追加しましたすでにある
x-sora-session-webhook-typeヘッダーは将来的に廃止予定です
[ADD] イベントウェブフックに
sora-event-webhook-typeヘッダーを追加しましたすでにある
x-sora-event-webhook-typeヘッダーは将来的に廃止予定です
[ADD] 統計エクスポーターに
sora-stats-exporter-typeヘッダーを追加しましたすでにある
x-sora-stats-exporter-typeヘッダーは将来的に廃止予定です
[ADD] セッションウェブフックに
sora-session-idヘッダーを追加しました[ADD] イベントウェブフックに
sora-connection-idヘッダーを追加しました[ADD] イベントウェブフックに
sora-session-idヘッダーを追加しました
ウェブフック¶
[CHANGE] セッションウェブフック
audio-streaming.startedにmax_connectionsとtotal_connectionsが含まれなくなりました[CHANGE] セッションウェブフック
audio-streaming.stoppedにmax_connectionsとtotal_connectionsが含まれなくなりました[CHANGE] クラスター機能利用時のセッションウェブフック
session.destroyedにconnectionsが含まれなくなりました[ADD]
sora.confにウェブフックで IPv6 利用する webhook_ipv6 を追加しましたデフォルトは
falseですこの設定を有効にしない限りウェブフックで IPv6 は利用できません
[ADD]
sora.confにイベントウェブフックconnection.updatedの送信間隔を変更する connection_updated_webhook_interval を追加しましたデフォルトは
1 minです最小は
1 minです最大は
10 minです時間単位は
minのみが指定できます
[ADD]
sora.confに 録画イベントウェブフックsplit-archive.availableを送信しないようにする ignore_split_archive_available_webhook を追加しましたデフォルトは
falseです
[ADD] 接続イベントウェブフック
connection.{created, updated, destroyed}に ICE コネクションステートがcheckingとdisconnectedだった時間の項目を追加しましたdata.ice_connection_state.total_checking_duration_msにcheckingだった合計時間(ミリ秒)が入りますdata.ice_connection_state.total_disconnected_duration_msにdisconnectedだった合計時間(ミリ秒)が入ります
[ADD] 認証ウェブフックに
spotlight_focus_ridとspotlight_unfocus_ridを追加しましたspotlightがtrueの時だけ追加されます
[ADD] 接続イベントウェブフック
connection.{created, updated, destroyed}に ICE コネクションステートのcheckingとdisconnectedの時間を通知する項目を追加しましたice_connection_state項目を追加しましたice_connection_stateにtotal_checking_duration_msにcheckingだった合計時間(ミリ秒)が入りますice_connection_stateにtotal_disconnected_duration_msにdisconnectedだった合計時間(ミリ秒)が入ります
"data": { "ice_connection_state": { "total_checking_duration_ms": 0, "total-disconnected_duration_ms": 0 } }
[ADD] セッションウェブフック session.updated を追加しました
クラスターが有効時には
connectionsは含まれません録画機能 (セッション単位) 有効時に
recording項目が含まれます
[ADD] セッションウェブフック
session.destroyedにreasonが含まれるようになりましたreasonには以下が含まれますnormal正常終了
terminated_apiTerminateSession API を利用した終了
abort異常終了
[ADD]
sora.confにセッションウェブフック session.updated を送信しないようにする ignore_session_updated_webhook を追加しましたデフォルトは
falseです
[ADD]
sora.confにセッションウェブフック session.updated の送信間隔を変更する session_updated_webhook_interval を追加しましたデフォルトは
1 minです最小は
1 minです最大は
10 minです時間単位は
minのみが指定できます
[FIX] 認証ウェブフックで
simulcast_ridはspotlightがtrueの場合は追加しないようにしましたsimulcastがtrueかつspotlightがfalseの時だけ追加されます
データチャネル¶
[ADD] データチャネルの SCTP のパケットのチェックサム計算を省略する仕組みを追加しました
データチャネルは DTLS レイヤーでデータ保護が行われているため、 SCTP のチェックサムは追加の整合性を得ることができないため省略することができます
クライアント側もチェックサム計算を省略する機能に対応している必要があります
データチャネル利用時の CPU リソースがクライアント、SFU ともに節約されます
https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-sctp-zero-checksum
[ADD] SCTP のチェックサムを省略した回数の統計情報を追加しました
total_received_sctp_zero_checksumtotal_sent_sctp_zero_checksum
クラスター機能¶
これは実験的機能です
Sora 2023.1.x で構築されているクラスターは Sora 2023.2.x へローリングアップデートで移行できます。
警告
2023.2.x から 2023.1.x へのローリングアップデートは行えません。クラスターを再構築する必要があります。
[CHANGE] クラスター関連のログは
cluster.jsonlに出力するよう変更しました[ADD] 最新のバージョンと 1 世代前のバージョンの Sora ノードが混在する状態でのクラスター運用ができるようになりました
全てのクラスターに参加するノードが同じバージョンになるまでは 1 世代前のバージョンと混在できる仕組みを追加しました
Sora 2023.2.xと2023.1.xで、特定のノードのアップデートが難しい場合でも、先に他のノードをアップデートすることができるようになりますクラスターに 1 世代前のバージョンのノードが混在している場合、新しい接続は全て古いバージョンのクラスターの仕組みを利用します
全てのノードが新しいバージョンのクラスターになったタイミングで、新しいバージョンのクラスターの仕組みを利用しはじめます
詳細については クラスター機能 をご確認ください。
注釈
InitCluster API でクラスターを初期化する際には、新旧バージョンは混在させないでください。また Sora 2023.2.x で構成されたクラスターに JoinCluster API で Sora 2023.1.x のノードを参加させることはできません。
メディア配信ワーカー機能¶
これは実験的機能です
メディア配信ワーカー機能は音声や映像を配信するワーカーを複数用意することで、 1 チャネルで高ビットレートの映像をより多くのクライアントに配信することができるようになります。
[ADD]
sora.confに音声や映像の 1 配信に利用するメディア配信ワーカー数を指定する media_publish_worker_number を追加しましたデフォルトのメディア配信ワーカー数は 1 です
同時に 100 クライアント以上へ配信する場合はまず 10 を設定することを推奨します
ワーカー数が 10 であれば 1 チャネル 1000 クライアント以上の配信ができるようになります
最小は 1 で、最大は 500 です
ワーカー数の設定を 10 以上で検討している場合はまずサポートにご相談ください。
詳細については メディア配信ワーカー機能 をご確認ください。
シグナリング通知メタデータ拡張機能¶
これは実験的機能です
[ADD] 認証成功時に、シグナリング通知メタデータ拡張の初期値を払い出す
signaling_notify_metadata_extを追加しました。sora.conf にて signaling_notify_metadata_ext を有効にしている必要があります
デフォルトは
{}です
統計エクスポーター¶
これは実験的機能です
[ADD]
sora.confに統計エクスポーターをデフォルトで有効にするかどうかの default_stats_exporter を追加しましたデフォルトは
trueです
[ADD] 認証成功時の払い出しで接続単位で統計エクスポーターを有効にするかどうかを指定する
stats_exporterを追加しましたfalseを設定した場合はstats_collector_urlが指定されていたとしても統計情報がエクスポートされません
H.265¶
これは実験的機能です
2024 年 6 月 現在、WebRTC H.265 のプロファイルに対応している WebRTC ライブラリはありません。 現在 仕様策定中 です。
[ADD] H.265 サイマルキャストに対応しました
[ADD]
sora.confに H.265 のデフォルトレベル ID を指定する default_h265_param_level_id を追加しましたデフォルトは
93(3.1) です
[ADD] 認証払い出し時に H.265 のデフォルトレベル ID を指定する
video_h265_paramsを追加しました"video_h265_params": {"level_id": 93}のように指定できますlevel_id の値は 0 から 255 の間である必要があります
[ADD] シグナリング時に H.265 のデフォルトレベル ID を指定する
h265_paramsを追加しました"video": {"codec_type": "H265", "h265_params": {"level_id": 93}}のように指定できますlevel_id の値は 0 から 255 の間である必要があります
[ADD]
sora.confに、シグナリング時に H.265 のパラメータ指定を許可するかどうか設定する signaling_h265_params を追加しましたデフォルトは
falseです