リリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2024.1.0-canary¶
メジャーアップデート
- リリース予定:
2024 年 6 月 26 日
ハイライト¶
クラスターリレー機能によりクラスター構築時にどのノードからでも同一のチャネルに接続できるようになりました
クラスターリレー機能利用時に特定のノードに同一セッションの接続を集約するアフィニティ機能を追加しました
クラスター機能利用時にノードが離脱した際、残りのノードでライセンスの同時接続数の合計を維持する機能を追加しました
OBS の WebRTC/WHEP に対応しました
Chrome/Edge のバグにより音声トラックを削除した後、追加した際に正常に録音されない問題に対応しました
MP4 形式での録画アーカイブファイルの出力に対応しました
H.265 コーデックでの録画アーカイブファイルの出力に対応しました
セッションとコネクションに破棄される時間を指定できるライフタイム機能を追加しました
マルチコーデックサイマルキャストに対応しました
正式版¶
今回のリリースで以下の機能は実験的機能から正式版になりました。
廃止情報¶
CentOS 7 向けパッケージの提供を終了しました
イニシャルモードを廃止しました
認証成功時に払い出す
h264_profile_level_id
を廃止しました代わりに
"video_h264_params": {"profile_level_id": "42e01f"}
を使用してください。
sora.conf
からdefault_h264_profile_level_id
を廃止しました代わりに
default_h264_param_profile_level_id
を使用してください
実験的機能として提供していた Lyra を廃止しました
Opus 1.5 で Lyra 同様の低ビットレートが利用可能になったこと、Lyra が 2 年間更新がないことが廃止の理由です
非推奨情報¶
Ubuntu 20.04 の新規提供を終了しました
Ubuntu 20.04 は 2025 年 4 月に終了します
レガシーストリームを非推奨にしました
マルチストリームを利用してください
統計エクスポーター機能を非推奨にしました
統計ウェブフックを利用してください
ユーザエージェント統計を非推奨にしました
RTC 統計を利用してください
ユーザエージェント統計 API を非推奨にしました
RTC 統計 PAI を利用してください
破壊的変更¶
クラッシュを意図的に発生させるテスト用
20221221.GenerateCrashLog
API を20380119.GenerateCrashLog
に変更しましたイベントウェブフック connection.created の
reason
に含まれる値を変更しました2023.2.x までは
disconnected_api_reason
と同じ、またはdisconnected_api_reason
が無ければnull
が含まれていました2024.1.x からは
normal
/disconnected_api
/lifetime_expired
が含まれるようになります2023.2.x までの設定を維持する移行用の設定
legacy_event_webhook_connection_destroyed_reason
を追加しています移行用の設定
legacy_event_webhook_connection_destroyed_reason
は 2024 年 12 月リリース予定の Sora にて廃止します詳細は connection.destroyed の reason をに破壊的変更を行いました をご確認ください
変更履歴¶
[CHANGE] モード機能のイニシャルモードを廃止しました
[CHANGE] 最大帯域幅指定で利用する SDP を
b=TIAS
とb=AS
からb=TIAS
のみに変更しました[CHANGE] 帯域推定で利用する
REMB
で送信するビットレートをb=TIAS
のみに変更したのに合わせて音声ビットレートを含めないようにしました[CHANGE] 音声コーデック Lyra への対応を廃止しました
[CHANGE] クラッシュを意図的に発生させるテスト用
20221221.GenerateCrashLog
API のバージョンを変更し20380119.GenerateCrashLog
に変更しました今後、テスト API はバージョンが全て
20380119
に固定されます
[UPDATE] スポットライト機能を配信ワーカーで利用できるようになりました
[ADD] Ubuntu 24.04 x86_64 と arm64 版のパッケージ提供を開始しました
[ADD]
connection.jsonl
にコネクションを破棄した理由destroyed_reason
を追加しましたdestroyed_reason
にはnormal
/disconnected_api
/lifetime_expired
が含まれます
[ADD]
sora.conf
に VP9 利用時に RTP ヘッダー拡張dependency_descriptor
を払い出すrtp_hdr_ext_dependency_descriptor_vp9
を追加しましたデフォルトは
false
ですこの設定を
true
した場合 Firefox で VP9 が利用できなくなります
[FIX] スポットライト機能利用時に
multistream: true
の指定を不要にしました
セッションウェブフック¶
[ADD] セッションウェブフックがエラーになった理由を、
session_webhook_error
ログにreason
として出力するようにしました[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
/lifetime_expired
のどれかが含まれるようになりましたnormal
は通常のコネクション破棄disconnected_api
はコネクション切断系 API でコネクション破棄lifetime_expired
はコネクションライフタイムによりコネクションの期限が切れたことによるコネクション破棄
[ADD]
sora.conf
にイベントウェブフックconnection.destroyed
に含まれるreason
の値をdisconnected_api_reason
に含まれる値と同じにする移行用の設定legacy_event_webhook_connection_destroyed_reason
を追加しましたデフォルトは
false
です設定を
true
にした場合、disconnected_api_reason
の項目が無い場合はnull
が含まれます設定を
true
にした場合、コネクションライフタイム機能で切断したか際の判断ができなくなりますこの設定は 2024 年 12 月リリース予定の Sora にて廃止されます
録画機能音ズレ問題の改善¶
この問題の改善はレガシー録画、セッション録画の両方で行っています。
Chromium 側のバグにより、 replaceTrack
などを利用して MediaStreamTrack
を削除し、
一定時間経過後に新しく追加した際、音声のタイムスタンプが正しく出力されない問題あります。
この問題により Chromium ベースのブラウザでは録音/録画したファイルにて音ズレが発生していました。
今回新しく利用可能になった RTP ヘッダー拡張 abs-capture-timestamp
を利用する事で、
音声タイムスタンプを実際の値に推測する機能を導入することでこの問題に対応しました。
[CHANGE] rtp_hdrext_abs_capture_time のデフォルトを
true
に変更しました[FIX] RTP ヘッダー拡張録画機能の音声タイムスタンプの推測機能を利用し、Chromium ベースのブラウザで録音/録画を行った際、音ズレが発生する問題を修正しました
abs-capture-time
が利用できない場合は今まで通り音ズレが発生する場合があります
MP4 録画機能¶
これは実験的機能です
WebM だけでなく、MP4 形式での録画ファイル出力に対応しました。
[ADD] MP4 形式での録画に対応しました
MP4 録画機能はレガシー録画では利用できません
[ADD] StartRecording API に
format
(オプション) を追加しましたformat
にはwebm
とmp4
が指定できますformat
のデフォルトはwebm
です
[ADD] セッションウェブフック
session.created
の払い出しにrecording_format
を追加しましたrecording_format
にはwebm
とmp4
が指定できますrecording_format
が未指定の場合はdefault_recording_format
の値が利用されます
H.265 録画機能¶
これは実験的機能です
H.265 コーデックでの録画機能に対応しました。
[ADD] MP4 形式での H.265 録画機能に対応しました
H.265 は MP4 形式のみで録画ができます
WebM 形式では録画はできません
H.265 録画機能はレガシー録画では利用できません
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] OBS WHIP/WHEP で将来的に必須になる
rtcp-mux-only
に対応しました[ADD] OBS WHIP で H.265 (HEVC) に対応しました
OBS 30.x ではまだ WHIP での H.265 はサポートされていません
OBS WHEP 対応¶
これは実験的機能です
OBS での WebRTC/WHEP に対応しました。WebRTC で送られてくる音声と映像を WHEP ソースとして利用する事ができます。
[ADD] OBS WHEP に対応しました
Opus と H.264 の組み合わせのみ利用できます
WHEP での接続は複数の配信が発生したタイミングで切断されます
WHEP での接続は複数の配信が存在するチャネルには接続できません
[ADD]
sora.conf
に OBS (WHEP) を有効にする whep を追加しましたデフォルトは
false
です
[ADD]
sora.conf
に OBS WHEP の Bearer トークンを認証ウェブフックのmetadata
に対応させるキーを指定する sora_conf-whep_bearer_token_metadata_key を追加しましたOBS WHEP からの接続についても Bearer トークンを利用した認証機能が利用できます
デフォルトは未指定です
[ADD] WHEP 向けエンドポイント URL
https://example.com/whep/<channel-id>
を追加しましたクエリー文字列で
client_id
とbundle_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 としてウェブフックで送信するようにしました
"sora_client": { "raw": "Mozilla/5.0 (OBS-Studio/31.0.0; Mac OS X; ja-JP)", "type": "OBS-Studio-WHEP", "version": "31.0.0", "environment": "environment":"Mozilla/5.0 (OBS-Studio/31.0.0; Mac OS X; ja-JP)" },
詳細は OBS (WHEP) 対応機能 をご確認ください。
クラスター機能¶
これは実験的機能です
[CHANGE]
sora.conf
のcluster_auto_reconnect
を廃止しましたクラスター機能の自動リコネクト機能は常に有効になります
[CHANGE]
JoinCluster
API の名前だけを変更したRegisterClusterNode
API を追加しましたRegisterClusterNode
API はJoinCluster
API とまったく同じ動作をしますJoinCluster
API は 2024 年 12 月にリリース予定の Sora で廃止されます
[ADD] クラスター利用時に以下の API でクラスター全体の結果を返せる仕組みを追加しました
Sora_20201013.ListConnections
Sora_20201013.ListChannels
Sora_20171101.GetStatsAllConnections
Sora_20211215.ListUserAgentStats
API に
local
を追加しfalse
を指定した場合はクラスター全体の結果を返しますlocal
のデフォルトはtrue
です
クラスターテンポラリーノード機能¶
これは実験的機能です
クラスターの維持に影響しない一時的なノードを追加できるようになりました。 テンポラリーノードを利用する事でスケールアウト/スケールインが容易になります。
[ADD]
sora.conf
にテンポラリーノードとして利用する cluster_temporary_node を追加しましたデフォルトは
false
ですこの設定は cluster が
true
の時のみ有効ですこの機能は 最大ノード数ライセンス のみ有効です
最大ノード数ライセンス を利用していない場合は
cluster_temporary_node
がtrue
の場合、起動できません
テンポラリーノードはクラスターへ一時的に登録されます
テンポラリーノードは離脱時にクラスターから削除されます
テンポラリーノードをクラスターから削除する場合、 PurgeClusterNode API の実行をする必要がありません
テンポラリーノードだけでクラスターは構築できません
テンポラリーノードはクラスターを構築する初期ノードになることはできません
詳細は cluster_temporary_node をご確認ください。
クラスター機能有効時の合計接続数維持機能¶
クラスターのノードが離脱した際に、合計接続数を残りのノードで維持する機能を追加しました。
[ADD] クラスターでライセンスの同時接続数の合計を維持する機能を追加しました
この機能は
cluster
がtrue
の場合にのみ有効ですこの機能は 最大ノード数ライセンス のみ有効です
同時接続数が 100 の 3 ノードのクラスターで動作させた場合に、 1 ノードが離脱した際、残りの 2 ノードが最大同時接続数が 150 に一時的に引き上げられ、合計での接続数を維持します その後、障害が発生していたノードが復旧した歳には、最大同時接続数は 100 に戻ります 100 を超えている接続は切断されたりはしません
詳細は 合計接続数維持機能 をご確認ください。
クラスターリレー機能¶
これは実験的機能です
クラスター利用時に、一定以上の接続になったタイミングで別ノードからの接続を許可する仕組みを追加しました。
[ADD]
sora.conf
にクラスター利用時にどのノードからも特定のチャネルに接続できるリレー機能を利用するcluster_relay
の設定を追加しましたこの機能は
cluster
がtrue
の場合にのみ利用できますデフォルトで
true
が設定されていますクラスターリレー機能は 最大ノード数ライセンス のみで利用できます
最大ノード数ライセンス を利用していない場合は
cluster_relay
がtrue
になっていても、リレー機能は利用できません
クラスターリレー機能は
"multistream": false
では利用できません詳細は cluster_relay をご確認ください
[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
対象ノードからリレー機能で受信したパケット数の合計
詳細は cluster_relay をご確認ください。
クラスターリレー機能利用時のアフィニティ機能¶
これは実験的機能です
クラスターリレー機能利用時に特定のノードに同一セッションの接続を集約する機能を追加しました。
[ADD]
sora.conf
にリレー機能を利用する際に、アフィニティ機能(同一セッションへの接続を同一ノードに寄せる)` 稼働かを指定するdefault_cluster_affinity
の設定を追加しましたデフォルトで
true
が設定されていますこの機能は
cluster
がtrue
の場合にのみ利用できますこの機能は
cluster_relay
がtrue
の場合にのみ利用できます最大ノード数ライセンス を利用していない場合は
cluster_relay
がtrue
になっていても、リレー機能やアフィニティ機能は利用できません
true
の場合は一定数の接続までは特定のノードに接続を集約します同時接続数がライセンス最大値の場合はリダイレクトが発生します
false
を指定すると、可能な限りリダイレクトをせずにそのノードでリレーが行われます同時接続数がライセンス最大値の場合はリダイレクトが発生します
[ADD] セッションウェブフック
session.created
の戻り値でセッション単位でアフィニティ機能を利用するかどうかを指定できるcluster_affinity
を追加しました払い出しをしない場合は
sora.conf
のdefault_cluster_affinity
の値が利用されます
[ADD] 認証成功時の払い出しで
cluster_affinity
を払い出すことでコネクション単位でのアフィニティ機能を利用するかどうかを指定できる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
にすることで有効になります
{
"type": "notify",
"event_type": "audio-streaming.failed",
"failed_connection_id": "<connection_id>"
}
統計ウェブフック機能¶
実験的機能です
統計エクスポーター に変わる、 統計ウェブフック機能 を追加しました。
[ADD]
sora.conf
に統計ウェブフックの送信先を指定する sora_conf-stats_webhook_url を追加しました[ADD]
sora.conf
に統計ウェブフックログを出力するかどうかを指定する sora_conf-stats_webhook_log` を追加しましたデフォルト
false
ですデフォルトではログを出力しません。ログを出力したい場合は
true
に設定してください
[ADD]
sora.conf
に統計ウェブフック connection.rtc を無視するかどうかを指定する ignore_connection_rtc_webhook を追加しましたデフォルト
false
です
[ADD]
sora.conf
に stats_webhook_worker_number を追加しました[ADD] 統計ウェブフックにクライアントの RTC 統計情報を送信する connection.rtc を追加しました
これは統計エクスポーターの
"type": "connection.user-agent"
と同じデータをウェブフックとしてリクエストを送信します統計エクスポーターでは HTTP/2 を利用して送信していましたが、統計ウェブフックは HTTP/1.1 で送信します
RTC 統計¶
統計ウェブフック機能追加に伴い、ユーザーエージェント統計から RTC 統計へ名前を変更します。
[ADD]
sora.conf
に RTC 統計機能をデフォルトを指定する default_rtc_stats を追加しましたデフォルトは
true
ですtrue
の場合、Sora はクライアントへ RTC 統計の送信を要求します
[ADD] 認証成功時の払い出しに
rtc_stats
を追加しました未指定の場合は default_rtc_stats の値が利用されます
[ADD] ListRtcStats API を追加しました
[ADD] ListChannelRtcStats API を追加しました
[ADD] 実験的機能として``sora.conf`` に
rtc_stats_log
を追加しましたデフォルトで
false
ですstats
項目個別にrtc_stats.jsonl
にログを出力します
ユーザエージェント機能は 2024 年 12 月リリース予定の Sora で廃止されます。
セッションライフタイム機能¶
実験的機能です
セッションに対してライフタイム (破棄されるまでの時間) を設定する機能を追加しました。
[ADD] セッションのライフタイムをセッションウェブフック session.created の戻り値で
session_lifetime
を指定できるようになりました秒 で指定してください
最大 2_592_000 秒 (30 日) まで指定できます
セッション生成後に変更することはできません
session_lifetime
が未指定の場合は 無制限 ですsession.destroyed
のreason
にlifetime_expired
が入りますセッションのライフタイムが終了すると、セッションが破棄され接続します
セッションのライフタイムが終了すると、セッションウェブフック
session.destroyed
が送信されます
コネクションライフタイム機能¶
実験的機能です
コネクションに対してライフタイム (破棄されるまでの時間) を設定する機能を追加しました。
[ADD] コネクションのライフタイムを認証ウェブフックの払い出しで
connection_lifetime
を指定できるようになりました秒 で指定してください
最大 2_592_000 秒 (30 日) まで指定できます
コネクション生成後に変更することはできません
connection_lifetime
が未指定の場合は 無制限 ですconnection.destroyed
のreason
にlifetime_expired
が入りますコネクションのライフタイムが終了すると、コネクションが破棄され切断します
コネクションのライフタイムが終了すると、コネクションウェブフック
connection.destroyed
が送信されますコネクションのライフタイムよりセッションのライフタイムが優先されます
マルチコーデックサイマルキャスト対応¶
実験的機能です
マルチコーデックサイマルキャストはリリース時点では Sora C SDK のみで利用可能です。
[ADD] 複数の映像コーデックを同時に配信するマルチコーデックサイマルキャスト機能に対応しました
ブラウザを利用した場合、配信する機能を利用できません、視聴側は利用できます
マルチコーデックサイマルキャストの配信に対応した SDK のみで利用できます
[ADD]
sora.conf
にてdefault_multi_codec_simulcast
を追加しましたデフォルトは
false
です
[ADD] 認証成功時の払い出しで
multi_codec_simulcast
を true にした場合、マルチコーデックサイマルキャストを利用できるようになりました払い出しをしない場合は
sora.conf
のmulti_codec_simulcast
の値が利用されます
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 には組み込まれていません
転送フィルター機能¶
これは実験的機能です
転送フィルターに 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_api
TerminateSession 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_checksum
total_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 配信に利用する配信ワーカー数を指定する rtp_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
です
2023.1.3¶
バグフィックスアップデート
- リリース:
2023-10-17
変更履歴¶
[FIX] 録画機能利用時、分割録画に失敗かつ分割録画ファイルが一つ以上生成されている場合に、終了処理に失敗する問題を修正しました
終了中の失敗のため、録画処理自体には影響はありません
[FIX] サイマルキャスト機能の
simulcast_encodings
とspotlight_encodings
のscalabilityMode
のデフォルト値をL1T1
に修正しましたAV1 サイマルキャスト利用時に
L1T1
以外のscalabilityMode
を利用すると録画ができない問題があります
[FIX] データチャネルを利用したメッセージング機能利用時に、パケロスが発生すると一定期間パケットを破棄してしまうことがある問題を修正しました
この問題は
ordered
がtrue
でmax_retransmits
やmax_packet_life_time
が設定されている場合に発生します
[FIX] クラスター機能利用時に、ノードの起動・停止と新規チャネルへの接続が重なると接続に失敗することがある問題を修正しました
[FIX]
sora.conf
のdefault_simulcast_rid
の設定値が設定に反映されない問題を修正しました[FIX] 依存している OpenSSL を 3.1.3 にアップデートしました
2023.1.2¶
バグフィックスアップデート
- リリース:
2023-08-10
変更履歴¶
[FIX] Safari 側の問題により Safari 14 系および Safari 15 系の一部で Sora に接続できない問題を修正しました
Safari 15.6 以降では問題が修正されていることを確認しています
2023.1.1¶
バグフィックスアップデート
- リリース:
2023-07-14
変更履歴¶
[ADD] connection ログに
ice_connection_state
という ICE コネクション機能の統計情報を追加しましたサポートにて問題をより素早く解決しやすくするための追加です
[ADD] connection ログに
network_status
に不安定レベル毎の統計情報を追加しましたサポートにて問題をより素早く解決しやすくするための追加です
[ADD] GetStatsConnection API に
ice_connection_state
の統計情報を追加しました[ADD] GetStatsConnection API に
network_status
にレベル毎の統計情報を追加しました[FIX] CentOS 7 x86_64 利用時にセグメンテーション違反で Sora が落ちてしまう問題を修正しました
[FIX] DTLS 再ネゴシエーションの挙動を修正しました
[FIX] スポットライト機能利用時に OBS での WHIP が利用できない問題を修正しました
新しく WHIP エンドポイント URL 指定時に
spotlight=true
を指定することで利用できるようにしましたただし、音声がそのままでは配信されないため FocusSpotlightFixed API を利用して音声を配信する必要があります
[FIX] ICE コネクションステート機能で
disconnected
時のクライアント状態確認の挙動を修正しました[FIX] PutSignalingNotifyMetadata API の結果の誤字を修正しました
[FIX] JoinCluster API のエラー応答の誤字を修正しました
2023.1.0¶
メジャーアップデート
- リリース:
2023-06-28
サポート期間変更¶
Sora 2023.1.0 より、サポート提供期間をメジャーアップデートがリリースされた日から 12 ヶ月後の月末最終日まで に変更しました
2023年 6 月リリースの Sora 2023.1.0 およびその後リリースされる可能性のある Sora 2023.1.x は、2024 年 6 月 30 日までサポート対象となります
詳細は サポートライフサイクル をご確認ください。
ハイライト¶
OBS で WebRTC を利用した配信を実現する WHIP に対応しました
詳細は OBS (WHIP) 機能 をご確認ください
VP9 / AV1 でのサイマルキャストに対応しました
詳細は VP9 と AV1 でのサイマルキャスト をご確認ください
メディアストリームを柔軟に制御するための 転送フィルター機能 を追加しました
音声ストリーミング機能に自動開始/停止機能を追加しました
詳細は 自動開始/停止機能 をご確認ください
IPv6 のみの環境での動作に対応しました
詳細は ipv6_only をご確認ください
互換なしの変更情報¶
移行用の設定である
sora_conf-legacy_webhook_audio_video_json_structure
の設定のデフォルトをfalse
に変更しました移行用の設定である
legacy_log_format
の設定のデフォルトをfalse
に変更しました詳細は sora.conf の legacy_log_format の廃止 をご確認ください
移行用の設定である
legacy_log_extension
の設定のデフォルトをfalse
に変更しました詳細は sora.conf の legacy_log_extension の廃止 をご確認ください
廃止情報¶
Ubuntu 18.04 向けパッケージのサポートを終了しました
詳細は Ubuntu 18.04 サポートの終了 をご確認ください
sora.conf
のsplit_archive_legacy_prefix
を廃止しました詳細は sora.conf の split_archive_legacy_prefix の廃止 をご確認ください
sora.conf
のdefault_multistream
を廃止しました詳細は sora.conf の default_multistream の廃止 をご確認ください
sora.conf
のdcsctp_heartbeat_interval
を廃止しました詳細は DataChannel で利用している SCTP 関連の実験的な設定の廃止 をご確認ください
sora.conf
のdcsctp_slow_start_tcp_style
を廃止しました詳細は DataChannel で利用している SCTP 関連の実験的な設定の廃止 をご確認ください
変更履歴¶
[CHANGE] データチャネル関連の設定である
dcsctp_heartbeat_interval
を廃止しました[CHANGE] データチャネル関連の設定である
dcsctp_slow_start_tcp_style
を廃止しました[CHANGE] サイマルキャスト利用時に
"active": false
を指定したストリームは、~r0
といった SDP が生成されますr1 と r2 が false の場合は
a=simulcast:recv r0;~r1;~r2
のような SDP が生成されますこれは RFC 8853: Using Simulcast in SDP and RTP Sessions に準拠しています
[CHANGE]
sora.conf
のウェブフックの audio と video 項目のレガシーな入れ子構造を利用するsora_conf-legacy_webhook_audio_video_json_structure
のデフォルト値をfalse
に変更しましたこれは移行用設定です
[CHANGE]
sora.conf
のログフォーマットのレガシー形式を維持するlegacy_log_format
のデフォルト値をfalse
に変更しましたこれは移行用設定です
[CHANGE]
sora.conf
の JSONL 形式で出力しているログのレガシー拡張子を.log
に維持するlegacy_log_extension
のデフォルト値をfalse
に変更しましたこれは移行用設定です
[UPDATE] RHEL 9.2 に対応しました
[UPDATE] RHEL 8.8 に対応しました
[ADD] 録画イベントウェブフック
recording.started
にdata.start_timestamp
を追加しました[ADD] 録画イベントウェブフック
recording.started
にdata.split_duration
を追加しました[ADD]
sora.conf
に IPv6 アドレスのみを利用する ipv6_only の設定を追加しました[ADD] クラスター機能が有効な際、セッションウェブフックに
external_signaling_url
項目を追加しましたsora.conf
の external_signaling_url に指定されている値がそのまま入ります
[ADD] モードが
block_new_connection
の場合は、接続に失敗する仕組みを追加しました[ADD] イベントウェブフックにログの書き込みが成功したかどうかを示す
log_written
フラグを追加しましたイベントウェブフックログの書き込みが成功した場合は
"log_written": true
が含まれますイベントウェブフックログの書き込みが失敗した場合は
"log_written": false
が含まれますイベントウェブフックログには常に
log_written
が含まれます
[ADD] 録画機能で録画ファイル生成に失敗したファイル情報を
recording.report
ウェブフックやファイルにfailed_archives
という項目で追加しました[ADD] 録画機能の
recording.report
イベントウェブフックに"file_written"
フラグを追加しましたreport-*.json
ファイルの書き込みに成功した場合"file_written": true
が含まれますreport-*.json
ファイルの書き込みに失敗した場合"file_written": false
が含まれますreport-*.json
ファイルには常にfile_written
が含まれます
[ADD] 認証ウェブフックに
id
を追加しました[FIX] IPv6 のみの環境で Firefox が正常に動作しない問題を修正しました
[FIX] Sora 終了中に HTTP API が呼ばれるとクラッシュログが出力される問題を修正しました
[FIX] 認証ウェブフックで
simulcast
がfalse
の場合でもsimulcast_rid
が含まれていた問題を修正しましたsimulcast
がfalse
の場合はsimulcast_rid
は含まれなくなります
[FIX] 録画機能で H.264 でまれに録画が失敗してしまう問題を修正しました
[FIX] スポットライト機能でフォーカスが当たっていない場合でも、無音の音声パケットが配信されてしまう問題を修正しました
パッケージファイル名の変更¶
OS 名とバージョンの間に -
を入れるようにし、x86_64 もアーキテクチャを追加しました。
展開後のディレクトリにアーキテクチャは含まれません。
[CHANGE]
sora-2023.1.0-ubuntu22.04-arm64v8.tar.gz
からsora-2023.1.0-ubuntu-22.04-arm64v8.tar.gz
に変更しましたubuntu22.04
をubuntu-22.04
に変更しました
[CHANGE]
sora-2023.1.0-ubuntu20.04-arm64v8.tar.gz
からsora-2023.1.0-ubuntu-20.04-arm64v8.tar.gz
に変更しましたubuntu20.04
をubuntu-20.04
に変更しました
[CHANGE]
sora-2023.1.0-ubuntu22.04.tar.gz
からsora-2023.1.0-ubuntu-22.04-x86_64.tar.gz
に変更しましたubuntu22.04
をubuntu-22.04
に変更しましたファイル名に
-x86_64
を追加しました
[CHANGE]
sora-2023.1.0-ubuntu20.04.tar.gz
からsora-2023.1.0-ubuntu-20.04-x86_64.tar.gz
に変更しましたubuntu20.04
をubuntu-20.04
に変更しましたファイル名に
-x86_64
を追加しました
[CHANGE]
sora-2023.1.0-ubuntu20.04.tar.gz
からsora-2023.1.0-ubuntu-20.04-x86_64.tar.gz
に変更しましたubuntu20.04
をubuntu-20.04
に変更しましたファイル名に
-x86_64
を追加しました
[CHANGE]
sora-2023.1.0-rhel9.2.tar.gz
からsora-2023.1.0-rhel-9.2-x86_64.tar.gz
に変更しましたrhel9.2
をrhel-9.2
に変更しましたファイル名に
-x86_64
を追加しました
[CHANGE]
sora-2023.1.0-rhel8.8.tar.gz
からsora-2023.1.0-rhel-8.8-x86_64.tar.gz
に変更しましたrhel8.8
をrhel-8.8
に変更しましたファイル名に
-x86_64
を追加しました
[CHANGE]
sora-2023.1.0-centos7.9.tar.gz
からsora-2023.1.0-centos-7.9-x86_64.tar.gz
に変更しましたcentos7.9
をcentos-7.9
に変更しましたファイル名に
-x86_64
を追加しました
セッション破棄 API¶
[ADD] 指定したセッションを終了させる TerminateSession API を追加しました
channel_id
の指定は必須で、session_id
がオプションで指定できます
ヘルスチェック¶
[ADD]
http://<IP アドレス>:5000/.ok
で Sora のヘルスチェックができるようになりました単体利用時には問題が無ければ常に 200 OK を返します
クラスター利用時には
initial
とblock_new_connection
モード時には503 Service Unavailable
を返します
詳細は ヘルスチェック機能 をご確認ください。
シグナリング通知¶
[ADD] シグナリング通知の
"event_type": "connection.created"
にtimestamp
を追加しましたdata にも
"data": [{"timestamp": "2023-06-28T10:00:00.999999", ...}, .. ]
のようにtimestamp
が含まれるようになります
[ADD] シグナリング通知の
"event_type": "connection.created"
にtimestamp
を含める設定 signaling_notify_connection_created_timestamp をsora.conf
に追加しましたデフォルトは
true
です
映像コーデックパラメーター指定機能¶
[ADD] ウェブフックに映像コーデックパラメーター
"video_vp9_params": {"profile_id": 0}
を追加しましたこの設定を利用する場合
legacy_webhook_audio_video_json_structure
がfalse
である必要があります
[ADD] ウェブフックに映像コーデックパラメーター
"video_av1_params": {"profile": 0}
を追加しましたこの設定を利用する場合
sora_conf-legacy_webhook_audio_video_json_structure
がfalse
である必要があります
[ADD] ウェブフックに映像コーデックパラメーター
"video_h264_params": {"profile_level_id": ""}
を追加しましたこの設定を利用する場合
sora_conf-legacy_webhook_audio_video_json_structure
がfalse
である必要があります
[ADD] シグナリング接続時に H.264 のプロファイルレベル ID を
"video": {"codec_type": "H264", "h264_params": {"profile_level_id": "42e01f"}
のように指定できるようになりましたこの指定を利用する場合は signaling_h264_params が
true
である必要がありますh264_params
を指定する場合は、codec_type
はH264
である必要があります
[ADD] シグナリング接続時に VP9 のプロファイル ID を
"video": {"codec_type": "VP9", "vp9_params": {"profile_id": 0}}
のように指定できるようになりましたこの指定を利用する場合は signaling_vp9_params が
true
である必要がありますvp9_params
を指定する場合は、codec_type
はVP9
である必要がありますprofile_id には 0 から 3 までの値を指定できます
[ADD] シグナリング接続時に AV1 のプロファイルを
"video": {"codec_type": "AV1", "av1_params": {"profile": 0}}
のように指定できるようになりましたこの指定を利用する場合は signaling_av1_params が
true
である必要がありますav1_params
を指定する場合は、codec_type
はAV1
である必要がありますprofile には 0 から 2 までの値を指定できます
[ADD] 認証成功時払い出しに VP9 のプロファイル ID を指定できる
"video_vp9_params": {"profile_id": 0}
を追加しましたこの設定を利用する場合
sora_conf-legacy_webhook_audio_video_json_structure
がfalse
である必要がありますprofile_id には 0 から 3 までの値を指定できます
[ADD] 認証成功時払い出しに AV1 のプロファイルを指定できる
"video_av1_params": {"profile": 0}
を追加しましたこの設定を利用する場合
sora_conf-legacy_webhook_audio_video_json_structure
がfalse
である必要がありますprofile には 0 から 2 までの値を指定できます
[ADD] 認証成功時払い出しに H.264 のプロファイルを指定できる
"video_h264_params": {"profile_level_id": "42e01f"}
を追加しましたこの設定を利用する場合
sora_conf-legacy_webhook_audio_video_json_structure
がfalse
である必要がありますh264_profile_level_id
は 2024 年 6 月リリース予定の Sora にて廃止します
[ADD]
sora.conf
に VP9 のプロファイル ID のデフォルト値を指定する default_vp9_param_profile_id を追加しましたデフォルトは 0 が設定されています
0 から 3 までの値を指定できます
[ADD]
sora.conf
に AV1 のプロファイルのデフォルト値を指定する default_av1_param_profile を追加しましたデフォルトは 0 が設定されています
0 から 2 までの値を指定できます
[ADD]
sora.conf
に H.264 のプロファイルレベル ID のデフォルト値を指定する default_h264_param_profile_level_id を追加しました既存の sora_conf-default_h264_profile_level_id は 2024 年 6 月リリース予定の Sora にて廃止します
OBS (WHIP) 対応¶
OBS が対応予定の WebRTC (WHIP) で配信ができるようになりました。
[ADD]
sora.conf
に OBS (WHIP) を有効にする whip を追加しましたデフォルトは
false
です
[ADD]
sora.conf
に OBS (WHIP) の Bearer トークンを認証ウェブフックのmetadata
に対応させるキーを指定する sora_conf-whip_bearer_token_metadata_key を追加しましたOBS (WHIP) からの接続についても Bearer トークンを利用した認証機能が利用できます
デフォルトは未指定です
[ADD] WHIP 向けエンドポイント URL
https://example.com/whip/<channel-id>
を追加しましたクエリー文字列で
client_id
とbundle_id
を指定できるようになりました
[ADD] WHIP 向けリソース URL
https://example.com/whip-resource/<channel-id>/<secret>
を追加しましたPATCH と DELETE メソッドに対応しています
[ADD] WHIP を利用した際、認証ウェブフックに
whip: true
を追加しましたWHIP を利用していない接続の場合はこの項目は含まれません
詳細は OBS (WHIP) 対応機能 をご確認ください。
VP9 / AV1 サイマルキャスト対応¶
[UPDATE] VP9 と AV1 でのサイマルキャスト機能に対応しました
Chrome 113 以降でスポットライト機能にて VP9 と AV1 が利用できるようになりました
Edge 113 以降でスポットライト機能にて VP9 が利用できるようになりました
[UPDATE] 認証成功時の払い出し
simulcast_encodings
とspotlight_encodings
でscalabilityMode
を指定できるようになりましたデフォルトでは
scalabilityMode
にL1T3
が設定されています
[UPDATE] simulcast_encodings_file と spotlight_encodings_file で
scalabilityMode
を指定できるようになりました
詳細は scalabilityMode をご確認ください。
Lyra 録音機能¶
[ADD] 録画機能に Lyra コーデックを利用した際に WebM ファイルで録音する仕組みを追加しました
詳細は recording-lyra をご確認ください。
転送フィルター機能¶
今まで PauseRtpStream / ResumeRtpStream API で実現していたメディアストリームの停止/再開をより細かく、柔軟に設定をできるようにした、 転送フィルター機能を追加しました。
[ADD] セッション生成時
forwarding_filter
を指定することでチャネル単位の転送フィルターを追加できるようになりました[ADD] シグナリング接続時に
forwarding_filter
を指定することで接続単位の転送フィルターを追加できるようになりました[ADD] 認証成功時に
forwarding_filter
を指定することで接続単位の転送フィルターを追加できるようになりました[ADD] チャネル単位でチャネルとコネクションの転送フィルターを確認できる ListForwardingFilters API を追加しました
[ADD] チャネル単位の転送フィルターを作成する CreateChannelForwardingFilter API を追加しました
[ADD] チャネル単位の転送フィルターを更新する UpdateChannelForwardingFilter API を追加しました
[ADD] チャネル単位の転送フィルターを削除する DeleteChannelForwardingFilter API を追加しました
[ADD] コネクション単位の転送フィルターを作成する CreateConnectionForwardingFilter API を追加しました
[ADD] コネクション単位の転送フィルターを更新する UpdateConnectionForwardingFilter API を追加しました
[ADD] コネクション単位の転送フィルターを削除する DeleteConnectionForwardingFilter API を追加しました
[ADD] 転送フィルターで転送がブロックされたタイミングでシグナリング通知する機能を追加しました
[ADD] 転送フィルターで転送がブロックが解除されたタイミングでシグナリング通知する機能を追加しました
[ADD]
sora.conf
に転送フィルターをシグナリング経由で指定できるかどうかを設定する signaling_forwarding_filter を追加しましたデフォルト は
false
です
[ADD]
sora.conf
に転送フィルターのブロックの状態が変わったタイミングでシグナリング通知を飛ばすかどうかを設定する signaling_notify_forwarding_filter を追加しましたデフォルト は
true
です
詳細は 転送フィルター機能 をご確認ください。
SDP 再利用機能¶
今までマルチストリーム利用した際に、クライアント切断してもその SDP が残ってしまう問題がありました。 今回のリリースで、SDP を再利用する仕組みにより SDP が残る問題を解決しました。
[CHANGE]
recycle_media_section
がtrue
の際に、SDP を再利用する仕組みを追加しました[ADD]
sora.conf
に SDP の再利用を行う recycle_media_section 設定を追加しましたデフォルトは
true
です
音声ストリーミング機能¶
[ADD] 音声ストリーミングの結果通知の状態を確認する ListAudioStreamingResultPushState API を追加しました
[ADD] 音声ストリーミング機能にサブスクライブが 0 になると音声ストリーミングを停止し、サブスクライブが 1 以上になると音声ストリーミングを開始する機能を追加しました
この機能はセッション生成時に指定できます
この機能が有効になっている場合は音声ストリーミング開始/終了 API は利用できません
[ADD] セッションウェブフックの払い出しに音声ストリーミングの自動開始と停止を有効にする
audio_streaming_auto
を追加しましたこの設定を利用する場合は必ず
audio_streaming
をtrue
で払い出す必要があります
[ADD]
sora.conf
に音声ストリーミングのウェブフックを送信するかどうかを設定する ignore_audio_streaming_webhook を追加しましたデフォルトは
true
で、送信しません
[ADD] 音声ストリーミング機能の開始のウェブフック
audio-streaming.started
を追加しましたsora.conf
にて ignore_audio_streaming_webhook をfalse
にすることで送信します
[ADD] 音声ストリーミング機能の終了のウェブフック
audio-streaming.stopped
を追加しましたsora.conf
にて ignore_audio_streaming_webhook をfalse
にすることで送信します
WebSocket 経由シグナリングでの ping / pong / stats のインターバルやタイムアウトの設定¶
WebSocket 経由でのシグナリングにおいて、 "type": "ping"
や "type": "pong"
のインターバルやタイムアウトを設定できるようになりました。
また "type": "ping"
送信時の "stats": true
にする間隔を指定できるようになりました。
[CHANGE]
"type": "ping"
時におくる"stats": true
の間隔を 5 秒から 30 秒に変更しました[ADD]
sora.conf
に ping を送信する間隔を指定する websocket_signaling_ping_interval 設定を追加しましたデフォルトは
5 s
です最小は
5 s
です最大は
300 s
です
[ADD]
sora.conf
に pong のタイムアウト時間を指定する websocket_signaling_pong_timeout 設定を追加しましたデフォルトは
60 s
です最小は
60 s
です最大は
600 s
です
[ADD]
sora.conf
に ping 送信時に"stats": true
にする間隔を指定する websocket_stats_timer_interval 設定を追加しましたデフォルトは
30 s
です最小は
30 s
です最大は
600 s
です
クラスター機能利用時のディスク障害時の対応を追加¶
[CHANGE] クラスター利用時に
block_new_connection
モードへ遷移した場合には新規接続のリダイレクトを行わないように変更しました[ADD] クラスター利用時にディスク障害が発生した際に、
block_new_connection
モードへ遷移する機能を追加しました