古いリリースノート¶
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- CHANGE
後方互換性のない変更
- FIX
バグ修正
2025.2.1¶
バグフィックスアップデート
- リリース:
2026 年 04 月 13 日
変更履歴¶
- [FIX] OBS Studio 32.1.0 における WHIP の仕様変更に伴い、Sora 2025.2.0 以前のバージョンで配信ができない問題を修正しました
- 詳細については OBS Studio と組み合わせて利用する際の注意 をご確認ください
2025.2.0¶
メジャーアップデート
- リリース:
2025 年 12 月 17 日
ハイライト¶
- 環境変数
SORA_*でsora.confの設定を上書きできる機能を追加しました - 実験的機能として、クライアントから Sora の一部の HTTP API を DataChannel 経由で呼び出すことができる RPC 機能 を追加しました
- 実験的機能として、視聴側の環境に合わせてサイマルキャストのストリームを自動で切り替える機能を追加しました
- 実験的機能として、ノード単位での最大同時接続数制限機能を追加しました
- 実験的機能として、認証ウェブフックで録画を開始する機能を追加しました
正式版¶
今回のリリースで以下の機能が実験的機能から正式版になりました。
破壊的変更¶
- マルチストリームにおける映像ビットレート自動シェアリング機能のデフォルト設定を 無効 に変更しました
- もしビットレート自動シェアリング機能を有効にしたい場合は
sora.confの multistream_auto_sharing_video_bit_rate をtrueに設定してください
- もしビットレート自動シェアリング機能を有効にしたい場合は
- 録画機能(セッション単位)のデフォルト出力フォーマットを MP4 に変更しました
sora.confのdefault_recording_formatのデフォルト値をwebmからmp4に変更しました
sora.confに テスト API を利用するかどうかを指定する test_api を追加して、デフォルト無効にしました- 利用する場合は test_api を
trueに設定してください
- 利用する場合は test_api を
廃止機能¶
- レガシー録画関連 API を廃止しました
- StartRecording API を廃止しました
- StopRecording API を廃止しました
- GetStartedRecording API を廃止しました
- ListStartedRecording API を廃止しました
- ListArchiving API を廃止しました
- RTP ストリーム停止/再開 関連 API を廃止しました
- PauseRtpStream API を廃止しました
- ResumeRtpStream API を廃止しました
- ListPauseRtpStreams API を廃止しました
- 再送要求の頻度を利用した不安定レベルの通知機能を廃止しました
sora.confのlegacy_signaling_notify_network_statusを廃止しました
sora.confのturnを廃止し、 TURN 機能 を無効化することができなくなりましたsora.confのwhip_turnを廃止し、 WHIP 機能 の TURN のサポートを無効化することができなくなりましたsora.confのwhep_turnを廃止し、 WHEP 機能 の TURN のサポートを無効化することができなくなりましたsora.confのice_connection_state_disconnected_timeoutを廃止しました- 今後は default_ice_connection_state_disconnected_timeout をご利用ください
sora.confのice_connection_state_failed_timeoutを廃止しました- 今後は default_ice_connection_state_failed_timeout をご利用ください
sora.confのav1を廃止し、 AV1 のサポートを無効化することができなくなりましたsora.confのh265を廃止し、 H.265 のサポートを無効化することができなくなりましたsora.confのdevtoolsを廃止し、組み込みの開発ツールが利用できなくなりました- 開発ツールを利用する場合は NGINX のリバースプロキシやホスティングを利用してください
- 詳細は 開発ツール をご覧ください
sora.confのsignaling_forwarding_filterを廃止しました
変更履歴¶
- [CHANGE] multistream_auto_sharing_video_bit_rate をデフォルト無効にしました
- もしビットレート自動シェアリング機能を有効にしたい場合は multistream_auto_sharing_video_bit_rate を
trueに設定してください
- もしビットレート自動シェアリング機能を有効にしたい場合は multistream_auto_sharing_video_bit_rate を
- [CHANGE]
sora.confに テスト API を利用するかどうかを指定する test_api を追加し、デフォルトはテスト API を無効にしました- テスト API を利用する場合は test_api を
trueに設定してください
- テスト API を利用する場合は test_api を
- [CHANGE] レガシー録画機能を廃止しました
- レガシー録画機能廃止に伴い
sora.confのlegacy_recordingを廃止しました
- レガシー録画機能廃止に伴い
- [CHANGE] コネクションログの
e2eeを廃止しました- E2EE 機能は 2024.2.0 で廃止されており、ログに出力しても意味がないため廃止しました
- 認証ウェブフックの
e2ee項目は削除しておりません
- [CHANGE] コネクションログの
simulcast_encodingsの出力条件を変更しました- サイマルキャストが有効でかつスポットライトが無効で、ロールが
sendonlyまたはsendrecvの場合に出力されるようになりました
- サイマルキャストが有効でかつスポットライトが無効で、ロールが
- [CHANGE] コネクションログの
spotlight_encodingsの出力条件を変更しました- サイマルキャストが無効でかつスポットライトが有効で、ロールが
sendonlyまたはsendrecvの場合に出力されるようになりました
- サイマルキャストが無効でかつスポットライトが有効で、ロールが
- [CHANGE] シグナリングメッセージの
"type": "re-answer"の受信待ち受け時間を 30 秒に制限しました - [ADD] スポットライトシグナリング通知を送るかどうかを
sora.confのsignaling_notify_spotlightで指定できるようになりました- デフォルトは
trueです falseに設定するとスポットライトシグナリング通知spotlight.{focused, unfocused}が送信されなくなります
- デフォルトは
- [ADD] コネクションログの項目を追加しました
id: コネクションログのユニーク IDversion: Sora のバージョンlabel: Sora のラベルnode_name: Sora のノード名
- [FIX] セッション単位での最大同時接続数制限機能 と セッション単位でのクライアント ID 重複時の既存接続の追い出し機能 を同時に有効にした場合に、最大同時接続数に達している状態で追い出しが発生した際、追い出しは成功するが最大同時接続数制限により接続が失敗する問題を修正しました
- [FIX] 音声の SDP に
a=rtcp-fbのtransport-ccが付与されていない問題を修正しました - [FIX] サイマルキャストで特定の
ridストリームが復帰した際に、最初のキーフレームの SRTP 復号をスキップしてしまう問題を修正しました - [FIX] スポットライト機能利用時に
spotlight_numberを超える数のフォーカスが同時に当たり、かつ、次のアンフォーカスイベント発生まで、同時フォーカスが維持され続ける問題を修正しました - [FIX] スポットライト機能利用時に sora_conf-default_spotlight_focus_min_interval の値より sora_conf-default_spotlight_auto_unfocus_interval の値が短い場合に sora_conf-default_spotlight_auto_unfocus_interval が優先される問題を修正しました
- [FIX] サイマルキャスト機能利用時に、認証成功時の払い出しで
simulcast_ridを指定しても無視されてしまう問題を修正しました
role が recvonly の場合の codec_type や bit_rate などの指定を無視する変更¶
マルチストリーム機能のみの提供になっても、
Sora 2025.1.0 で廃止したレガシーストリームとの互換性を維持するために、
role が recvonly の場合でもシグナリングや認証成功時の払い出しで、
codec_type や bit_rate などの指定ができていました。
Sora 2025.2.0 からは、下記のように codec_type や bit_rate などを指定したとしても無視する仕様に変更しました。
- [CHANGE]
roleがrecvonlyの場合、シグナリングや認証成功時に以下の指定が無視されるようになりましたaudioのcodec_type、bit_rate、opus_paramsvideoのcodec_type、bit_rate、simulcast、vp9_params、av1_params、h264_params、h265_params
- [CHANGE]
roleがrecvonlyの場合、connection ログに以下の情報が出力されなくなりましたaudioのcodec_type、bit_rate、opus_paramsvideoのcodec_type、bit_rate、simulcast、vp9_params、av1_params、h264_params、h265_params
環境変数による sora.conf の設定上書き機能¶
環境変数にて SORA_<設定項目名> を指定することで sora.conf の設定を上書きできる機能を追加しました。
例えば SORA_DEFAULT_VIDEO_BIT_RATE=500 という環境変数を指定することで sora.conf の default_video_bit_rate の設定を上書きできます。もし設定が default_video_bit_rate = 300 であっても、Sora は起動時に環境変数の値を優先して 500 として動作します。
- [ADD] 環境変数にて
SORA_<設定項目名>を指定することでsora.confの設定を上書きできるようになりました
詳細は 環境変数による設定上書き機能 をご確認ください。
RPC 機能¶
これは実験的機能です
クライアントから、Sora の一部の HTTP API をデータチャネル経由で呼び出すことができる RPC 機能を追加しました。 この機能を利用するにはデータチャネルシグナリングを有効にする必要があります。
- [ADD]
sora.confに RPC 機能を指定する data_channel_rpc を追加しました- デフォルトは
trueです
- デフォルトは
- [ADD] 認証成功時の払い出しに、利用できる RPC メソッドの一覧を指定する
rpc_methodsを追加しました"rpc_methods": ["2025.2.0/RequestSimulcastRid"]のように指定します- 未指定または空リスト
[]の場合は RPC 機能を利用できません
- [ADD] シグナリングメッセージ
"type": "offer"に認証成功時に払い出したrpc_methodsが含まれるようになりました - [ADD]
connection.jsonlにrpc_methodsが含まれるようになりました - [ADD] メタデータ拡張機能の PutSignalingNotifyMetadata API を RPC 機能で利用できるようになりました
- メソッド名は 2025.2.0/PutSignalingNotifyMetadata です
channel_idとconnection_idは省略することができます
- [ADD] メタデータ拡張機能の PutSignalingNotifyMetadataItem API を RPC 機能で利用できるようになりました
- メソッド名は 2025.2.0/PutSignalingNotifyMetadataItem です
channel_idとconnection_idは省略することができます
- [ADD] サイマルキャスト機能の RequestSimulcastRid API を RPC 機能で利用できるようになりました
- メソッド名は 2025.2.0/RequestSimulcastRid です
channel_idとreceiver_connection_idは省略することができます
- [ADD] スポットライト機能の RequestSpotlightRid API を RPC 機能で利用できるようになりました
- メソッド名は 2025.2.0/RequestSpotlightRid です
channel_idとrecv_connection_idは省略することができます
- [ADD] スポットライト機能の ResetSpotlightRid API を RPC 機能で利用できるようになりました
- メソッド名は 2025.2.0/ResetSpotlightRid です
channel_idとrecv_connection_idは省略することができます
詳細は RPC 機能 をご確認ください。
セッション単位でのクライアント ID 重複時の既存接続の追い出し機能¶
これは実験的機能です
- [ADD] クライアント ID 重複時の既存接続の追い出し機能が有効になっているセッションにおいて、追い出される対象の既存のコネクションが存在する場合に、そのクライアントの
ice_connection_stateを認証ウェブフックに含めるようになりました- シグナリング接続時に、その接続と重複した
client_idが指定されている追い出し対象のコネクションがすでに存在する場合にのみice_connection_stateが含まれます
- シグナリング接続時に、その接続と重複した
サイマルキャスト新機能追加に関する設定項目名と API 名の変更¶
Sora 2025.2.0 から rid に none を設定できるようになりました。これに伴い sora.conf の設定や、接続時、認証成功時の払い出し項目、API の名前をよりわかりやすくしたものを追加しました。
Sora 2025.2.0 より前の古い設定項目名や API 名も引き続き利用できますが、2027 年 12 月リリース予定の Sora にて廃止予定です。新しい設定項目名や API 名をご利用ください。
古い設定項目や API では rid に none を指定することはできません。
ResetRtpStream API については活用場所が難しく、 RequestSimulcastRid で代替できることから 2026 年 12 月にて廃止することにしました。
- [CHANGE] ResetRtpStream API を非推奨にしました
- 今後は RequestSimulcastRid API をご利用ください
- [ADD]
ridの切り替えをリクエストする RequestSimulcastRid API を追加しましたridはr0、r1、r2に加えてnoneが指定できるようになりました- RequestRtpStream API は 2027 年 12 月リリース予定の Sora にて廃止予定です
send_connection_idをsender_connection_idへ変更していますrecv_connection_idをreceiver_connection_idへ変更しています
- [ADD] サイマルキャスト視聴側がどの rid を視聴するかのデフォルトを指定する
sora.confの default_simulcast_request_rid を追加しました- デフォルトは
r0です simulcastがtrueの場合にのみ有効ですsora.confの default_simulcast_rid は 2027 年 12 月リリース予定の Sora にて廃止予定です
- デフォルトは
- [ADD] シグナリング接続時に視聴するストリームの rid を指定する
simulcast_request_ridを追加しましたsimulcast_request_ridにはnone、r0、r1、r2、 を指定できますsimulcast_request_ridはroleがsendrecvまたはrecvonlyの場合にのみ有効ですsimulcastがtrueの場合にのみ有効です- シグナリング接続時の
simulcast_ridは 2027 年 12 月リリース予定の Sora にて廃止予定です
- [ADD] 認証成功時の払い出しにて視聴するストリームの rid を指定する
simulcast_request_ridを追加しましたsimulcast_request_ridにはnone、r0、r1、r2を指定できますsimulcast_request_ridはroleがsendrecvまたはrecvonlyの場合にのみ有効ですsimulcastがtrueの場合にのみ有効です- 認証成功時の
simulcast_ridは 2027 年 12 月リリース予定の Sora にて廃止予定です
- [ADD] 認証成功時の払い出しにて RPC 機能経由で
2025.2.0/RequestSimulcastRidで利用できるridを指定するsimulcast_rpc_ridsを追加しました- デフォルトは未指定で、どれも指定できません
simulcastがtrueの場合にのみ有効です"simulcast_rpc_rids": ["none", "r0", "r1"]のように指定します
サイマルキャスト機能利用時の視聴環境に合わせたストリーム自動切り替え機能¶
これは実験的機能です
実験的機能として、サイマルキャスト機能に Sora 側で視聴環境に合わせてストリームを自動で切り替える仕組みを追加しました。
例えば、 rid が r2 のストリームが高ビットレート、 r1 のストリームが低ビットレートの場合、視聴環境が悪化した場合に Sora が自動で r2 から r1 に切り替えます。
- [ADD]
sora.confにサイマルキャスト機能利用時に、視聴環境に合わせて Sora が自動で配信するridストリームを切り替える default_simulcast_auto_rids を追加しました- デフォルトは未指定で、自動では切り替わりません
- default_simulcast_auto_rids はサイマルキャストが有効な場合のみ利用できます
default_simulcast_auto_rids = r0, r1のように複数指定することができます- 指定した
ridの中で視聴環境に合わせて Sora が自動で切り替えます
- [ADD] 認証成功時の払い出しに、サイマルキャスト利用時に、視聴側の環境に合わせて配信する
ridストリームを Sora が自動で切り替える simulcast_auto_rids の払い出し を追加しました- デフォルトは default_simulcast_auto_rids の値です
- simulcast_auto_rids の払い出し を払い出す場合は同時に
simulcastをtrueで払い出す必要があります ridsには["r0", "r1"]のように複数指定できます- 指定した
ridの中で視聴環境に合わせて Sora が自動で切り替えます - 空リスト
[]で指定した場合は自動で切り替わらなくなります
- [ADD] サイマルキャスト機能利用時に視聴側の環境に合わせて Sora が自動で配信する
ridストリームを切り替えるように変更できる ChangeSimulcastAuto API を追加しました- デフォルトは default_simulcast_auto_rids の値です
- ChangeSimulcastAuto API はサイマルキャストが有効な場合のみ利用できます
ridsには["r0", "r1"]のように複数指定できます- 指定した
ridの中で視聴環境に合わせて Sora が自動で切り替えます - 空リスト
[]を指定した場合、自動切り替えは無効になります
- [ADD]
sora.confにサイマルキャスト機能利用時にsimulcast_auto_ridsを指定した際、自動で切り替わる最小の間隔を秒数で指定します simulcast_auto_min_switch_interval を追加しました- デフォルトは
5 sです - 範囲は
1..300 sです
- デフォルトは
- [ADD] 統計情報にサイマルキャスト機能利用時に視聴環境に自動で切り替わる
simulcast_autoを追加しましたtarget_sender_count- サイマルキャスト rid 切り替えの対象となった送信ストリーム数
total_switched- サイマルキャスト rid が自動で切り替わった回数
total_up_trend- 帯域推定が上昇傾向だった際に切り替えをスキップした回数
total_history_not_ready- 履歴サイズが十分でないために切り替えをスキップした回数の累計値
サイマルキャスト機能利用時の rid 切り替わり時のシグナリング通知機能¶
これは実験的機能です
今まで視聴側で simulcast の rid が切り替わったことを知る手段がありませんでした。
今回、サイマルキャストの rid が切り替わった際にシグナリング通知が送信される機能を追加しました。
- [ADD] サイマルキャスト機能で rid が切り替わった際に送信するシグナリング通知
simulcast.switchedを追加しました - [ADD]
sora.confにサイマルキャストの rid が切り替わった際にシグナリング通知を送信するかどうかを指定する signaling_notify_simulcast_switched を追加しました- デフォルトは
trueです
- デフォルトは
{
"type": "notify",
"timestamp": "string",
"event_type": "simulcast.switched",
"sender_connection_id": "string",
"priority": "higher | lower",
"trigger": "api | rpc | sender | receiver",
// simulcast_rpc_rids を指定した場合に含まれます
// 未指定の場合は "rpc_rids": [] になります
"rpc_rids": ["none", "r0", "r1", "r2"],
// simulcast_auto_rids を指定した場合に含まれます
// 未指定の場合は "auto_rids": [] になります
"auto_rids": ["none", "r0", "r1", "r2"],
"request_rid": "none | r0 | r1 | r2",
"current_rid": "none | r0 | r1 | r2",
"previous_rid": "none | r0 | r1 | r2",
}
認証ウェブフック経由での録画開始機能¶
これは実験的機能です
録画はセッションウェブフック session.created のタイミングで開始するか StartRecording API を呼び出すことで開始できますが、ウェブフックを利用して途中から録画を開始する事ができませんでした。
今回、実験的機能として認証ウェブフックの戻り値で録画を開始できる仕組みを追加しました。
- [ADD]
sora.confに認証ウェブフック成功時の払い出しで録画を開始できるかどうかを指定する auth_webhook_recording を追加しました。 - [ADD] 認証ウェブフックの戻り値に
recordingを追加しましたrecordingにtrueを指定すると録画が既に開始されていない場合は録画を開始しますrecordingにfalseを指定した場合は無視します
- [ADD] 認証ウェブフックの戻りに
recordingにtrueを指定した際に利用できる録画用の項目を追加しましたrecording_expire_timerecording_split_onlyrecording_split_durationrecording_metadatarecording_format- これらの設定の詳細については 認証ウェブフック をご確認ください。
ノード単位での最大同時接続数制限機能¶
これは実験的機能です
Sora は今までノード単位の同時接続数はライセンスでのみ制限をしていましたが、 低スペックのインスタンスを一時的に利用する際、ノード単位での最大同時接続数を制限したいという要望がありました。
今回 sora.conf にてノード単位での接続数を制限する仕組みを追加しました。
この機能を利用することで、例えば、ライセンスでは 300 同時接続まで許可されているが、ノード単位で 100 同時接続までに制限するといった運用が可能になります。
- [ADD]
sora.confにノード単位での最大同時接続数を制限するmax_connectionsを追加しました- デフォルトは未指定で無制限です
- 0 から 10000 までの値を指定できます
- この値をチェックする前にライセンスによる最大同時接続数をチェックするため、ライセンスによる最大同時接続数を超えた接続はできません
セッション単位での最大同時接続数を無視する機能¶
これは実験的機能です
セッション作成時の max_connections にてセッション単位の最大同時接続数を制限できますが、
特定のクライアントは、このセッション単位の最大同時接続数の制限を無視して接続を許可したい場合があります。
今回、認証成功時の払い出しでセッション単位の最大同時接続数を無視して接続を許可する仕組みを追加しました。
- [ADD] 認証成功時の払い出しにて
ignore_max_connectionsを指定できるようになりました- セッション単位の最大同時接続数制限が指定されている場合に有効になります
ignore_max_connectionsにtrueを指定するとセッション単位での最大同時接続数制限を無視して接続を許可します
- [ADD] コネクションログ
connection.jsonlにignore_max_connectionsを追加しました- コネクションログの
ignore_max_connectionsがtrueの場合、セッション単位の最大同時接続数制限を無視して接続が許可されたことを示します
- コネクションログの
2025.1.0¶
メジャーアップデート
- リリース:
2025 年 6 月 25 日
ハイライト¶
- クラスターリレー機能のツリー化によりノードの負荷を分散できるようになりました
- クラスターリレー機能が正式版になりました
- クラスターアフィニティ機能やテンポラリーノード機能も正式版になりました
- セッション単位で最大同時接続数を制限できる機能が正式版になりました
- セッション単位でのクライアント ID 重複時の既存接続の追い出し機能を追加しました
- 帯域推定機能を追加しました
- メディア配信ワーカー自動スケール機能を追加しました
正式版¶
今回のリリースで以下の機能が実験的機能から正式版になりました。
- リレー機能
- アフィニティ機能
- テンポラリーノード機能
- セッション単位での最大同時接続数制限機能の max_connections 払い出し
- ListSessions API
- GetSession API
- RTC 統計情報 API
- 統計ウェブフック
破壊的変更¶
- WHIP の TURN 機能をデフォルトで有効にしました
- 2024 年 7 月リリースの OBS 30.2 より以前の OBS が接続できなくなります
- 2025 年 12 月リリース予定の Sora にて WHIP の TURN 機能の設定
whip_turnを廃止し、TURN 機能を無効にできなくなります
- WHEP の TURN 機能をデフォルトで有効にしました
- WHEP の TURN 機能を無効にする設定は非推奨になりました
- 2025 年 12 月リリース予定の Sora にて WHEP の TURN 機能の設定
whep_turnを廃止し、TURN 機能を無効にできなくなります
廃止情報¶
- レガシーストリームを廃止しました
multistream項目をウェブフック、ログ、API から削除しましたmultistreamをfalseにして接続した場合バリデーションエラーになります
- ユーザーエージェント統計機能を廃止しました
- 今後は RTC 統計機能をご利用ください
- 統計エクスポーター機能を廃止しました
- モード機能のウェブフック
session.vanishedを廃止しました - メディア配信ワーカー数を指定する
media_publish_worker_numberを廃止しました- ワーカーは自動でスケールするようになりました
- 自動スケールの閾値は
sora.confの media_publish_worker_autoscale_threshold を利用してください - デフォルトは 50 で、50 接続単位でワーカーを増減させます
非推奨情報¶
- 組み込み TURN 機能を無効にする
turnをfalseに設定することを非推奨にしました- 2025 年 12 月リリース予定の Sora にて組み込み TURN 機能を無効にする設定
turnを廃止し、組み込み TURN 機能を無効にできなくなります
- 2025 年 12 月リリース予定の Sora にて組み込み TURN 機能を無効にする設定
- セッション単位での最大同時接続数制限機能の
trial_max_connectionsを非推奨にしました- 今後は max_connections をご利用ください
- 2025 年 12 月リリース予定の Sora にて廃止します
sora.confのice_connection_state_disconnected_timeoutを非推奨にしました- default_ice_connection_state_disconnected_timeout をご利用ください
- 2025 年 12 月リリース予定の Sora にて廃止します
sora.confのice_connection_state_failed_timeoutを非推奨にしました- default_ice_connection_state_failed_timeout をご利用ください
- 2025 年 12 月リリース予定の Sora にて廃止します
- AV1 を無効にする必要がないと判断したため、
sora.confのav1をfalseにする設定を非推奨としました- 2025 年 12 月リリース予定の Sora にてこの設定は廃止し、AV1 の利用を無効化することはできなくなります
- H.265 を無効にする必要がないと判断したため、
sora.confのh265をfalseにする設定を非推奨としました- 2025 年 12 月リリース予定の Sora にてこの設定は廃止し、H.265 の利用を無効化することはできなくなります
- WHIP の TURN 機能を無効にする
whip_turnをfalseに設定することを非推奨にしました- 2025 年 12 月リリース予定の Sora にて WHIP の TURN 機能の設定
whip_turnを廃止し、TURN 機能を無効にできなくなります
- 2025 年 12 月リリース予定の Sora にて WHIP の TURN 機能の設定
- WHEP の TURN 機能を無効にする
whep_turnをfalseに設定することを非推奨にしました- 2025 年 12 月リリース予定の Sora にて WHEP の TURN 機能の設定
whep_turnを廃止し、TURN 機能を無効にできなくなります
- 2025 年 12 月リリース予定の Sora にて WHEP の TURN 機能の設定
- WHIP の RFC 9725 化に伴い
/whip-resource/:channel_id/:secret/を非推奨にしました- NGINX の設定を
resourceからsessionに変更してください - 2025 年 12 月リリース予定の Sora にて廃止します
- NGINX の設定を
- WHEP も WHIP に合わせて
/whep-resource/:channel_id/:secret/を非推奨にしました- NGINX の設定を
resourceからsessionに変更してください - 2025 年 12 月リリース予定の Sora にて廃止します
- NGINX の設定を
変更履歴¶
- [CHANGE] スポットライト機能利用時に、フォーカスなしの音声転送の上限レートを指定する
sora.confの sora_conf-default_spotlight_unfocus_audio_rate_limit のデフォルト値を 2 から 5 に引き上げました- この変更により多人数で同時に発話があった際の音声がより快適になります
- [CHANGE] スポットライト機能利用時に、フォーカスなしの音声転送の上限レートを指定する
sora.confの sora_conf-default_spotlight_unfocus_audio_rate_limit の上限を 20 に引き上げました - [CHANGE] RTP ヘッダー拡張
abs-send-timeの利用を廃止しました- libwebrtc 側でもここ数年利用されていません
- Deprecate and remove the abs-send-time extension [398065914] - WebRTC
- [FIX] セッション終了と DisconnectChannel API の実行が重なった場合、
SIGNALING-API-INTERNAL-ERRORエラーが出力されていたのを修正しました - [FIX] セッション終了と DisconnectClient API の実行が重なった場合、
SIGNALING-API-INTERNAL-ERRORエラーが出力されていたのを修正しました - [FIX] セッション終了と DisconnectConnection API の実行が重なった場合、
SIGNALING-API-INTERNAL-ERRORエラーが出力されていたのを修正しました - [FIX] 同じチャネル ID のセッション破棄と作成が連絡した場合、録画情報がセッションをまたいで使い回される問題を修正しました
- [FIX] パケロスが多い状況で DataChannel が正常に動作せず、メッセージを送信しなくなる問題を修正しました
- [FIX] パケロスが多い状況で OBS WHIP を利用して高いビットレートの配信を録画しようとしたときに、録画が正常に行われない問題を修正しました
- [FIX] OBS WHIP 利用時に H.265 の録画開始後、すぐに終了すると録画が正常に行われない問題を修正しました
- [FIX] SIGTERM で Sora を終了した際に、意図しないログが出力されてしまう問題を修正しました
- [FIX] H.264 録画時に H.264 NAL Unit の SEI をスキップするように修正しました
- [FIX] クラスター機能利用時にスポットライトのアンフォーカスの音声転送の上限レートが正しく設定されない問題を修正しました
- [FIX] クラスターリレー機能利用時にスポットライトのアンフォーカス音声のペース制限の対象となるパケット判定が正しく行われない問題を修正しました
パッケージ¶
- [UPDATE] RHEL 9 x86_64 版のパッケージを 9.6 へ更新しました
- [ADD] RHEL 10 x86_64 版のパッケージを追加しました
sora.conf¶
- [CHANGE] セッションウェブフック
session.vanished廃止に伴いsora.confのignore_session_vanished_webhookを廃止しました - [CHANGE]
sora.confの設定コメントをドキュメントの URL のみに変更しました - [CHANGE]
sora.confのコメントの値をデフォルト値に変更しました - [CHANGE]
sora.confのコメントのデフォルト値が存在しない場合、key =のみの表記に変更しました - [CHANGE]
sora.confの設定の並び順をアルファベット順に変更しました - [ADD]
sora.confにコネクションライフタイムのデフォルト値を指定する default_connection_lifetime を追加しました- デフォルトは未指定です
- 最小は 0 ms で最大は 720 h です
レガシーストリーム廃止¶
- [CHANGE] レガシーストリーム機能を廃止しました
multistream項目をウェブフック、ログ、API から削除しましたmultistreamをfalseにして接続した場合バリデーションエラーになります
- [CHANGE] レガシーストリーム機能廃止に伴い
sora.confのlegacy_streamを廃止しました - [CHANGE] レガシーストリーム機能廃止に伴い StartForwardingRtp API の
connection_idを必須にしました - [CHANGE] レガシーストリーム機能廃止に伴い StopForwardingRtp API の
connection_idを必須にしました
統計エクスポーター廃止¶
今後は 統計ウェブフック をご利用ください。
- [CHANGE] 統計エクスポーター機能を廃止しました
sora.confのdefault_stats_exporterを廃止しましたsora.confのdefault_stats_collector_urlを廃止しましたsora.confのdefault_stats_exporter_numberを廃止しましたsora.confのdefault_stats_exporter_tls_fullchain_fileを廃止しましたsora.confのdefault_stats_exporter_tls_privatekey_fileを廃止しましたsora.confのdefault_stats_exporter_tls_verify_cacert_fileを廃止しました
ユーザーエージェント統計機能廃止¶
ユーザーエージェント統計機能を廃止しました。 今後は RTC 統計機能をご利用ください。
- [CHANGE]
sora.confのuser_agent_statsを廃止しました- 今後は default_rtc_stats をご利用ください
- [CHANGE] 認証成功払い出しから
user_agent_statsを廃止しました- 今後は rtc_stats の払い出し を払い出すようにしてください
- [CHANGE] ListUserAgentStats API を廃止しました
- 今後は ListRtcStats API をご利用ください
- [CHANGE] ListChannelUserAgentStats API を廃止しました
- 今後は ListChannelRtcStats API をご利用ください
- [CHANGE] GetUserAgentStats API を廃止しました
- 今後は GetRtcStats API をご利用ください
レガシーシグナリングエラー廃止¶
- [CHANGE]
sora.confのレガシーシグナリングを指定するlegacy_signaling_errorを廃止しましたlog/connection_created_wait_timeoutにログが出力されなくなりましたlog/signaling_error.jsonlにシグナリングエラーログが出力されるようになりましたconnection.failedウェブフックは 認証成功時 かつ connection.created が送信されていない場合のみ送信されるようになりましたsora.jsonlに認証失敗ログが出力されなくなりましたsora.jsonlにシグナリング失敗ログが出力されなくなりました
データチャネル¶
- [ADD] API やログで取得できるデータチャネル関連の統計情報を追加しました
total_enqueued_sent_chunk- SCTP 送信用キュー (sent_queue) に追加されたチャンク数
total_dequeued_sent_chunk- SCTP 送信用キュー (sent_queue) から取り出されたチャンク数
total_enqueued_outbound_chunk- SCTP 送信待ちキュー (outbound_queue) に追加されたチャンク数
total_dequeued_outbound_chunk- SCTP 送信待ちキュー (outbound_queue) から取り出されたチャンク数
total_increased_flight_size- SCTP フライトサイズの増加量の合計値 (バイト単位)
total_decreased_flight_size- SCTP フライトサイズの減少量の合計値 (バイト単位)
total_expired_t3_timer- SCTP T3 タイマーの満了回数
ウェブフック¶
- [CHANGE] イベントウェブフック利用時のワーカー数を指定する event_webhook_worker_number のデフォルトを 5 から 100 に変更しました
- [ADD] イベントウェブフック利用時にウェブフックがどのワーカーを利用するかを判断する event_webhook_worker_key を追加しました
- デフォルトは
channel_idです channel_idの場合はチャネル ID 単位でイベントウェブフックは同一のウェブフックワーカーを利用します- 例えば
channel_idがsoraに接続している全てのクライアントは同一ウェブフックを利用します
- 例えば
connection_idの場合はコネクション ID 単位でイベントウェブフックは同一のウェブフックワーカーを利用しますconnection_idは接続ごとにユニークなため、同じチャネルに接続しているコネクションでも、それぞれに割り当てられたウェブフックワーカーを利用します
- デフォルトは
- [ADD] セッションウェブフック session.destroyed を送信しないようにする ignore_session_destroyed_webhook を追加しました
- デフォルトは
falseです - この設定を
trueにすると session.destroyed を送信しなくなります
- デフォルトは
- [ADD] セッションウェブフック recording.report を送信しないようにする ignore_recording_report_webhook を追加しました
- デフォルトは
falseです - この設定を
trueにすると recording.report を送信しなくなります
- デフォルトは
- [ADD] イベントウェブフック archive.available を送信しないようにする ignore_archive_available_webhook を追加しました
- デフォルトは
falseです - この設定を
trueにすると archive.available を送信しなくなります
- デフォルトは
- [ADD] イベントウェブフック split-archive.end を送信しないようにする ignore_split_archive_end_webhook を追加しました
- デフォルトは
falseです - この設定を
trueにすると split-archive.end を送信しなくなります
- デフォルトは
- [ADD] イベントウェブフック archive.failed を送信しないようにする ignore_archive_failed_webhook を追加しました
- デフォルトは
falseです - この設定を
trueにすると archive.failed を送信しなくなります
- デフォルトは
ログ¶
- [ADD] API ログ
api.jsonlにidを追加しましたidは Base32 化した UUIDv4 です
- [ADD]
event_webhook.jsonlにconnection.updatedを出力しなくする event_webhook_connection_updated_log をsora.confに追加しました- デフォルトは
trueです - この設定を
falseにするとevent_webhook.jsonlにconnection.updatedを出力しなくなります
- デフォルトは
- [ADD]
session_webhook.jsonlにsession.updatedを出力しなくする session_webhook_session_updated_log をsora.confに追加しました- デフォルトは
trueです - この設定を
falseにするとsession_webhook.jsonlにsession.updatedを出力しなくなります
- デフォルトは
映像コーデックパラメーター追加¶
- [ADD] AV1 コーデックパラメーターに
level_idxを指定できるようにしました- デフォルトは
5です - 範囲は
0から31の整数が指定できます
- デフォルトは
- [ADD] AV1 コーデックパラメーターに
tierを指定できるようにしました- デフォルトは
0です - 範囲は
0か1の整数が指定できます
- デフォルトは
- [ADD] H.265 コーデックパラメーターに
profile_idを指定できるようにしました- デフォルトは
1です - 範囲は
0から31の整数が指定できます
- デフォルトは
- [ADD] H.265 コーデックパラメーターに
tier_flagを指定できるようにしました- デフォルトは
0です - 範囲は
0か1の整数が指定できます
- デフォルトは
- [ADD] H.265 コーデックパラメーターに
tx_modeを指定できるようにしました- デフォルトは
SRSTです SRSTかMRSTかMRMTが指定できます
- デフォルトは
グループ機能¶
これは実験的機能です
セッションをグルーピングする group_id をセッションウェブフック session.created の払い出しで指定できるようになりました。
- [ADD] セッションウェブフック session.created の払い出しで
group_idを指定できるようになりましたgroup_idは 1 バイト以上 255 バイト以下の文字列ですgroup_idは未指定の場合はsession_idが入ります
- [ADD] ListSessions API に
group_idを指定できるようになりましたgroup_idを指定した場合は指定したgroup_idのセッションのみを返しますgroup_idはオプションですgroup_idを指定しない場合は全てのセッションを返します
- [ADD]
session_id項目を含むウェブフックのリクエストにgroup_idを含めるようにしました - [ADD]
session_id項目を含む API の戻り値にgroup_idも含めるようにしました - [ADD]
session_id項目を含むログにgroup_idを含めるようにしました - [ADD]
session_id項目を含む録画メタデータにgroup_idを含めるようにしました
セッション単位での最大同時接続数制限機能¶
セッション単位での最大同時接続数制限機能を正式版としてリリースしました。
- [ADD] session.created でセッション単位での最大同時接続数を制限する
max_connectionsを払い出せるようになりました- 正式版リリースに伴い
trial_max_connectionsは 2025 年 12 月リリース予定の Sora にて廃止しますtrial_max_connectionsは廃止後には無視します
trial_max_connectionsとmax_connectionsを同時に指定した場合はmax_connectionsが優先されます
- 正式版リリースに伴い
クラスターリレー機能でツリー構造の採用¶
今までのクラスターリレー機能は他のノードへの転送はクライアントが配信しているノードが担当していました。 この場合多くのノードにリレーが発生するとそのノードの負荷が高くなってしまいます。
そこで、リレーを Plumtree という分散アルゴリズムを利用したツリー構造を採用する事で、冗長なリレーを削減し、ノードの負荷分散を実現しました。
セッション単位でのクライアント ID 重複時の既存接続の追い出し機能¶
これは実験的機能です
今までのクライアント ID の重複を許可するのに加えて、 既存の同一クライアント ID の接続を破棄することをセッション単位で指定できるようになりました。
この仕組みはセッションウェブフック session.created の払い出しで、
duplicate_client_id に evict を指定することで有効になります。
- [ADD]
sora.confにクライアント ID が重複するコネクションが認証に成功した際の挙動を指定する default_duplicate_client_id を追加しました- デフォルトは
allowです allowは未指定と同じで、今まで通り重複を許容しますevictは既存の接続を破棄し、新規接続を受け入れます
- デフォルトは
- [ADD] セッションウェブフック session.created の払い出しにセッション単位での重複するクライアント ID を持つコネクションが認証成功した際の挙動を指定する
duplicate_client_idを払い出せるようになりましたduplicate_client_idにはallowまたはevictを指定できます- 未指定は
sora.confの default_duplicate_client_id の値を利用します allowは今まで通り重複を許容しますevictは既存の接続を破棄し、新規接続を受け入れます
- [ADD] クライアント ID の重複によるコネクションを破棄した際 connection.destroyed の
data.reasonに"duplicate_client_id"を含めるようにしました- この値はセッションウェブフック session.created の払い出しで
duplicate_client_idにevictを指定して既存接続を破棄した場合にdata.reasonに含まれます
- この値はセッションウェブフック session.created の払い出しで
統計機能¶
- [ADD] 実験的機能として GetStatsReport に Sora 内部で発生した遅延の累積値 (マイクロ秒単位)
total_sent_srtp_sfu_delay_usを追加しました - [ADD] 実験的機能として GetStatsConnection に Sora 内部で発生した遅延の累積値 (マイクロ秒単位)
total_sent_rtp_sfu_delay_usを追加しました - [ADD] 実験的機能として GetStatsClient に Sora 内部で発生した遅延の累積値 (マイクロ秒単位)
total_sent_rtp_sfu_delay_usを追加しました - [ADD] 実験的機能として GetStatsAllConnections に Sora 内部で発生した遅延の累積値 (マイクロ秒単位)
total_sent_rtp_sfu_delay_usを追加しました
帯域推定機能¶
帯域推定機能を追加しました、様々な情報を利用し帯域推定を行います。
以下を参考にしています。
- RFC 8888 - RTP Control Protocol (RTCP) Feedback for Congestion Control
- RFC 8869 - Evaluation Test Cases for Interactive Real-Time Media over Wireless Networks
- RFC 8868 - Evaluating Congestion Control for Interactive Real-Time Media
- RFC 8867 - Test Cases for Evaluating Congestion Control for Interactive Real-Time Media
- RFC 8836 - Congestion Control Requirements for Interactive Real-Time Media
- RTP Extensions for Transport-wide Congestion Control
- A Google Congestion Control Algorithm for Real-Time Communication
- BBR: Congestion-Based Congestion Control - ACM Queue
シグナリング通知 network.status に帯域推定結果を追加¶
これは実験的機能です
実験的機能としてシグナリング通知の ネットワークのシグナリング通知 に帯域推定結果を通知する機能を追加しました。
これは受信者の帯域推定結果を通知するもので、送信者の帯域推定結果は通知しません。
そのため role が sendrecv または recvonly の場合に有効になります。
- [ADD] sora.conf に
legacy_signaling_notify_network_statusを追加しました- デフォルトは
falseです - この設定を
trueにするとシグナリング通知 network.status のフォーマットを 2024.2.x までと同様にします - この設定は 2025 年 12 月リリースの Sora にて廃止します
- デフォルトは
- [ADD] sora.conf にシグナリング通知
network.statusの通知間隔を設定する signaling_notify_network_status_interval を追加しました- デフォルトは
10 sです - 最小は
20 msで、最大は10 minです
- デフォルトは
- [ADD] シグナリング通知 ネットワークのシグナリング通知 に
estimated_bandwidthを追加しました- sora.conf の
legacy_signaling_notify_network_statusがfalseの場合に有効になります - この通知は role が
sendrecvまたはrecvonlyの場合に通知します - 帯域推定の値が含まれます
- sora.conf の
- [ADD] シグナリング通知 ネットワークのシグナリング通知 に
previous_estimated_bandwidthを追加しました- sora.conf の
legacy_signaling_notify_network_statusがfalseの場合に有効になります - この通知は role が
sendrecvまたはrecvonlyの場合に通知します - 前回通知時の帯域推定の値が含まれます
- 初回の通知時は 0 が入ります
- sora.conf の
- [ADD] シグナリング通知 ネットワークのシグナリング通知 に
unix_timestamp_msを追加しました- sora.conf の
legacy_signaling_notify_network_statusがfalseの場合に有効になります - この通知は role が
sendrecvまたはrecvonlyの場合に通知します - Unix タイムのミリ秒が含まれます
- sora.conf の
- [ADD] シグナリング通知 ネットワークのシグナリング通知 に
total_sent_rtp_byte_sizeを追加しました- sora.conf の
legacy_signaling_notify_network_statusがfalseの場合に有効になります - この通知は role が
sendrecvまたはrecvonlyの場合に通知します - 通知時の RTP (音声と映像) 送信合計バイトサイズが含まれます
- sora.conf の
- [ADD] シグナリング通知 ネットワークのシグナリング通知 に
previous_unix_timestamp_msを追加しました- sora.conf の
legacy_signaling_notify_network_statusがfalseの場合に有効になります - この通知は role が
sendrecvまたはrecvonlyの場合に通知します - 前回通知時の Unix タイムのミリ秒が含まれます
- 初回の通知時は 0 が入ります
- sora.conf の
- [ADD] シグナリング通知 ネットワークのシグナリング通知 に
previous_total_sent_rtp_byte_sizeを追加しました- sora.conf の
legacy_signaling_notify_network_statusがfalseの場合に有効になります - この通知は role が
sendrecvまたはrecvonlyの場合に通知します - 前回通知時の RTP (音声と映像) 送信合計バイトサイズが含まれます
- 初回の通知時は 0 が入ります
- sora.conf の
ICE コネクションステート機能¶
- [ADD] 認証成功時の払い出しに ICE コネクションステートの
disconnected状態へ遷移するタイムアウトを指定する ice_connection_state_disconnected_timeout_ms の払い出し を追加しました - [ADD] 認証成功時の払い出しに ICE コネクションステートの
failed状態へ遷移するタイムアウトを指定する ice_connection_state_failed_timeout_ms の払い出し を追加しました - [ADD]
sora.confに ICE コネクションステート機能のdisconnected状態へ遷移するタイムアウトを指定する default_ice_connection_state_disconnected_timeout を追加しました- default_ice_connection_state_disconnected_timeout と
ice_connection_state_disconnected_timeoutの値が設定している場合はice_connection_state_disconnected_timeoutの値を優先します sora.confのice_connection_state_disconnected_timeoutは 2025 年 12 月リリース予定の Sora にて廃止します
- default_ice_connection_state_disconnected_timeout と
- [ADD]
sora.confに ICE コネクションステート機能のfailed状態へ遷移するタイムアウトを指定する default_ice_connection_state_failed_timeout を追加しました- default_ice_connection_state_failed_timeout と
ice_connection_state_failed_timeoutの両方を設定している場合はice_connection_state_failed_timeoutの値を優先します sora.confのice_connection_state_failed_timeoutは 2025 年 12 月リリース予定の Sora にて廃止します
- default_ice_connection_state_failed_timeout と
メディア配信ワーカー自動スケール機能¶
メディア配信ワーカー機能のワーカーを自動で増減する仕組みを追加しました。
- [CHANGE]
sora.confの配信ワーカー数を指定するmedia_publish_worker_numberを廃止しました - [ADD]
sora.confに配信ワーカー数を自動で増減させる閾値を指定する media_publish_worker_autoscale_threshold を追加しました- デフォルトは 50 です
- [ADD] メディア配信ワーカーに関する統計情報を追加しました
media_publish_worker.peak_count- その接続でこれまでに同時に起動した配信ワーカー数の最大値
media_publish_worker.total_started- その接続でこれまでに起動した配信ワーカーの総数
media_publish_worker.total_stopped- その接続でこれまでに停止した配信ワーカーの総数
media_publish_worker.total_unknown_subscriber- 配信ワーカーとの対応が存在しないサブスクライバー (受信側接続) の数
WHIP/WHEP 機能¶
WHIP が RFC 9725 として公開されたため、RFC への準拠を進めています。
- [CHANGE]
sora.confのwhip_turnとwhep_turnをデフォルトtrueに変更しました - [CHANGE] WHIP/WHEP 利用時に
offerの SDP にa=sendrecvを指定できるように変更しました - [CHANGE] WHIP/WHEP 利用時にセッション URL に
PATCHメソッドでアクセスした場合501ではなく422を返すように変更しました - [CHANGE] WHIP/WHEP 利用時にエンドポイントとセッション URL に
GETやHEADメソッドでアクセスした場合、405ではなく200を返すように変更しました - [CHANGE] RFC でリソース URL がセッション URL と名前が変わったことにより Location ヘッダーでは
/whip-session/:channel_id/:secret/を払い出すように変更しました- 2025 年 12 月リリース予定の Sora にて
/whip-resource/:channel_id/:secret/は廃止します
- 2025 年 12 月リリース予定の Sora にて
- [ADD] クラスター利用時に別のノードへのリダイレクトが発生した際に HTTP ステータスコード 307 を返すようにしました
- OBS が HTTP ステータスコード 307 に対応していなかったため、Sora 2024.2.x まではノード間通信で認証処理を行うようにしていました
- [ADD] WHIP/WHEP 利用時にエンドポイントとセッション URL に
OPTIONSメソッドでアクセスした場合Accept-Postヘッダーでapplication/sdpを返すようにしました
TURN-UDP 利用時の認証エラー時のレートリミット¶
TURN-UDP 時に認証エラーが発生した場合にレートリミットを設けて、 サイレントディスカードする仕組みを追加しました。デフォルトで特に困ることはありません。
- [ADD] GetStatsConnection API に TURN-UDP 利用時の認証エラー時のレートリミットを超えた回数
total_turn_udp_allocate_request_401_rate_limit_exceededを追加しました- この値は TURN-UDP 利用時の認証エラー時のレートリミットを超えた回数を累積した値です
- [ADD]
sora.confに TURN-UDP 利用時の認証エラー時のレートリミットウィンドウを指定する turn_udp_allocate_request_401_rate_limit_window を追加しました- デフォルトは
60 sです - 最小は
1 sで、最大は60 sです
- デフォルトは
- [ADD]
sora.confに TURN-UDP 利用時の認証エラー時のレートリミット回数を指定する turn_udp_allocate_request_401_rate_limit_count を追加しました- デフォルトは
60です - 最小は
0で、最大は300です
- デフォルトは
2024.2.3¶
バグフィックスアップデート
- リリース:
2025 年 5 月 19 日
変更履歴¶
- [ADD] 録画機能利用時に Safari 18.4 から Safari 18.5 で H.264/H.265 を利用している場合に発生するタイムスタンプの不具合に対するワークアラウンド機能を追加しました
- デフォルトでは未指定です
- 指定する場合は
sora.confにworkaround_20250515 = 18.4,18.4.1,18.5のように、ワークアラウンドに対応させる Safari のバージョンを,で区切って指定してください - iOS 版 Chrome でもワークアラウンドが有効になります
- 詳細は Safari タイムスタンプバグに対するワークアラウンド をご確認ください。
- [FIX] 録画機能で Chrome 136 で特定のハードウェアエンコーダーと組み合わせた際、 H.265 の録画が正常に行えない問題を修正しました
2024.2.2¶
バグフィックスアップデート
- リリース:
2025 年 4 月 9 日
変更履歴¶
- [FIX] 依存している OpenSSL を 3.4.1 にアップデートしました
- [FIX] ウェブフック機能、音声ストリーミング機能、統計エクスポーター機能で HTTPS を利用する際、証明書の鍵の使用法と拡張された鍵の使用法の互換性チェックが間違っていたため、サポートされていないサーバー証明書と判断して接続に失敗する場合がある問題を修正しました
- これは Sora が利用している PKI ライブラリのバグにより発生していた問題で、ライブラリをアップデートすることで解消しました
2024.2.1¶
バグフィックスアップデート
- リリース:
2025 年 1 月 8 日
変更履歴¶
- [FIX] AV1 コーデック利用時、主にハードウェアエンコーダーなど、
libwebrtcが採用しているlibaom以外のエンコーダーを利用するとキーフレーム判定が失敗する場合がある問題を修正しました - [FIX] クラスター構成で Sora 2024.1.x からのローリングアップデート中、録画が開始できない場合がある問題を修正しました
- [FIX] クラスター構成で Sora 2024.1.x からのローリングアップデート中、録画を開始すると
recording.reportウェブフックが送信されない場合がある問題を修正しました
2024.2.0¶
メジャーアップデート
- リリース:
2024 年 12 月 18 日
ハイライト¶
- 録画アーカイブファイルの MP4 形式による出力に対応しました
- 録画アーカイブファイルの H.265 コーデックによる出力に対応しました
- リアルタイムメッセージング機能で、メッセージのヘッダーに送信元の connection_id を付与する機能を追加しました
- 実験的機能として、転送フィルター機能で複数のフィルターを設定できる「マルチ転送フィルター機能」を追加しました
- 実験的機能として、 session.created の払い出しに、セッションの同時接続数を制限する
trial_max_connectionsを追加しました - 指定したコネクションにキーフレームを要求する RequestKeyFrame API を追加しました
正式版¶
今回のリリースで以下の機能が実験的機能から正式版になりました。
- クラスター機能
- センシティブデータ
- OBS (WHIP) 対応
メディア配信ワーカー機能- セッションライフタイム機能
- コネクションライフタイム機能
- TerminateSession API
破壊的変更¶
- 既存のセッションの同時接続数が
0の際に、このセッションと異なるmultistreamまたはspotlight設定の新規接続が来た場合、エラーになるように変更しました - クライアントに通知されるエラーメッセージを改善しました
- 転送フィルターの認証成功時の払い出しエラーが発生した場合、接続が失敗するようになりました
- 転送フィルターのセッション生成時の払い出しエラーが発生した場合、セッションが破棄されるようになりました
- session_created_response_validate_warning_as_error が
falseの場合でもエラーとなりセッションを破棄します
- session_created_response_validate_warning_as_error が
- 統計情報に含まれる
total_received_intra_frameをtotal_received_key_frameに変更しました
廃止情報¶
- 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_filterは 2025 年 12 月リリース予定の Sora で廃止します- 代わりに複数の転送フィルターを指定できる
forwarding_filtersをご利用ください
- シグナリング接続時に転送フィルターを指定できる
signaling_forwarding_filterを非推奨にしましたsignaling_forwarding_filterは 2025 年 12 月リリース予定の Sora で廃止します- 代わりに複数の転送フィルターを指定できる signaling_forwarding_filters をご利用ください
mode_session_vanishedを非推奨にしましたmode_session_vanishedは 2025 年 6 月リリース予定の Sora にて廃止します- 代わりに GetStatsReport API の
total_ongoing_connectionsをご利用ください。 - 値の監視については Sora Exporter の利用をお勧めします
- RTP ストリーム停止/再開 API を非推奨にしました
- RTP ストリーム停止/再開 API は 2025 年 12 月リリース予定の Sora にて廃止します
- 代わりに 転送フィルター をご利用ください
変更履歴¶
- [CHANGE] 統計情報に含まれる
total_received_intra_frameをtotal_received_key_frameに変更しました- RequestKeyFrame API に合わせた変更になります
- [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]
E2EE機能を廃止しましたsora.confのe2eeを廃止しました- ウェブフックに含まれる
e2eeは常にfalseが含まれます
- [ADD] copy_websocket_signaling_header_names で指定した WebSocket シグナリングの HTTP ヘッダーを
rtc_stats.jsonlとconnection.jsonlにcopy_headers項目で出力するようにしました - [ADD] 特定環境向けに TURN 利用時に 5-TUPLE を無視する設定を追加しました
- この機能を利用する場合は事前にサポートまでご連絡ください
sora.confの ignore_turn_five_tuple をtrueに設定することで、送られてくるパケットの 5-TUPLE を無視するようになります
- [ADD]
"type": "offer"メッセージにaudioとvideo関連項目を追加しましたaudioは必ず含まれますaudio_codec_typeはオプションで、audioがtrueかつroleがsendrecvまたはsendonlyの場合に含まれますaudio_bit_rateはオプションで、audioがtrueかつroleがsendrecvまたはsendonlyでaudio_bit_rateが指定された場合に含まれますvideoは必ず含まれますvideo_codec_typeはオプションで、videoがtrueかつroleがsendrecvまたはsendonlyの場合に含まれますvideo_bit_rateはオプションで、videoがtrueかつroleがsendrecvまたはsendonlyの場合に含まれます
- [ADD] サイマルキャスト機能の設定項目に
scaleResolutionDownToを追加しました{"maxHeight": 1080, "maxWidth": 1920}のように解像度を指定することができるようになります- この機能は Chrome/Edge 131 以降で利用できます
- https://w3c.github.io/webrtc-extensions/#dom-rtcrtpencodingparameters-scaleresolutiondownto
- [ADD]
connection.jsonlにsimulcast_encodingsとsimulcast_codecs項目を追加しましたsimulcastのみtrueの場合はsimulcast_encodingsを出力しますsimulcastとsimulcast_multicodecがtrueの場合はsimulcast_codecsも出力します
- [FIX] Safari や Chrome Canary で H.265 の配信ができない問題を修正しました
- [FIX] コネクションの切断が発生しない録画失敗のログレベルを
errorからwarningに修正しました - [FIX] 録画ファイル書き込みに失敗するとクラッシュログが出力されることがある問題を修正しました
- [FIX] サイマルキャスト機能利用時に
simulcast_encodingsにactiveを未指定だと接続が失敗する問題を修正しました - [FIX] H.264 の RTP ペイロードヘッダーが不正な場合、サイレントディスカードするように修正しました
sora.conf¶
- [CHANGE]
sora.confのlegacy_recordingのデフォルトをtrueからfalseに変更しました - [CHANGE]
sora.confの移行用の設定legacy_auth_webhook_log設定を廃止しました - [CHANGE]
sora.confの移行用の設定legacy_event_webhook_connection_destroyed_reason設定を廃止しました - [CHANGE]
sora.confの default_h264_param_profile_level_id のデフォルト値を42e01fから42e02aへ変更しました- Chrome / Edge がデフォルト値を変更した事への追従です
- [UPDATE]
sora.confの connection_created_wait_timeout の最小値を1 sから0 sへ変更しました- 挙動確認などで意図的にエラーを発生させられるように変更しました
- [FIX] ウェブフック送信時にボディを待つ時間に webhook_response_timeout が反映されていない問題を修正しました
- [FIX] ウェブフック送信時に TCP コネクションの確立を待つ時間に webhook_connect_timeout が反映されていない問題を修正しました
API¶
- [UPDATE] ListConnections API の戻り値に
node_nameを追加しました - [UPDATE] ListChannelConnections API の戻り値に
node_nameを追加しました - [UPDATE] GetStatsAllConnections API の戻り値に
session_idを追加しました - [UPDATE] GetStatsConnection API の戻り値に
session_idを追加しました - [UPDATE] GetStatsClient API の戻り値に
session_idを追加しました - [ADD] 指定したクライアントにキーフレームを要求する RequestKeyFrame API を追加しました
- レガシーストリームでは利用できません
- [FIX] GetStatsReport API のウェブフック統計情報はウェブフックを送信したときのみカウントされるように修正しました
- [FIX] GetStatsReport API のウェブフック統計情報が正しくカウントされない問題を修正しました
total_ignored_session_webhookが実際よりも少なくカウントされていた問題を修正しました- audio-streaming.started と audio-streaming.stopped のウェブフック統計情報が
total_ignored_XXX_webhookとtotal_successful_XXX_webhookの両方がカウントされていた問題を修正しました
セッション単位での同時接続数制限機能¶
これは実験的機能です
認証ウェブフックでの接続制限はウェブフックが並列で送信されるため、厳密な同時接続制限ができませんでした。 この機能ではセッション単位での同時接続数を制限することで、厳密に同時接続制限ができるようになります。
この機能を利用することで認証に成功した場合でも、セッションに接続できない場合があります。
その場合は、クライアントには 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-DISCONNECTDISCONNECTED-APILIFETIME-EXPIREDSESSION-DESTROYED
- 異常切断
- 異常が発生して Sora 側から切断した場合は
codeに4490が含まれます reasonには切断理由が含まれます
- 異常が発生して Sora 側から切断した場合は
- 正常切断
- [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-EXPIREDSESSION-DESTROYEDDISCONNECTED-API
- 切断 API や期限切れで Sora 側から切断した場合は
- 異常切断
- 異常が発生して Sora 側から切断した場合は
codeに4490が含まれます reasonには切断理由が含まれます
- 異常が発生して Sora 側から切断した場合は
- デフォルトは
- [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-ERRORAUTH-WEBHOOK-RESPONSE-EMPTY-BODYAUTH-WEBHOOK-RESPONSE-UNEXPECTED-STATUS-CODEINVALID-AUTHZ-MEDIAWHEP-INCOMPATIBLE-UPSTREAM-TRACKDUPLICATED-CONNECTION-ID-ERRORINVALID-SPOTLIGHT-NUMBERDUPLICATED-CHANNEL-IDUNMATCH-CODEC-TYPE-ERROR
- Sora が一時的に利用できない場合は
SERVICE-UNAVAILABLEを通知するように変更しました- 以下のメッセージはクライアントへは通知されなくなりました
EXCEED-MAX-CONNECTIONSBLOCK-NEW-CONNECTIONBLOCK-NEW-SESSIONINVALID-MODE
- Sora でタイムアウトが発生した場合は
TIMEOUTを通知するように変更しました- 以下のメッセージはクライアントへは通知されなくなりました
CONNECTION-CREATED-WAIT-TIMEOUT-ERRORCONNECT-WAIT-TIMEOUT-ERRORANSWER-TIMEOUT-ERRORPONG-TIMEOUT-ERROR
- シグナリングメッセージが不正な場合は
INVALID-MESSAGEを通知するように変更しました- 以下のメッセージはクライアントへは通知されなくなりました
INVALID-JSONINVALID-SIGNALING-TYPEINVALID-SIGNALING-PARAMSMISSING-TYPEBAD-FINGERPRINTTOO-LARGE-JSONTOO-MANY-CANDIDATEINVALID-VIDEO-FORMATFAILURE-SDP-PARSEMISSING-ICE-SDPINVALID-VIDEO-FORMATINVALID-AUDIO-FORMATFAILURE-JSON-DECODEUNEXPECTED-SIGNALING-TYPEUNKNOWN-AUDIO-CODEC-TYPEINVALID-AUDIO-BIT-RATEUNKNOWN-VIDEO-CODEC-TYPEINVALID-VIDEO-BIT-RATE
録画機能¶
- [CHANGE] 録画ファイル処理の開始に失敗した場合のログレベルを
ERRORからWARNINGに変更しました - [ADD] イベントウェブフック
archive.*とsplit-archive.*に項目を追加しましたsplit_only- 指定していない場合、値は
falseになります
- 指定していない場合、値は
formatmp4またはwebmが含まれます
expire_time- 指定していない場合は項目が含まれません
expired_at- 指定していない場合は項目が含まれません
split_duration- 指定していない場合は項目が含まれません
- [FIX] AV1 サイマルキャスト使用時に録画が正常に行われない問題を修正しました
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"が含まれるようになりました
- [ADD]
sora.confに録画機能(セッション単位) 利用時に MP4 形式を利用した場合、クライアントへ送るキーフレーム要求 (PLI) の間隔を指定できる default_recording_mp4_pli_interval を追加しました- デフォルトは
20 sです - 最小は
1 sで、最大は240 sです - WebM 形式ではキーフレームの間隔が最大でも 31 秒までという制約がありましたが、 MP4 形式ではこの制約がなくなりました
- デフォルトは
H.265 録画機能¶
これは実験的機能です
H.265 コーデックでの録画機能に対応しました。
- [ADD] H.265 録画機能に対応しました
- H.265 は
formatにmp4が設定されている場合のみ録画ができます - WebM 形式を設定した場合 H.265 の録画は行われません
- H.265 録画機能はレガシー録画では利用できません
- H.265 は
ICE コネクションステート変更のシグナリング通知¶
これは実験的機能です
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 コネクションステートが変更された際に、同一チャネルに接続しているクライアントへシグナリング通知ice-connection-state.changesを送信しますtrueにするとチャネル参加時のシグナリング通知connection.createdの既存参加者のdataにice_connection_stateが含まれるようになります
- デフォルトは
- [ADD] 認証成功時の払い出しに
signaling_notify_ice_connection_stateを追加しました- デフォルトは signaling_notify_ice_connection_state の値が採用されます
falseを払い出すことで自身の ICE コネクションステートの状態を他のチャネルに参加しているクライアントへシグナリング通知が送信されなくなります
- [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 を追加しましたsignaling_forwarding_filterは 2025 年 12 月リリースの Sora にて廃止します
- [ADD] 転送フィルター設定時に
nameとpriorityを指定できるようになりました - [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 がクラスターで利用できるようになりました
- [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 から映像を取得できるようになりました
- |date| 現在、OBS 安定版では WHEP に対応していません
- OBS WHIP/WHEP の TURN に対応しました
- |date| 現在、OBS 安定版では TURN に対応していません
- OBS WHIP/WHEP の H.265 (HEVC) に対応しました
- |date| 現在、OBS 安定版では H.265 に対応していません
- セッションとコネクションが破棄される時間を指定できるライフタイム機能を追加しました
- セッションやコネクションで指定した時間が経過すると自動的に破棄されるようになりました
- 複数のコーデックで、複数の画質が同時に配信できるサイマルキャストマルチコーデック機能を追加しました
- |date| 現在、ブラウザでは利用できません
- 音声トラックを削除した後に、再度音声トラックを追加した際に正常に録音されない問題に対応しました
- 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 までは
disconnect_api_reasonと同じ、またはdisconnect_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 までは
- 統計 API の RTP ヘッダー拡張の項目名のプレフィックスを
rtp_hdr_extからrtp_hdrextへ変更しました - TerminateSession API を非同期に変更しました
- セッション破棄の確認は session.destroyed ウェブフックを利用してください
- ライセンスチェックのタイミングを変更しました
- 今までは WebSocket 接続時にライセンスチェックを行っていましたが、
"type": "connect"時にチェックを行うように変更しましたWHIPとWHEPについては変更はありません
- 詳細についてはサポートまでお問い合わせください
- 今までは WebSocket 接続時にライセンスチェックを行っていましたが、
変更履歴¶
- [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に固定されます
- 今後、テスト API はバージョンが全て
- [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 月リリースの Sora 2025.1.0 にて廃止します。
- [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が含まれます
- セッションウェブフック session.destroyed の
- デフォルトは
- [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 の変更を行いました- 今までは
disconnect_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の値を、disconnect_api_reasonに含まれる値と同じにする移行用の設定legacy_event_webhook_connection_destroyed_reasonを追加しました- デフォルトは
falseです - 設定を
trueにした場合、disconnect_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です - https://datatracker.ietf.org/doc/html/draft-ietf-wish-whep
- デフォルトは
- [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 で廃止します
- RegisterClusterNode API は
- [ADD] クラスター利用時に以下の API でクラスター全体の結果を返せる仕組みを追加しました
- API に
localを追加しfalseを指定した場合はクラスター全体の結果を返します localのデフォルトはtrueです- ListConnections API
- ListChannels API
- GetStatsAllConnections API
- ListRtcStats API
- ListUserAgentStats API
- クラスターのローリングアップデート中に
local=falseは利用できません
- API に
- [FIX] InitCluster API で指定するノードが全て同一バージョンでは無い場合、エラーを返すように修正しました
クラスターテンポラリーノード機能¶
これは実験的機能です
クラスターの維持に影響しない一時的なノードを追加できるようになりました。 テンポラリーノードを利用する事でスケールアウト/スケールインが容易になります。
- [ADD]
sora.confにテンポラリーノードとして利用する cluster_temporary_node を追加しました- デフォルトは
falseです - この設定は cluster が
trueの時のみ有効です - この機能は 最大ノード数ライセンス のみ有効です
- 最大ノード数ライセンス を利用していない場合は cluster_temporary_node が
trueの場合、起動できません
- 最大ノード数ライセンス を利用していない場合は cluster_temporary_node が
- テンポラリーノードはクラスター構成を維持するためのノードとしては認識されません
- テンポラリーノードに障害が発生してもライセンスで決められた最大同時接続数の合計を維持する機能による接続数の維持は行われません
- テンポラリーノードはクラスターへの登録には 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] リレー機能利用時には 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 のみで利用できます
- |date| 時点で以下の SDK が実験的に対応しています
- Sora C SDK
- Sora C++ SDK
- ブラウザを利用した場合、サイマルキャストマルチコーデック機能を利用して配信することはできません、視聴側は利用できます
- サイマルキャストマルチコーデックの配信に対応した 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 証明書について をご確認ください
- Ubuntu の場合は
- [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 を配信する仕組みは |date| 現在、 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_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_checksumtotal_sent_sctp_zero_checksum
クラスター機能¶
これは実験的機能です
Sora 2023.1.x で構築されているクラスターは Sora 2023.2.x へローリングアップデートで移行できます。
- [CHANGE] クラスター関連のログは
cluster.jsonlに出力するよう変更しました - [ADD] 最新のバージョンと 1 世代前のバージョンの Sora ノードが混在する状態でのクラスター運用ができるようになりました
- 全てのクラスターに参加するノードが同じバージョンになるまでは 1 世代前のバージョンと混在できる仕組みを追加しました
Sora 2023.2.xと2023.1.xで、特定のノードのアップデートが難しい場合でも、先に他のノードをアップデートすることができるようになります- クラスターに 1 世代前のバージョンのノードが混在している場合、新しい接続は全て古いバージョンのクラスターの仕組みを利用します
- 全てのノードが新しいバージョンのクラスターになったタイミングで、新しいバージョンのクラスターの仕組みを利用しはじめます
詳細については クラスター機能 をご確認ください。
メディア配信ワーカー機能¶
これは実験的機能です
メディア配信ワーカー機能は音声や映像を配信するワーカーを複数用意することで、 1 チャネルで高ビットレートの映像をより多くのクライアントに配信することができるようになります。
- [ADD]
sora.confに音声や映像の 1 配信に利用するメディア配信ワーカー数を指定するsora_conf-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¶
これは実験的機能です
|date| 現在、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を利用すると録画ができない問題があります
- AV1 サイマルキャスト利用時に
- [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 を利用して音声を配信する必要があります
- 新しく WHIP エンドポイント URL 指定時に
- [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 に準拠しています
- r1 と r2 が false の場合は
- [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 を返します
- クラスター利用時には
block_new_connectionモード時には503 Service Unavailableを返します
詳細は ヘルスチェック機能 をご確認ください。
シグナリング通知¶
- [ADD] シグナリング通知の
"event_type": "connection.created"にtimestampを追加しました- data にも
"data": [{"timestamp": "2023-06-28T10:00:00.999999", ...}, .. ]のようにtimestampが含まれるようになります
- data にも
- [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である必要があります
- この指定を利用する場合は signaling_h264_params が
- [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 までの値を指定できます
- この指定を利用する場合は signaling_vp9_params が
- [ADD] シグナリング接続時に AV1 のプロファイルを
"video": {"codec_type": "AV1", "av1_params": {"profile": 0}}のように指定できるようになりました- この指定を利用する場合は signaling_av1_params が
trueである必要があります av1_paramsを指定する場合は、codec_typeはAV1である必要があります- profile には 0 から 2 までの値を指定できます
- この指定を利用する場合は signaling_av1_params が
- [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 を追加しました- 既存の 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に対応させるキーを指定する 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モードへ遷移する機能を追加しました
2022.2.3¶
- リリース:
2023-02-08
変更履歴¶
- [FIX] 依存している OpenSSL を 3.0.8 にアップデートしました
- [FIX] 2023 年 4 月 4 日リリース予定の Chrome 112 でシグナリング時に接続が必ず失敗してしまう問題を修正しました
- [FIX] ディスク障害が発生してログの書き込みに失敗した際に、障害が復旧した後でもログが書き込めなくなることがある問題を修正しました
2022.1.4¶
- リリース:
2023-02-08
変更履歴¶
- [FIX] 2023 年 4 月 4 日リリース予定の Chrome 112 でシグナリング時に接続が必ず失敗してしまう問題を修正しました
2022.2.2¶
- リリース:
2023-01-05
変更履歴¶
- [FIX] 音声ストリーミング機能で
sora.confの default_audio_streaming_result_push がtrueの際、プッシュ通知が行われない問題を修正しました - [FIX] 音声ストリーミング機能でロールが
recvonlyの場合にプッシュ通知が受信できない問題を修正しました - [FIX] 音声ストリーミング機能で API を利用して音声ストリーミングを開始した際、通知が正常に行われない問題を修正しました
2022.2.1¶
- リリース:
2022-12-21
変更履歴¶
- [FIX] 開発ツールが Safari / Mobile Safari / Firefox で動作しない問題を修正しました
2022.2.0¶
- リリース:
2022-12-21
ハイライト¶
- sora ログと internal ログを JSONL 形式で出力するようになりました
- Google が公開した超低ビットレートコーデック Lyra に対応しました
- 音声パケットを HTTP/2 経由で出力する音声ストリーミング機能を追加しました
- 録画開始ととアーカイブ開始のウェブフックを追加しました
- ウェブフックが mTLS と CA 証明書の指定に対応しました
互換なしの変更情報¶
- 実験的機能であるセッションウェブフックのログ出力を req/res 形式に変更しました
- 実験的機能であるセンシティブデータ向け設定
redact_archive_metadata_sensitive_dataとredact_api_sensitive_dataを廃止しました- 録画メタデータファイルと API はセンシティブなデータがあっても編集を行わないようにしました
- クラスター機能の仕組みを変更したため互換性がなくなりました、クラスターの再構築をお願いします
変更履歴¶
- [FIX] DTLS 処理終了時に起きていた問題を修正しました
- [FIX] 録画ウェブフックの
expired_atが秒単位の UNIX Time ではなくマイクロ秒になっていたのを修正しました - [FIX] 録画ウェブフックの
split-archive.availableとsplit-archive-*.jsonに offset が含まれていなかったのを修正しました - [FIX] ULPFEC が有効でな状態でパケロス発生時に録画に失敗することがある問題を修正しました
- [FIX] 録画機能のウェブフックやファイルに含まれる統計値の名前 total_audio_discarded が間違っていたのを修正しました
JSONL 形式でのログ出力¶
- [ADD]
sora.confにログフォーマットのレガシー形式を維持するlegacy_log_formatを追加しました- デフォルトは
trueです - これは移行用設定です
- デフォルトは
- [ADD]
sora.confに JSONL 形式で出力しているログのレガシー拡張子を.logに維持するlegacy_log_extensionを追加しました- デフォルトは
trueです - これは移行用設定です
- デフォルトは
- [ADD]
sora.confのlegacy_log_formatをfalseにすることで以下のログは JSONL 形式で出力されます- sora ログ
- internal ログ
- signaling ログ
- api ログ
- auth_webhook ログ
- session_webhook ログ
- session_webhook_error ログ
- event_webhook ログ
- event_webhook_error ログ
- connection ログ
- [ADD]
sora.confのlegacy_log_extensionをfalseにすることで JSONL 形式で出力されているログファイルの拡張子が.logから.jsonlに変更されますsora.logがsora.jsonlに変更されますinternal.logがinternal.jsonlに変更されますsignaling.logがsignaling.jsonlに変更されますapi.logがapi.jsonlに変更されますauth_webhook.logがauth_webhook.jsonlに変更されますsession_webhook.logがsession_webhook.jsonlに変更されますsession_webhook_error.logがsession_webhook_error.jsonlに変更されますevent_webhook.logがevent_webhook.jsonlに変更されますevent_webhook_error.logがevent_webhook_error.jsonlに変更されますconnection.logがconnection.jsonlに変更されます
- [CHANGE] サポート用ログファイルである
connection_created_wait_timeout_error/<timestamp>_<connection_id>.jsonの拡張子を.jsonから.jsonlに変更しました
クラスター機能¶
- [CHANGE] クラスターの仕組みを変更したため、2022.1 系までのクラスターの仕組みとは互換性がありません
- クラスターの初期化が必要になります
- [ADD] クラスター初期化に利用する InitCluster API を追加しました
- [CHANGE] クラスター機能の ListClusterNodes API の
member_sinceを廃止しました - [CHANGE] クラスター機能の ListClusterChannels API の戻り値を変更しました
ownersを追加し、その下にリストでnode_nameepochepoch_latestconnectedを持つようにしましたnode_in_chargeをnode_nameに変更しましたnode_in_charge_epochをepochに変更しましたnode_in_charge_epoch_staleをepoch_latestに変更しましたnode_in_charge_connectedをconnectedに変更しました
Lyra コーデックへの対応¶
これは実験的機能です
- [ADD]
sora.confに Google が公開した音声圧縮用超低ビットレートコーデック Lyra を有効にする設定lyraを追加しました- デフォルトは
falseです lyra = trueのように設定してください
- デフォルトは
- [ADD] シグナリング接続時の音声コーデックタイプに Lyra を指定できるようになりました
- 指定する際は大文字の
LYRAで指定する必要があります - Lyra を利用する際は lyra_params を指定する必要があります
lyra_paramsには lyra のバージョンを指定するversionとビットレートを指定するbit_rateが指定できます- {"audio": "codec_type": "LYRA", "lyra_params": {"version": "1.3.0", "bit_rate": 9200}}
- 指定する際は大文字の
- [ADD] 認証成功時に {"audio": true, "audio_codec_type": "LYRA", "audio_lyra_params": {"version": "1.3.0", "bitrate": 9200} のように指定できるようになりました
- この指定を利用する場合は
sora_conf-legacy_webhook_audio_video_json_structureをfalseにする必要があります
- この指定を利用する場合は
音声ストリーミング機能¶
これは実験的機能です
- [ADD]
sora.confに音声ストリーミングのリクエスト先の URL を指定する audio_streaming_url を追加しました - [ADD]
sora.confに音声ストリーミングで利用するデフォルトのランゲージコードを指定する default_audio_streaming_language_code を追加しました - [ADD]
sora.confに音声ストリーミングでデフォルトで結果をプッシュ通知で行うかどうかを指定する default_audio_streaming_result_push を追加しました - [ADD]
sora.confに音声ストリーミングで mTLS を利用する秘密鍵を指定する audio_streaming_tls_privkey_file を追加しました - [ADD]
sora.confに音声ストリーミングで mTLS を利用する証明書を指定する audio_streaming_tls_fullchain_file を追加しました - [ADD]
sora.confに音声ストリーミングで利用する CA ルート証明書を指定する audio_streaming_tls_verify_cacert_file を追加しました - [ADD] 音声ストリーミングを開始する StartAudioStreaming API を追加しました
- [ADD] 音声ストリーミングを終了する StopAudioStreaming API を追加しました
- [ADD] 音声ストリーミングの解析結果を購読する SubscribeAudioStreamingResultPush API を追加しました
- [ADD] 音声ストリーミングの解析結果を購読解除する UnsubscribeAudioStreamingResultPush API を追加しました
詳細は 音声ストリーミング機能 をご確認ください。
音声冗長化機能¶
- [CHANGE]
sora.confのaudio_redのデフォルト値をfalseに変更しました
センシティブデータ¶
- [ADD]
sora.confにセンシティブなデータが含まれる可能性がある項目を"REDACTED"という文字列への書き換えをスキップする skip_redact_sensitive_data を追加しました- デフォルトでは
falseです
- デフォルトでは
- [CHANGE]
sora.confのredact_archive_metadata_sensitive_dataを廃止しました- 録画メタデータファイルの
event_metadataはセンシティブなデータの書き換え対象外としました
- 録画メタデータファイルの
- [CHANGE]
sora.confのredact_api_sensitive_dataを廃止しました- API の
event_metadataはセンシティブなデータの書き換え対象外としました
- API の
詳細は センシティブデータ をご確認ください。
ウェブフックの audio と video 項目の JSON 構造のフラット化¶
- [ADD]
sora.confにウェブフックの audio と video 項目のレガシーな JSON 構造するsora_conf-legacy_webhook_audio_video_json_structureを追加しました- デフォルトでは
trueです - これは移行用設定です
- デフォルトでは
詳細は ウェブフックの audio と video 項目の JSON 構造のフラット化 をご確認ください
セッションウェブフックログを req/res 形式に変更¶
- [CHANGE]
session_webhook.jsonlの出力形式を req/res 形式に変更しました - [CHANGE]
session_webhook_error.jsonlの出力形式を req 形式に変更しました
録画とアーカイブ開始ウェブフックを追加¶
- [ADD] 録画開始ウェブフック
recording.startedを追加しました - [ADD] アーカイブ開始ウェブフック archive.started を追加しました
- [ADD]
sora.confに ignore_recording_started_webhook を追加しました- デフォルトでは
falseです
- デフォルトでは
- [ADD]
sora.confに ignore_archive_started_webhook を追加しました- デフォルトでは
falseです
- デフォルトでは
ウェブフック mTLS / CA 証明書指定対応¶
- [ADD]
sora.confにウェブフックのリクエスト先との通信で mTLS を利用する際の証明書を指定する webhook_tls_fullchain_file を追加しました - [ADD]
sora.confにウェブフックのリクエスト先との通信で mTLS を理世する際の秘密鍵を指定する webhook_tls_privkey_file を追加しました - [ADD]
sora.confにウェブフックのリクエスト先の証明書をベリファイするルート CA を指定する webhook_tls_verify_cacert_file を追加しました
ウェブフック統計情報¶
- [ADD] ウェブフック関連の統計情報を GetStatsReport API に追加しました
total_auth_webhook_allowed- 認証ウェブフックで許可された数
total_auth_webhook_denied- 認証ウェブフックで拒否された数
total_successful_auth_webhook- 認証ウェブフックが成功した数
total_failed_auth_webhook- 認証ウェブフックが失敗した数
total_successful_session_webhook- セッションウェブフックが成功した数
total_failed_session_webhook- セッションウェブフックが失敗した数
total_successful_event_webhook- イベントウェブフックが成功した数
total_failed_event_webhook- イベントウェブフックが失敗した数
クラッシュログ出力 API¶
これは実験的機能です
- [ADD] 意図的に crash.log を出力させる
20221221.GenerateCrashLogAPI を追加しました- この API はログ出力の動作確認にのみ利用してください
- この API はかならずステータスコード 500 を返します
2022.1.3¶
- リリース:
2022-11-02
変更履歴¶
- [FIX] 依存している OpenSSL を 3.0.7 にアップデートしました
- [FIX] データチャネルの性能ボトルネックを修正しました
- [FIX] データチャネル利用時に高負荷になった状態が継続する問題を修正しました
- [FIX] データチャネル利用時に意図しないメッセージを受信した際の問題を修正しました
- [FIX] データチャネル利用時に意図しないエラーが発生する問題を修正しました
- [FIX] データチャネル利用時に
compressがtrueになっている Label のメッセージが壊れている場合の問題を修正しました
2022.1.1¶
- リリース:
2022-07-12
変更履歴¶
- [FIX] 依存している OpenSSL を 3.0.5 にアップデートしました
- [FIX] 録画機能の {"type": "split-archive-end"} ウェブフックには解像度を含めないように修正しました
- [FIX] 録画機能の
split-archive-end-<connection_id>.jsonファイルには解像度を含めないように修正しました - [FIX]
sora.logにでるべきログの一部がinternal.logに出力されていた問題を修正しました - [FIX] クラスターのノードが異常な状態になったタイミングで
emergencyログを出力して終了するように修正しました - [FIX] sora.conf の
default_multistreamが true の時に、"type": "connect"メッセージのroleにsendrecvを指定し、かつmultistreamを指定しない場合に、エラーとなり接続できない問題を修正しました
2022.1.0¶
- リリース:
2022-06-29
ハイライト¶
- Ubuntu 22.04 に対応しました
- RHEL 9 に対応しました
- サイマルキャスト機能が正式版になりました
- スポットライト機能が正式版になりました
- スポットライト機能がサイマルキャスト無効でも利用できるようになりました
- サイマルキャスト機能やスポットライト機能利用時に、視聴されていないストリームは復号処理を行わない仕組みを追加しました
- 録画機能で、録画ファイル分割出力機能を有効にした場合にも recording.report ウェブフック通知とレポートファイルが作成されるようになりました
- クラスター利用時に、同一ライセンスを利用できる「最大ノード数ライセンス」の提供を開始しました
- クラスター機能で録画状態を共有する機能を追加しました
- クラスター機能でクラスター参加を自動で行う仕組みを追加しました
- クラスター機能でネットワーク障害発生時に自動で復旧を試みる仕組みを追加しました
- 特定の接続からのストリームを受信しないようにできる
bundle_idを追加しました - センシティブなデータが含まれる可能性がある
session_metadataやevent_metadataの値を"REDACTED"という文字列に書き換える仕組みを追加しました
廃止情報¶
sora.confのdemoを廃止しましたsora.confのremote_statsを廃止しましたsora.confのunuse_metadata_listを廃止しましたsora.confのuse_re_offerを廃止しましたGetAllRemoteStatsAPI を廃止しましたGetChannelRemoteStatsAPI を廃止しましたGetConnectionRemoteStatsAPI を廃止しましたStopRecordingAPI のredirectを廃止しました
互換なしの変更情報¶
- マルチストリームをデフォルトで有効にしました
sora.confのdefault_multistreamをfalseにすることでマルチストリームがデフォルトではなくなります- この設定は 2023 年 6 月リリースの Sora にて廃止します
- 詳細は sora.conf の default_multistream の廃止 をご確認ください
type: archive.endをtype: split-archive.endに変更しましたsora.confのsplit_archive_legacy_prefixをtrueにすることでtype: archive.endがそのまま利用できます- この設定は 2023 年 6 月リリースの Sora にて廃止します
- 詳細は sora.conf の split_archive_legacy_prefix の廃止 をご確認ください
type: archive.splitをtype: split-archive.availableに変更しましたsora.confのsplit_archive_legacy_prefixをtrueにすることでtype: archive.splitがそのまま利用できます- この設定は 2023 年 6 月リリースの Sora にて廃止します
- 詳細は sora.conf の split_archive_legacy_prefix の廃止 をご確認ください
archive-<connection-id>_<index>.webmをsplit-archive-<connection-id>_<index>.webmに変更しましたsora.confのsplit_archive_legacy_prefixをtrueにすることでarchive-<connection-id>_<index>.webmがそのまま利用できます- この設定は 2023 年 6 月リリースの Sora にて廃止します
- 詳細は sora.conf の split_archive_legacy_prefix の廃止 をご確認ください
archive-<connection-id>_<index>.jsonをsplit-archive-<connection-id>_<index>.jsonに変更しましたsora.confのsplit_archive_legacy_prefixをtrueにすることでarchive-<connection-id>_<index>.jsonがそのまま利用できます- この設定は 2023 年 6 月リリースの Sora にて廃止します
- 詳細は sora.conf の split_archive_legacy_prefix の廃止 をご確認ください
- セッションウェブフックでセッションの接続数が 0 のタイミングで
multistreamとspotlightがセッションと異なる新規接続が来た場合は既存のセッションを破棄しsession.destroyedウェブフックリクエストを送信した後に、新規でセッションを作成しsession.createdを送信するように変更しました - セッションウェブフックでセッションの接続数が 0 ではないタイミングで
multistreamとspotlightがセッションと異なる新規接続が来た場合はINVALID-SIGNALING-PARAMSエラーを返し切断するように変更しました - セッションウェブフック
session.createdとsession.destroyedのcreated_timeとdestroyed_timeを UNIX 時間に変更しました sora.logとinternal.logの時刻を RFC3339 準拠に変更しましたcluster関連設定名を変更しましたcluster_node_nameをnode_nameへ変更しましたcluster_api_urlをexternal_api_urlへ変更しましたcluster_signaling_urlをexternal_signaling_urlへ変更しましたsora_versionをversionに変更しました
cluster関連 API の引数や戻り値を変更しました- クラスター機能を有効にしたときのモードを
initialへ変更しました - クラスターに参加したときに自動でモードが
initialからnormalへ切り替わるよう変更しました
変更履歴¶
- [CHANGE] セッションウェブフック
session.createdのcreated_timeを UNIX 時間に変更しました - [CHANGE] セッションウェブフック
session.destroyedのcreated_timeを UNIX 時間に変更しました - [CHANGE] セッションウェブフック
session.destroyedのdestroyed_timeを UNIX 時間に変更しました - [UPDATE] 組み込みの開発ツールを
2022.1.0にアップデートしました - [ADD] RHEL 9 x86_64 に対応しました
- [ADD] Ubuntu 22.04 x86_64 に対応しました
- [ADD] イベントウェブフック
connection.createdに RFC3339 形式で出力するcreated_timestampを追加しました - [ADD] イベントウェブフック
connection.updatedに RFC3339 形式で出力するcreated_timestampを追加しました - [ADD] イベントウェブフック
connection.destroyedに RFC3339 形式で出力するcreated_timestampを追加しました - [ADD] イベントウェブフック
connection.destroyedに RFC3339 形式で出力するdestroyed_timestampを追加しました - [ADD] イベントウェブフック
connection.destroyedに UNIX 時間で出力するdestroyed_timeを追加しました - [ADD] GetStatsReport API に Sora のバージョンを取得できる
versionを追加しました - [ADD] 認証成功時の H.265 の払い出しを追加しました
- [ADD] 認証ウェブフックに
simulcast_ridを追加しました - [ADD] Sora 内部で利用するファイルを書き出す
dataディレクトリを追加しました - [ADD]
sora.confに Sora 内部で利用するファイルを書き出すdataディレクトリを指定するdata_dirを追加しました - [FIX] Opus の RED の仕様変更ともない動作しなくなっていた問題を修正しました
- [FIX] 0 番ポートでパケットが送られてきた場合の問題を修正しました
- [FIX] DTLS で異常なパケットが送られてきた場合でも可能な限り丁寧に終了処理を行うように修正しました
- [FIX] 異常な STUN パケットが送られてきた場合の問題を修正しました
- [FIX] 録画した WebM ファイルの
Cluster Timecodeが負の値になると発生する問題を修正しました
マルチストリームをデフォルトで有効化¶
マルチストリームをデフォルトで有効にしました。
いままでマルチストリームを利用する場合は、シグナリング接続時に "multistream": true を指定して有効にする必要がありました。これをデフォルトで有効に変更しました。
今後は、マルチストリームを利用しない場合は明示的に "multistream": false を指定する必要があります。
- [CHANGE] マルチストリームをデフォルトで有効に変更しました
- [ADD]
sora.confにマルチストリームのデフォルト値を指定するdefault_multistreamを追加しました- デフォルトでは
trueが設定されています - この設定は 2023 年 6 月リリース予定の Sora にて廃止します
- 詳細は sora.conf の default_multistream の廃止 をご確認ください
- デフォルトでは
例外的にスポットライト機能を利用するときは "multistream": true を明示する必要があります。
bundle_id の追加¶
複数のコネクションを同じ端末から接続する際、それぞれのコネクションで同一の bundle_id を指定すると、
同一の bundle_id を指定した接続からの音声や映像、メッセージングを受信しなくなります。
画面共有の映像を受信したくない場合などにお使いください。
- [ADD]
sora.confに"type": "connect"時にbundle_idを指定できるかどうかを設定する signaling_bundle_id を追加しました- デフォルトでは
falseが設定されています
- デフォルトでは
- [ADD]
sora.confに signaling_notify_bundle_id を追加しました- デフォルトでは
trueが設定されています
- デフォルトでは
- [ADD]
"type": "connect"でbundle_idが指定できるようになりました- 詳細は bundle_id の指定 をご確認ください
- [ADD] 認証成功時の払い出しで
bundle_idを指定できるようになりました- 詳細は bundle_id の払い出し をご確認ください
sora.log と internal.log の出力¶
- [CHANGE] タイムスタンプの出力を RFC3339 準拠に変更しました
- Sora 2021.2.7 まで
2022-03-07 02:54:26.847 UTC [info] [-/-/-] <0.1218.0> SORA | node_name=sora@192.0.2.1, version=2021.2.7
- Sora 2022.1.0 から
2022-03-07T02:54:26.847130Z [info] [-/-/-] <0.1218.0> SORA | node_name=sora@192.0.2.1, version=2022.1.0
- Sora 2021.2.7 まで
録画機能¶
- [CHANGE] 分割録画ファイルとメタデータファイルの出力名を
archive-<connection_id>_<index>.(json|webm)からsplit-archive-<connection_id>_<index>.(json|webm)に変更しましたsora.confのsplit_archive_legacy_prefixをtrueにすることでarchive-<connection_id>_<index>.(json|webm)を維持できます
- [CHANGE] 録画分割時のウェブフックのタイプ
"type": "archive.split"を"type": "split-archive.available"に変更しました - [CHANGE] 録画分割時のウェブフックのタイプ
"type": "split.end"を"type": "split-archive.end"に変更しました - [CHANGE] 録画一時ファイルディレクトリ
archive_tmp_dirに保存される録画一時ファイルは、録画が失敗した場合には削除されなくなりました - [ADD]
report-<connection_id>.jsonにnode_nameとlabel項目を追加しました - [ADD]
sora.confに分割録画ファイル名をarchive-<connection_id>_<index>.(json|webm)にするsplit_archive_legacy_prefixを追加しました- デフォルトは
falseです - この設定は 2023 年 6 月リリース予定の Sora にて廃止します
- 詳細は sora.conf の split_archive_legacy_prefix の廃止 をご確認ください
- デフォルトは
- [ADD] 録画の状態をクラスターで共有する仕組みを追加しました
- [ADD]
split_onlyにtrueを指定した場合に、archive.endウェブフックと対になるsplit-archive-end-<connection_id>.jsonファイルを作成するようになりました - [ADD]
split_onlyにtrueを指定した場合でもrecording.reportウェブフックリクエストを飛ばすようになりました - [ADD]
split_onlyにtrueを指定した場合でもreport-<recording_id>.jsonファイルを作成するようになりました - [ADD] 録画メタデータファイルとレポートファイルに
labelとnode_nameを追加するようにしました - [UPDATE] 録画で生成された WebM ファイルが Windows の
Windows標準アプリケーションの"映画&テレビ"で正常に再生できない問題へ対応しました- Sora 側の問題ではなく
Windows標準アプリケーションの"映画&テレビ"が WebM の仕様を守っていないことによる問題です
- Sora 側の問題ではなく
サイマルキャストやスポットライト機能利用時の負荷削減¶
- [ADD] サイマルキャストやスポットライト利用時に誰も視聴していない音声や映像ストリームの復号を行わない処理を追加しました
- [ADD] 統計 API の rtp 項目に
tocal_decrypt_skipped_audio_srtpを追加しました - [ADD] 統計 API の rtp 項目に
tocal_decrypt_skipped_video_srtpを追加しました - [ADD] 統計 API の simulcast.rtp.(r0|r1|r2) 項目に
total_decrypt_skipped_srtpを追加しました
サイマルキャスト無効でのスポットライト機能利用¶
- [ADD] スポットライト機能が
"simulcast": falseでも利用できるようになりました
クラスター機能¶
- [CHANGE] クラスター有効時に起動した際のモードを
initialモードに変更しました - [CHANGE] クラスターに参加したタイミングで自動で
initialモードからnormalモードに切り替わるように変更しました - [CHANGE]
sora.confのcluster_node_nameをnode_nameに変更しました - [CHANGE]
sora.confのcluster_signaling_urlをexternal_signaling_urlに変更しました - [CHANGE]
sora.confのcluster_api_urlをexternal_api_urlに変更しました - [CHANGE] クラスター有効時に sora.log / internal.log にクラスターノード名を出力するように変更しました
- [CHANGE] JoinCluster API の
cluster_node_nameをcontact_node_nameに変更しました - [CHANGE] ListClusterNodes API の
cluster_node_nameをnode_nameに変更しました - [ADD] クラスターから特定のノードの情報を完全消去する PurgeClusterNode API を追加しました
- [ADD]
sora.confに Sora 起動時に自動でクラスター参加を試みるcontact_node_name_listを追加しました- 詳細は
contact_node_name_listをご確認ください
- 詳細は
- [ADD]
sora.confにネットワーク障害等発生時に自動で再接続を試みるcluster_auto_reconnectを追加しました- デフォルトは有効です
- [ADD] ネットワーク障害等発生時に自動で復旧を試みる仕組みを追加しました
最大ノード数対応ライセンス¶
クラスター利用時に、複数のノードに同一のライセンスが利用できる最大ノードライセンスの提供を開始しました。
詳細は 最大ノード数ライセンス をご確認ください。
- [CHANGE] 最大ノード数ライセンスに対応していないライセンスを複数のノードに適用し、クラスターを構築しようとすると
DUPLICATE-LICENSEが出力されるように変更されました- 無制限ライセンスをご利用のお客様でクラスターを利用されている場合はサポートまでご連絡ください
- [ADD] クラスター利用時に同一のライセンスを利用できる最大ノード数ライセンスに対応しました
- 新規でライセンスを発行し直す必要がありますのでサポートまでご連絡ください
- 新しくライセンスに
max_nodesという項目を追加し、この最大ノード数までは複数の Sora で同一のライセンスを利用できるようになります
統計機能¶
- [ADD] 統計 API の rtp 項目に
total_received_srtp_invalidを追加しました - [ADD] 統計 API の turn 項目に
total_received_unknown_packetを追加しました - [ADD] 統計 API の turn 項目に
total_received_stun_unknownを追加しました - [ADD] 統計 API の turn 項目に
total_received_stun_invalidを追加しました - [ADD] 統計 API の turn 項目に
total_received_turn_invalid_stunを追加しました - [ADD] データチャネルの破棄やリトライの回数をラベルごとに取得できるようになりました
- データチャネルの破棄メッセージ数
total_data_channel_abandon_messageを追加しました - データチャネルの再送メッセージ数
total_data_channel_retransmit_messageを追加しました - データチャネルの
DATA_CHANNEL_OPENメッセージ数total_data_channel_ack_messageを追加しました - データチャネルの
DATA_CHANNEL_ACKメッセージ数total_data_channel_open_messageを追加しました
- データチャネルの破棄メッセージ数
- [UPDATE]
total_sent_data_channel_messageからDATA_CHANNEL_OPENメッセージを除外しました - [UPDATE]
total_received_data_channel_messageからDATA_CHANNEL_ACKメッセージを除外しました
センシティブデータ編集済出力機能¶
詳細は センシティブデータ をご確認ください。
- [CHANGE]
auth_webhook.logに含まれるevent_metadataの中身を編集済みを表す"REDACTED"という文字列に書き換える変更を行いました - [CHANGE]
session_webhook.logに含まれるsession_metadataとevent_metadataの中身を編集済みを表す"REDACTED"という文字列にに書き換える変更を行いました - [CHANGE]
event_webhook.logに含まれるevent_metadataの中身を、編集済みを表す"REDACTED"という文字列に書き換える変更を行いましたevent_webhook_error.logのevent_metadataは書き換えを行いません
- [ADD]
sora.confにAPI 戻り値に含まれるセンシティブな可能性があるデータを、編集済みを表す"REDACTED"という文字列に書き換えるredact_api_sensitive_dataを追加しました- デフォルトでは
true event_metadataの中身を"REDACTED"という文字列に書き換えます
- デフォルトでは
- [ADD]
sora.confに録画メタデータファイルに含まれるセンシティブな可能性があるデータを"REDACTED"という文字列に書き換えるredact_archive_metadata_sensitive_dataを追加しました- デフォルトでは
true event_metadataの中身を"REDACTED"という文字列に書き換えます
- デフォルトでは
2021.2.8¶
- リリース:
2022-04-11
- 対応 Chrome:
M98 以降
- 対応 Firefox:
97 以降
- 対応 Safari:
15.3 以降
- 対応 Edge:
98 以降
変更履歴¶
- [FIX] 依存ライブラリ OpenSSL を 1.1.1n にアップデートしました
2021.2.7¶
- リリース:
2022-02-24
- 対応 Chrome:
M98 以降
- 対応 Firefox:
97 以降
- 対応 Safari:
15.3 以降
- 対応 Edge:
98 以降
変更履歴¶
- [CHANGE] 録画失敗時でも一時ファイルを削除しないようにしました
- [FIX] PauseRtpStream API がイベントウェブフック connection.created を受け取ったタイミングで実行しても正常に動作しない問題を修正しました
- [FIX] 録画ファイル分割出力のみの場合でも、一時ファイルが録画終了時まで削除されずに残っていた問題を修正しました
2021.2.1¶
- リリース:
2021-12-20
- 対応 Chrome:
M97 以降
- 対応 Firefox:
95 以降
- 対応 Safari:
15.1 以降
- 対応 Edge:
97 以降
- [FIX] 録画機能利用時に
sora.confの archive_tmp_dir と archive_dir で指定される 2 つのディレクトリが異なるファイルシステムにある場合に、録画ファイルの生成に失敗する問題を修正しました
2021.2.0¶
- リリース:
2021-12-15
- 対応 Chrome:
M97 以降
- 対応 Firefox:
95 以降
- 対応 Safari:
15.1 以降
- 対応 Edge:
97 以降
ハイライト¶
- クラスター機能を追加しました
- DataChannel を利用したメッセージング機能を追加しました
- 統計エクスポーター機能を追加しました
- スポットライト機能のフォーカス/アンフォーカスを変更する API を追加しました
- ICE コネクションステート機能を追加しました
- シグナリング通知に録画開始/終了の通知を追加しました
- セッションウェブフックを追加しました
- 音声冗長化機能に対応しました
- AV1 コーデック利用時の録画に対応しました
廃止情報¶
- CentOS 8 への対応を終了しました
- 詳細は CentOS 8 対応 をご確認ください
- スポットライトレガシー機能を廃止しました
- 詳細は スポットライトレガシー機能の廃止 をご確認ください
- 統計機能の
rtpにあるrtcpを廃止しました- 詳細は rtp にある RTCP 関連統計情報を廃止 をご確認ください
sora.confのextmap_allow_mixed設定を廃止しました- 詳細は extmap_allow_mixed 設定のデフォルト有効化と廃止 をご確認ください
sora.confのdcsctp_association_max_retrans設定を廃止しました- 詳細は sora.conf の dcsctp_association_max_retrans を廃止 をご確認ください
- 実験的機能である
sora.confのopus_param_clock_rate設定を廃止しました - ListAllConnections API を廃止しました
- 今後は ListConnections API をご利用ください。
- ListChannelClients API を廃止しました
- 今後は ListChannelConnections API をご利用ください
互換性なしの変更情報¶
変更点の不明点についてはサポートまでお問い合わせください
猶予期間を儲けない変更となっておりますのでご注意ください
- ListConnections API の戻り値に含まれる
connection_created_timestamp_secの項目名をcreated_timeに変更、単位を秒からマイクロ秒に変更しております - ListChannelConnections API の戻り値に含まれる
connection_created_timestamp_secの項目名をcreated_timeに変更しており、単位を秒からマイクロ秒に変更しております
変更履歴¶
- [CHANGE]
connection.logのタイムスタンプを秒からマイクロ秒に変更しました - [CHANGE] Chrome 側の破壊的変更により Chrome M95 以前の AV1 への対応を廃止しました
- AV1 を利用する場合は Chrome M96 以降をご利用ください
- [ADD]
sora.confに TURN-TCP で Allocate-Success を遅延させる turn_tcp_allocate_success_delay_time を追加しました- デフォルトは
100 msです - 0-1000 ms の範囲で指定できます
- デフォルトは
- [ADD] Sora 起動時に Sora のバージョンが INFO レベルで
sora.logに出力されるようになりました2021-12-15 12:34:56.789 UTC [info] [-/-/-] <0.235.0> SORA | node_name=sora@127.0.0.1, version=2021.2.0
移行¶
- [CHANGE]
sora.confのuse_re_offerがtrueの場合type: updateを Sora に送るとエラーになるよう変更しました - [CHANGE]
sora.confのuse_re_offerのデフォルト値をtrueに変更しました- この設定は 2022 年 6 月リリース予定の Sora にて廃止します
- [CHANGE]
sora.confのunuse_metadata_listのデフォルト値をtrueに変更しました- この設定は 2022 年 6 月リリース予定の Sora にて廃止します
開発ツール¶
- [CHANGE] デモ機能を 開発ツール と名前を変更しました
- [CHANGE]
sora.confのdemoをtrueにした場合devtoolsが有効になるように変更しましたsora.confのdemoは 2022 年 6 月のリリースにて廃止します- 詳細は sora.conf の demo の廃止 をご確認ください
- [ADD]
sora.confにdevtoolsを追加しました- デフォルトは
falseです
- デフォルトは
ウェブフック¶
- [ADD] 認証ウェブフックに
node_nameを追加しました - [ADD] イベントウェブフックに
node_nameを追加しました - [ADD] イベントウェブフックの
recording.reportにfilenameとfile_pathを追加しましたmetadata_filenameとmetadata_file_pathは 2022 年 12 月リリース予定の Sora で廃止します- 廃止対象は JSON 内の
"data"直下のフィールドのみで、"archives"以下にあるmetadata_filenameとmetadata_file_pathは変更ありません
セッションウェブフック¶
詳細は セッションウェブフック をご確認ください。
- [ADD]
sora.confにセッションウェブフックの URL を指定する session_webhook_url を追加しました - [ADD]
sora.confにセッション生成時のタイムアウトを指定する session_created_timeout を追加しました- デフォルトは
5 sです
- デフォルトは
- [ADD]
sora.confに セッション破棄時のタイムアウトを指定する session_destroyed_timeout を追加しました- デフォルトは
15 sです
- デフォルトは
- [ADD]
session.createdセッションウェブフックを追加しました- セッションが作成されたタイミングで送信します
- [ADD]
session.destroyedセッションウェブフックを追加しました- セッションが破棄されたタイミングで送信します
- [ADD]
session.vanishedセッションウェブフックを追加しましたblock_new_connectionまたはblock_new_sessionモード時にすべてのセッションが破棄されたタイミングで送信します
- [ADD]
sora.confにsession.vanishedをウェブフックリクエストとして送信しないignore_session_vanished_webhookを追加しました- デフォルトは
trueです
- デフォルトは
- [ADD] セッションウェブフックリクエスト送信時の HTTP ヘッダーに
x-sora-session-webhook-typeを追加しました- ヘッダーの値は
typeの値が入ります
- ヘッダーの値は
- [ADD] セッションウェブフックのログを出力する
log/session_webhook.logを追加しました - [ADD] セッションウェブフックの失敗ログを出力する
log/session_webhook_failed.logを追加しました - [ADD] GetStatsReport API に合計セッション生成回数
total_session_createdを追加しました - [ADD] GetStatsReport API に合計セッション破棄回数
total_session_destroyedを追加しました
モード機能¶
詳細は モード機能 をご確認ください。
- [ADD] 新規セッションやコネクションを受け付けなくするモードの仕組みを追加しました
- 初期値は
normalです sora.confにてclusterを有効にしたときの初期値はblock_new_connectionです
- 初期値は
- [ADD] モードを切り替える
ChangeMode APIを追加しました"mode": "normal"を指定するとすべての新規コネクションを受け付けます"mode": "block_new_session"を指定することで新規セッションをブロックすることができます"mode": "block_new_connection"を指定することで新規コネクションをブロックすることができます
- [ADD] 現在のモードを取得する
GetMode APIを追加しました
クラスター機能¶
詳細は クラスター機能 をご確認ください。
- [ADD] クラスター機能利用時にどのノードへも接続ができない場合
NO-ACCEPTABLE-NODEを出力するようにしました - [ADD] 複数 Sora でクラスターを構築し、冗長化する機能を追加しました
- [ADD] クラスター機能利用時に新規のチャネルへの接続する際、同時接続に余裕のある Sora ノードに割り当てる機能を追加しました
- [ADD] クラスター機能利用時に既存のチャネルへの接続する際、そのチャネルへの接続が存在する Sora ノードに割り当てる機能を追加しました
- [ADD] シグナリング接続時に別の Sora ノードにリダイレクトする
"type": "redirect"を追加しました- リダイレクト先のシグナリング URL が
"location": "wss://node01.example.com/signaling"に含まれます
- リダイレクト先のシグナリング URL が
- [ADD] リダイレクト先のシグナリング URL を利用する際に
"redirect": trueを"type": "connect"に追加できるようにしました - [ADD] sora.conf にクラスター利用時にリダイレクトに利用する
cluster_signaling_urlの設定を追加しましたcluster_signaling_url = wss://node01.example.com/signaling
- [ADD] sora.conf にクラスター利用時の Sora ノード名を指定する
cluster_node_nameの設定を追加しましたcluster_node_name = node01@192.0.2.10
- [ADD] sora.conf にクラスター利用時に API URL を指定する
cluster_api_urlの設定を追加しましたcluster_api_url = https://node01.example.com/
- [ADD] sora.conf にクラスター利用時のノード間通信に使用するポート番号を指定する cluster_listen_min_port と cluster_listen_max_port の設定を追加しました
- デフォルトは cluster_listen_min_port が
49010で、 cluster_listen_max_port が49020です
- デフォルトは cluster_listen_min_port が
- [ADD] クラスターに参加するための JoinCluster API を追加しました
- クラスターからの離脱は
bin/sora stopを実行します
- クラスターからの離脱は
- [ADD] クラスターに参加しているノード一覧を取得するための ListClusterNodes API を追加しました
- [ADD] クラスターに割り当てられているチャネル ID 一覧を取得するための ListClusterChannels API を追加しました
音声冗長化機能¶
この機能は Chrome 96 以降で利用できます
- [ADD]
sora.confに 音声冗長化機能を有効にするaudio_redを追加しました。- デフォルトは
falseです - 音声冗長化についての詳細は PSA: opus+red enabled by default in M96 を参照ください
- デフォルトは
- [ADD] 1 チャネルへの接続が
audio_redへの対応が混在していてもやりとりできるようにしました。
録画機能¶
- [ADD] AV1 の録画に対応しました
- この機能は Chrome 96 以降で利用できます
- [ADD] StartRecording API にて
metadataを指定可能にしましたmetadataは JSON オブジェクトである必要がありますmetadataはオプションです
- [ADD]
recording.reportや録画メタデータファイルに StartRecording API で指定したmetadataを出力するようにしました- 指定しなければ
metadataが出力されません
- 指定しなければ
- [ADD] シグナリング通知を利用している場合、録画開始時に "event_type": "recording.started" が通知されるようになりました
- [ADD] シグナリング通知を利用している場合、録画終了時に "event_type": "recording.stopped" が通知されるようになりました
- [ADD]
sora.confに録画関連をシグナリング通知で送信するかどうかを指定する signaling_notify_recording を追加しました
統計エクスポーター機能¶
クライアントから送られてきた統計情報を HTTP/2 経由で外部へ出力する機能です。
詳細は 統計エクスポーター機能 をご確認ください。
- [ADD]
sora.confに統計エクスポーターの接続先を指定するstats_collector_urlを追加しましたstats_collector_url = http://h2c.example.com:5890/collectorstats_collector_url = https://h2.example.com/collector
- [ADD] 統計コレクターへ送信時の HTTP ヘッダーに
x-sora-stats-exporter-typeを追加しました- ヘッダーの値は
typeの値が入ります
- ヘッダーの値は
- [ADD]
sora.confに統計エクスポーターの数を指定するstats_exporter_numberを追加しました- デフォルトは
5です
- デフォルトは
- [ADD]
sora.confにstats_exporter_tls_fullchain_fileを追加しました - [ADD]
sora.confにstats_exporter_tls_privkey_fileを追加しました - [ADD]
sora.confにstats_exporter_tls_verify_cacert_fileを追加しました - [ADD] 頻繁に送らない項目を定義しました
- 1 h に 1 回送ります
- codec / local-candidate / remote-candidate / certificate / peer-connection / track-stream
スポットライト機能¶
フォーカス/アンフォーカス挙動変更 API を追加しました。
- [ADD] スポットライトのフォーカス/アンフォーカス挙動を変更する RequestSpotlightRid API` を追加しました
- [ADD] スポットライトのフォーカス/アンフォーカス挙動をリセットする ResetSpotlightRid API を追加しました
- [ADD] スポットライトのフォーカス/アンフォーカス挙動を一括で変更する BatchRequestSpotlightRid API を追加しました
ICE コネクションステート機能¶
詳細は ICE コネクションステート機能 をご確認ください。
- [ADD]
sora.confにice_connection_state_disconnected_timeoutを追加しました- デフォルトは
5 sです
- デフォルトは
- [ADD]
sora.confにice_connection_state_failed_timeoutを追加しました- デフォルトは
10 sです
- デフォルトは
- [ADD]
sora.logに warning でICE-CONNECTION-DISCONNECTEDが出力されるようになりました1000 ms間隔で 5 秒間STUN Binding-Requestを送っても 1 度もSTUN Binding-Successが返ってこない場合に出力されます1000 msはsora.confのice_connection_state_disconnected_timeoutにて変更できます
- [ADD]
sora.logにerrorでICE-CONNECTION-FAILEDが出力されるようになりました- この場合 Sora は接続を切断します
50 ms間隔で 10 秒間STUN Binding-Requestを送っても 1 度もSTUN Binding-Successが返ってこない場合に出力されます50 msはsora.confのice_connection_state_failed_timeoutにて変更できます
DataChannel 機能¶
- [CHANGE] 利用しない DataChannel を作成しない仕組みを追加しました
sora.confの signaling_notify が無効の場合はlabel: notifyの DataChannel は作成しませんsora.confのsora_conf-e2eeが無効の場合はlabel: e2eeの DataChannel は作成しませんsora.confのuser_agent_statsが無効の場合はlabel: statsの DataChannel は作成しません
- [CHANGE]
dcsctp_association_max_retransを廃止しました- 切断判定には ICE コネクションステート機能が利用されます
メッセージング機能¶
詳細は リアルタイムメッセージング機能 をご確認ください。
DataChannel を利用したメッセージをユーザーが提起して自由に送ることができる機能です。ラベルは # から始まる必要があります。
- [ADD]
type: connectにdata_channelsを追加しました- メッセージ機能は
[{"label": "#abc", "direction": "sendrecv"}, ...]で指定できます - メッセージのラベルを指定する
labelを追加しました^#[a-zA-Z0-9][a-zA-Z0-9-]{1,30}$
- メッセージのメッセージの方向を指定する
directionを追加しましたsendrecv/sendonly/recvonlyのどれかを指定して下さい- 方向はクライアントから見た視点で
roleと同様です
- メッセージの順番を指定する ordered を追加しました
- デフォルトは
trueです
- デフォルトは
- メッセージのリトライ時間を指定する max_packet_life_time を追加しました
- デフォルト指定無しです
- 単位はミリ秒です
- メッセージのリトライ回数を指定する max_retransmits を追加しました
- デフォルト指定無しです
- メッセージの圧縮を指定する compress を追加しました
- デフォルトは
falseです
- デフォルトは
- メッセージ機能は
- [ADD]
sora.confに data_channel_messaging を追加しました- デフォルトは
falseです
- デフォルトは
- [ADD] 認証成功時の払い出しで
data_channelsを指定できるようにしました"type": "connect"時に、指定されたdata_channelsを上書きできます
- [ADD]
sora.confに data_channel_messaging_only を追加しました- デフォルトは
falseです
- デフォルトは
ユーザーエージェント統計 API¶
リモート統計情報 API の名前を変更し整理した API です。
リモート統計情報 API は 2022 年 6 月リリースの Sora にて廃止しますので、 ユーザーエージェント統計情報 API に切り替えをお願いします。
- [CHANGE]
remote_statsをデフォルトfalseにしました - [ADD]
sora.confにuser_agent_statsを追加しました- デフォルトは
trueです remote_statsは 2022 年 6 月にて廃止します
- デフォルトは
- [ADD] ListUserAgentStats API を追加しました
- GetAllRemoteStats の代替 API です
- [ADD] ListChannelUserAgentStats API を追加しました
- GetChannelRemoteStats の代替 API です
- [ADD] GetUserAgentStats API を追加しました
- GetConnectionRemoteStats の代替 API です
2021.1.4¶
- リリース:
2021-10-29
- 対応 Chrome:
M95 以降
- 対応 Firefox:
93 以降
- 対応 Safari:
15.1 以降
- 対応 Edge:
95 以降
変更履歴¶
- [FIX] ネットワークが不安定な場合に録画が失敗する問題を修正しました
- [FIX] Safari を利用した場合に特定条件で復号が失敗する問題を修正しました
2021.1.2¶
- リリース:
2021-09-17
- 対応 Chrome:
M93 以降
- 対応 Firefox:
92 以降
- 対応 Safari:
14.1 以降
- 対応 Edge:
93 以降
変更履歴¶
- [UPDATE] デモ機能で利用している sora-demo を 2021.1.6 にアップデートしました
- [ADD] 切断 API の
reasonを指定した場合に、指定したreasonが、イベントウェブフックconnection.destroyedにdisconnect_api_reasonとして含まれるようになりました- 今まで
reasonとして入ってきていたのと同じ値が入ります
- 今まで
- [ADD]
"type": "disconnect"にreasonを指定した場合に、指定したreasonが、イベントウェブフックconnection.destroyedにtype_disconnect_reasonとして含まれるようになりました - [ADD] イベントウェブフック
connection.*のdataに"created_time": "connection.created 時の UNIX 時刻"を追加しました - [ADD]
sora.confにスポットライトでフォーカスされた後、一定時間追い出されなくなる sora_conf-default_spotlight_focus_min_interval を追加しました- デフォルトは
2000 msです
- デフォルトは
- [FIX] スポットライト機能で複数人が音を出し続けていると頻繁にフォーカスが入れ替わる問題を修正しました
- アンフォーカス後のフォーカスは、最低でも sora_conf-default_spotlight_delayed_focus_interval だけ待つようになりました
- [FIX] スポットライト機能でアンフォーカスからフォーカスに変わるタイミングで音声や映像が配信されなくなる場合がある問題を修正しました
- [FIX] スポットライト機能で自動アンフォーカスが指定した時間よりも速く行われる問題を修正しました
- [FIX] IPv6 のみで正常に接続できない場合がある問題を修正しました
- [FIX] クライアントから
"type": "candidate"を送ることができる回数を 20 から 50 に変更しました - [FIX] DataChannel におけるエンドポイント障害検出カウンターのリセットタイミングを修正しました
- [FIX] 一部の HTTP API のバリデーションが正常に動作していない問題を修正しました
- [FIX] シグナリングが DataChannel に切り替わったタイミングで WebSocket のアイドルタイムアウトが無制限になるように修正しました
- [FIX] SRTP/SRTCP の暗号が AES-GCM の場合に、長時間配信すると正常に復号できなくなる問題を修正しました
- [FIX] sora.conf の不要なコメントを削除しました
2021.1¶
- リリース:
2021-06-23
- 対応 Chrome:
M91 以降
- 対応 Firefox:
89 以降
- 対応 Safari:
14.1 以降
- 対応 Edge:
91 以降
廃止情報¶
role の upstream と downstream を廃止¶
role の upstream と downstream を廃止しました。
詳細は role の upstream と downstream を廃止 をご確認ください。
allow_client_id_assignment 設定を廃止¶
接続時や認証成功時に、常に client_id を指定できるようになり、
sora.conf の allow_client_id_assignment を廃止しました。
詳細は client_id を指定する設定の廃止 をご確認ください。
旧サイマルキャスト API を廃止¶
Sora_20180820.ChangeSimulcastQuality API を廃止しました。
詳細は 旧サイマルキャスト画質変更 API の廃止 をご確認ください。
互換なしの変更情報¶
廃止以外の互換性がない機能変更はありません。
実験的機能から正式機能へ昇格¶
Sora_20201120.PushChannelByRoleAPISora_20201120.DisconnectChannelByRoleAPI
ハイライト¶
- スポットライト機能に rid 指定機能を追加しました
- スポットライト機能に遅延フォーカス機能を追加しました
- スポットライト機能に自動アンフォーカス機能を追加しました
- スポットライト機能にフォーカスなしの音声配信機能を追加しました
- シグナリングを WebSocket から DataChannel へ切り替える機能を追加しました
- DataChannel 経由のシグナリング利用時に WebSocket の切断を無視する機能を追加しました
- より少ない CPU リソースでより多くの接続を処理できるようになりました
変更履歴¶
- [UPDATE] デモ機能で利用している sora-demo を 2021.1 にアップデートしました
- [UPDATE] より少ない CPU リソースで多くの接続を処理できるようになりました
- [ADD] TURN-TCP 利用時の Proxy Protocol v1 へ対応しました
- これに伴い TURN-TLS、TURN-TCP、シグナリングで 443 番ポートを使用する の内容が Sora 2021.1 向けに変更されています
- nginx の変更はしなくても動作しますが、変更をお勧めします
- [ADD] シグナリング
"type": "offer"時に配信で有効になっているaudioまたはvideoのmidを含めるようにしました- 例:
"type": "offer", "mid": {"audio": "audio_lFaJYL", "video": "video_lMjsoq"}
- 例:
- [ADD]
"type": "udpate"の代わりに"type": "re-offer"を送れるように、sora.confにuse_re_offerを追加しました- デフォルトは
falseです - この設定は 2021 年 12 月リリースの Sora にてデフォルト
trueに変更されます - この設定は 2022 年 6 月リリースの Sora にて廃止され、常に
"type": "re-offer"が送られるようになります
- デフォルトは
- [ADD] シグナリング通知メタデータの利用時に、
metadata_listの代わりにdataを送れるように、sora.confにunuse_metadata_listを追加しました- デフォルトは
falseです - この設定は 2021 年 12 月リリースの Sora にてデフォルト
trueに変更されます - この設定は 2022 年 6 月リリースの Sora にて廃止され、常に
dataが送られるようになります
- デフォルトは
- [FIX] 録画機能の利用時で映像が送られてこない際に WebM の PixelWidth / PixelHeight が 0 になる問題を修正しました
- [FIX] 不安定な回線や音声パケットが送られてこなくなる場合にクライアント側でリップシンクが正常に行われず、音声と映像がずれてしまう問題を修正しました
- [FIX] 音声クロックレートが 48000 Hz 固定になってしまう問題を修正しました
- [FIX] スポットライトレガシーで recvonly が利用できてしまう問題を修正しました
- [FIX] TURN-TCP で問題があった際に、シグナリングを切断しない限り接続が残り続ける問題を修正しました
統計機能¶
- [ADD] RTP ヘッダー拡張の統計情報を追加しました
- [ADD] サイマルキャストの rid 単位の RTP 統計情報を追加しました
- [ADD] サイマルキャストの rid 単位の RTP ヘッダー拡張統計情報を追加しました
- [ADD] RTCP 統計情報を
rtcpに移動しました- 2021 年 12 月のリリースにて
rtpから RTCP 関連の統計情報を削除します
- 2021 年 12 月のリリースにて
スポットライト機能¶
実験的機能
- [CHANGE] デフォルトの
r0のmaxFramerateを1.0から5.0に変更しました
スポットライト機能: rid 指定¶
実験的機能
スポットライト利用時にフォーカス、アンフォーカスそれぞれで受信する映像を接続ごとに指定できるようになりました。 これによりモバイル端末や回線が不安定な場合は映像を一切受信しないなどの設定ができます。
- [ADD] アンフォーカス時に受信する rid を指定できるように、
sora.confに default_spotlight_unfocus_rid を追加しました- デフォルトは
r0 none,r0,r1,r2を指定可能
- デフォルトは
- [ADD] フォーカス時に受信する rid を指定できるように、
sora.confに default_spotlight_focus_rid を追加しました- デフォルトは
r1 none,r0,r1,r2を指定可能
- デフォルトは
- [ADD] アンフォーカス時に受信する rid を指定できるように、シグナリング
"type": "connect"にspotlight_unfocus_ridを追加しました- デフォルトは
sora.confの default_spotlight_unfocus_rid の値が採用されます none,r0,r1,r2を指定可能
- デフォルトは
- [ADD] フォーカス時に受信する rid を指定できるように、シグナリング
"type": "connect"にspotlight_focus_ridを追加しました- デフォルトは
sora.confの default_spotlight_focus_rid の値が採用されます none,r0,r1,r2を指定可能
- デフォルトは
- [ADD] アンフォーカス時に受信する rid を指定できるように、認証成功時の払い出しに、
spotlight_unfocus_ridを追加しました- デフォルトは
sora.confの default_spotlight_unfocus_rid の値が採用されます "type": "connect"時に、指定されたspotlight_unfocus_ridを上書きできますnone,r0,r1,r2を指定可能
- デフォルトは
- [ADD] フォーカス時に受信する rid を指定できるように、認証成功時の払い出しに
spotlight_focus_ridを追加しました- デフォルトは
sora.confの default_spotlight_focus_rid の値が採用されます "type": "connect"時に、指定されたspotlight_focus_ridを上書きできますnone,r0,r1,r2を指定可能
- デフォルトは
スポットライト機能: 遅延フォーカス¶
実験的機能
スポットライト利用時に、ちょっとした物音やあいづちではすぐにフォーカスされないように、フォーカスを遅延させる機能を追加しました。 この機能によりサーバーからクライアントへのパケット流量を減らすことができるようになりました。
- [ADD] アンフォーカス時にフォーカスを遅延させるかどうかを指定できるように、
sora.confに sora_conf-default_spotlight_delayed_focus を追加しました- デフォルトは
true
- デフォルトは
- [ADD] アンフォーカス時にフォーカスを遅延させる時間を指定できるように、
sora.confに sora_conf-default_spotlight_delayed_focus_interval を追加しました- デフォルトは
2000 ms
- デフォルトは
スポットライト機能: フォーカスなしの音声配信¶
実験的機能
スポットライト利用時に、他の人にフォーカスが移った場合でも音声を配信し続ける機能を追加しました。 この機能によりスポットライトの数が少ない場合でも、他の人がフォーカスされたことにより音声が送られなくなる、といったことがなくなりました。
- [ADD] フォーカスなしでも音声を配信するかどうかを指定できるように、
sora.confに sora_conf-default_spotlight_unfocus_audio を追加しました- デフォルトは
true
- デフォルトは
- [ADD] フォーカスなしでも音声を配信する上限レートを指定できるように、
sora.confに sora_conf-default_spotlight_unfocus_audio_rate_limit を追加しました- デフォルトは
2 - 単位は
1 音声ストリーム = 50 packets / sです
- デフォルトは
スポットライト機能: 自動アンフォーカス機能¶
実験的機能
スポットライト利用時に、一定時間音声が配信されていない場合はアンフォーカスする機能を追加しました。 この機能によりサーバーからクライアントへのパケット流量を減らすことができるようになりました。
- [ADD] 音がない場合に自動でアンフォーカスするかどうかを指定できるように、
sora.confに sora_conf-default_spotlight_auto_unfocus を追加しました- デフォルトは
true
- デフォルトは
- [ADD] 自動でアンフォーカスする無音時間を指定できるように、
sora.confに sora_conf-default_spotlight_auto_unfocus_interval を追加しました- デフォルトは
10 s - 1 ms 以上、30 s 以下
- API でフォーカスが固定されている場合は自動アンフォーカスの対象外になります
- デフォルトは
DataChannel 機能: シグナリングの WebSocket から DataChannel への切り替え機能¶
実験的機能
シグナリングやシグナリング通知、プッシュ通知などで利用している WebSocket から DataChannel へ切り替えます。
ただし WebSocket は切断判定に利用するため、Sora から切断することはありません 。
- [ADD]
sora.confに default_data_channel_signaling を追加しました- デフォルトは
falseです
- デフォルトは
- [ADD] シグナリング
"type": "connect"でdata_channel_signaling: booleanを指定できるようにしました- デフォルトは
sora.confの default_data_channel_signaling に設定された値です
- デフォルトは
- [ADD] 認証成功時の払い出しで
data_channel_signaling: booleanを指定できるようにしました- デフォルトは
sora.confの default_data_channel_signaling に設定された値です "type": "connect"時に、指定されたdata_channel_signalingを上書きできます
- デフォルトは
- [ADD] シグナリング
"type": "offer"時にdata_channel_signaling: booleanを払い出すようにしました- この払い出しは data_channel_signaling が true の時のみ有効です
- [ADD] WebSocket から DataChannel へ切り替わった場合は
"type": "switched"が WebSocket 経由で送られるようにしました"type": "switched"を送ったタイミングからWebSocket 経由の"type": "ping"の間隔が 5 秒から 30 秒へ変更されます"type": "switched"を送ったタイミングからWebSocket 経由の"type": "pong"を確認しなくなります
以下の機能が DataChannel に切り替わります。
- シグナリング
- DataChannel の
labelはsignalingです - 以下が利用できるメッセージタイプです
"type": "re-offer""type": "re-answer""type": "disconnect"
- DataChannel の
- シグナリング通知
- DataChannel の
labelはnotifyです - 以下が利用できるメッセージタイプです
"type": "notify"
- DataChannel の
- プッシュ通知
- DataChannel の
labelはpushです - 以下が利用できるメッセージタイプです
"type": "push"
- DataChannel の
- E2EE
- DataChannel の
labelはe2eeです
- DataChannel の
- 統計情報
- DataChannel の
labelはstatsです - 以下が利用できるメッセージタイプです
"type": "req-stats""type": "stats"
- DataChannel の
DataChannel 機能: WebSocket の切断を無視する機能¶
実験的機能
- [ADD]
sora.confに default_ignore_disconnect_websocket を追加しました- デフォルトは
falseです - この値を
trueにした場合、 DataChannel 経由でのシグナリング有効時に WebSocket を切断しても、Sora はクライアントの切断と見なさずに接続が継続します
- デフォルトは
- [ADD]
"type": "connect"時にignore_disconnect_websocket: booleanを指定できるようにしました- デフォルトは
sora.confに設定された値です - この値を
trueにした場合、 DataChannel 経由でのシグナリング有効時に WebSocket を切断しても、Sora はクライアントの切断と見なさずに接続が継続します
- デフォルトは
- [ADD] 認証成功時の払い出しに
ignore_disconnect_websocket: booleanを指定できるようにしました- デフォルトは
sora.confに設定された値です "type": "connect"時に、指定されたignore_disconnect_websocketを上書きできます- この値を
trueにした場合、 DataChannel 経由でのシグナリング有効時に WebSocket を切断しても、Sora はクライアントの切断と見なさずに接続が継続します
- デフォルトは
- [ADD]
"type": "offer"時にdata_channel_signalingがtrueの場合ignore_disconnect_websocket: booleanを払い出すようにしました
DataChannel 機能: メッセージの圧縮機能¶
実験的機能
DataChannel で送受信するメッセージを圧縮して送受信できる機能です。
"type": "offer" 時に送られてくる data_channels: [{"label": "signaling", "compress": true}, ...] のように compress が true になっている場合は圧縮して送る必要があります。
- [ADD]
"type": "offer"時に DataChannel の情報を送るようにしましたdata_channels: [{"label": "<label>", "compress": boolean}, ...]の形式で送られてきます- DataChannel を有効にしていない場合は
data_channelsキーは含まれません compressがtrueの場合、 DataChannel 経由でのメッセージをzlib/deflateで圧縮/展開する必要があります
DataChannel 機能: クライアント統計情報の要求¶
実験的機能
DataChannel 経由でのシグナリングが有効になると、統計情報を "type": "pong" に入れて返すのではなく、
サーバーから "type": "req-stats" が送られてきたら、 "type": "stats", "reports": [...] で送るという仕組みに切り替わります。
- [ADD] DataChannel 経由でのシグナリング利用時に
labelのstatsから"type": "req-stats"が送られてきます- 送られてくる間隔は
sora.confの data_channel_stats_timer_interval で指定できます
- 送られてくる間隔は
- [ADD]
sora.confに data_channel_stats_timer_interval を追加しました- デフォルトは
5 sです - 最小は
5 sで最大は300 sです
- デフォルトは
DataChannel 機能: サーバー統計情報¶
実験的機能
GetStats* 系 API に DataChannel 関連の Sora 統計情報を追加しました。
- [ADD]
total_dropped_received_data_channelを追加sora.confにて data_channel_packet_loss_simulator_incoming を0ではない値を指定した際に破棄されたパケットの合計数です
- [ADD]
total_dropped_sent_data_channelを追加sora.confにて data_channel_packet_loss_simulator_outgoing を0ではない値を指定した際に破棄されたパケットの合計数です
- [ADD] 項目に
data_channelを追加しましたlabel単位の統計情報が確認できますtotal_received_data_channel_messagelabel単位で受信したメッセージ数の合計
total_received_data_channel_message_byte_sizelabel単位で受信したメッセージのバイト数の合計
total_sent_data_channel_messagelabel単位で送信したメッセージの数の合計
total_sent_data_channel_message_byte_sizelabel単位で送信したメッセージのバイト数の合計
- [ADD] 項目に
sctpを追加しましたtotal_received_invalid_sctptotal_received_sctptotal_received_sctp_byte_sizetotal_received_sctp_chunk_aborttotal_received_sctp_chunk_asconftotal_received_sctp_chunk_asconf_acktotal_received_sctp_chunk_authtotal_received_sctp_chunk_cookie_acktotal_received_sctp_chunk_cookie_echototal_received_sctp_chunk_cwrtotal_received_sctp_chunk_datatotal_received_sctp_chunk_ecnetotal_received_sctp_chunk_errortotal_received_sctp_chunk_forward_tsntotal_received_sctp_chunk_heartbeattotal_received_sctp_chunk_heartbeat_acktotal_received_sctp_chunk_i_datatotal_received_sctp_chunk_i_forward_tsntotal_received_sctp_chunk_inittotal_received_sctp_chunk_init_acktotal_received_sctp_chunk_padtotal_received_sctp_chunk_reconfigtotal_received_sctp_chunk_sacktotal_received_sctp_chunk_shutdowntotal_received_sctp_chunk_shutdown_acktotal_received_sctp_chunk_shutdown_completetotal_received_sctp_chunk_unknowntotal_received_unknown_sctptotal_sent_sctptotal_sent_sctp_byte_sizetotal_sent_sctp_chunk_aborttotal_sent_sctp_chunk_asconftotal_sent_sctp_chunk_asconf_acktotal_sent_sctp_chunk_authtotal_sent_sctp_chunk_cookie_acktotal_sent_sctp_chunk_cookie_echototal_sent_sctp_chunk_cwrtotal_sent_sctp_chunk_datatotal_sent_sctp_chunk_ecnetotal_sent_sctp_chunk_errortotal_sent_sctp_chunk_forward_tsntotal_sent_sctp_chunk_heartbeattotal_sent_sctp_chunk_heartbeat_acktotal_sent_sctp_chunk_i_datatotal_sent_sctp_chunk_i_forward_tsntotal_sent_sctp_chunk_inittotal_sent_sctp_chunk_init_acktotal_sent_sctp_chunk_padtotal_sent_sctp_chunk_reconfigtotal_sent_sctp_chunk_sacktotal_sent_sctp_chunk_shutdowntotal_sent_sctp_chunk_shutdown_acktotal_sent_sctp_chunk_shutdown_completetotal_sent_sctp_chunk_unknown
DataChannel 機能: 設定¶
実験的機能
詳細は DataChannel シグナリング機能 をご確認ください。
- [ADD]
sora.confにdcsctp_association_max_retransを追加しました- DataChannel で利用している SCTP プロトコルのエンドポイント障害検出の最大再送値です
- デフォルトは
10です - 最小は
1で最大は128です
- [ADD]
sora.confにdcsctp_heartbeat_intervalを追加しました- DataChannel で利用している SCTP プロトコルのハートビートを送る間隔です
- デフォルトは
30 sです - 最小は
0 sで最大は120 sです 0 sに設定した場合は SCTP レイヤーでのハートビートを送りません
- [ADD]
sora.confに data_channel_packet_loss_simulator_incoming を追加しました- デフォルトは
0で無効です - Sora が受信する DataChannel のメッセージを、指定した割合で破棄します
- デフォルトは
- [ADD]
sora.confに data_channel_packet_loss_simulator_outgoing を追加しました- デフォルトは
0で無効です - Sora が送信する DataChannel のメッセージを、指定した割合で破棄します
- デフォルトは
RTP ヘッダー拡張機能¶
実験的機能
RTP ヘッダー拡張の利用を指定できるようにしました。
- [ADD]
sora.confに RTP ヘッダー拡張urn:3gpp:video-orientationを有効にする設定 rtp_hdrext_video_orientation を追加しました- デフォルトは
false
- デフォルトは
- [ADD]
sora.confに RTP ヘッダー拡張http://www.webrtc.org/experiments/rtp-hdrext/video-content-typeを有効にする設定 rtp_hdrext_video_content_type を追加しました- デフォルトは
false
- デフォルトは
- [ADD]
sora.confに RTP ヘッダー拡張http://www.webrtc.org/experiments/rtp-hdrext/video-timingを有効にする設定 rtp_hdrext_video_timing を追加しました- デフォルトは
false
- デフォルトは
- [ADD]
sora.confに RTP ヘッダー拡張http://www.webrtc.org/experiments/rtp-hdrext/playout-delayを有効にする設定 rtp_hdrext_playout_delay を追加しました- デフォルトは
false
- デフォルトは
- [ADD]
sora.confに RTP ヘッダー拡張http://www.webrtc.org/experiments/rtp-hdrext/color-spaceを有効にする設定 rtp_hdrext_color_space を追加しました- デフォルトは
false
- デフォルトは
- [ADD]
sora.confに RTP ヘッダー拡張urn:ietf:params:rtp-hdrext:sdes:midを有効にする設定 rtp_hdrext_sdes_mid を追加しました- デフォルトは
false
- デフォルトは
2020.3.5¶
- リリース:
2021-03-12
- 対応 Chrome:
M89 以降
- 対応 Firefox:
86 以降
- 対応 Safari:
14.0 以降
- 対応 Edge:
89 以降
変更履歴¶
- [UPDATE] デモ機能のバージョンを 2020.6.2 にアップデートしました
- サイマルキャストの利用可能判定処理を改善した Sora JavaScript SDK 2020.6.2 にアップデートしています
- [FIX] ネットワークが不安定な場合に、リップシンクが正常に動作しない問題を暫定的に修正しました
- 正式な対応は今後リリース予定です
- [FIX] サイマルキャスト利用時に複数の SSRC が r0 と判断されてしまう問題を修正しました
- [FIX] サイマルキャスト利用時に複数の SSRC に対する rid が重複した時に WARNING ログを出力するようにしました
- [FIX] サイマルキャスト利用時に、ストリームの切り替わりでブロックノイズが出る問題を修正しました
- [FIX] 映像の切り替えが発生した際に映像が乱れる問題を修正しました
- [FIX] VP8 サイマルキャストで Temporal Scalability が存在しない場合に、視聴側が切断される問題を修正しました
- [FIX] 実験的機能である opus_params が正常に利用できなくなっていた問題を修正しました
2020.3.3¶
- リリース:
2021-02-03
- 対応 Chrome:
M88 以降
- 対応 Firefox:
85 以降
- 対応 Safari:
14.0 以降
- 対応 Edge:
88 以降
- [FIX] ライセンスファイルの接続上限数の半分を超えた時点で、接続数の超過エラーを示す EXCEED-MAX-CONNECTIONS が発生する問題を修正しました
- バージョン 2020.3 / 2020.3.1 / 2020.3.2 がこの問題の影響を受けます
2020.3.2¶
- リリース:
2021-01-19
- 対応 Chrome:
M87 以降
- 対応 Firefox:
84 以降
- 対応 Safari:
14.0 以降
- 対応 Edge:
87 以降
変更履歴¶
- [FIX] マルチストリーム機能利用時に、短い間に複数の接続・切断が発生した場合に、Sora から
"type": "update"が連続で送られてしまう問題を修正しました - [FIX] スポットライト機能のシグナリング通知
spotlight.focusedとspotlight.unfocusedに新しくspotlight_numberを追加しました- この追加により ChangeSpotlightNumber API を実行した後に参加者が現時点でのスポットライト数を確認することができない問題を解決しています
2020.3.1¶
- リリース:
2020-12-23
- 対応 Chrome:
M87 以降
- 対応 Firefox:
84 以降
- 対応 Safari:
14.0 以降
- 対応 Edge:
87 以降
変更履歴¶
- [FIX] スポットライト機能利用時に音声のみで接続できない問題を修正しました
- [FIX] サイマルキャスト利用時に映像を無効にしている場合に
simulcast_ridを指定してもデフォルトの値が採用されてしまう問題を修正しました - [FIX] サイマルキャスト機能やスポットライト機能利用時に
RequestRtpStream APIを利用すると、新規接続のridが固定されてしまう問題を修正しました - [FIX] サイマルキャスト機能やスポットライト機能利用時に
ResetRtpStream APIを利用すると、新規接続のridが固定されてしまう問題を修正しました - [FIX]
ListPauseRtpStreams APIの戻り値をrecv_connection_idとsend_connection_idに修正しました
2020.3¶
- リリース:
2020-12-16
- 対応 Chrome:
M87 以降
- 対応 Firefox:
83 以降
- 対応 Safari:
14.0 以降
- 対応 Edge:
87 以降
互換なしの変更情報¶
変更点の不明点についてはサポートまでお問い合わせください
移行についての詳細は 2020.2.x から 2020.3.x をご確認ください。
bin/sora startを廃止しました、今後はbin/sora daemonをお使いくださいsystemdを利用していてbin/sora foregroundを利用されている方に影響はありません
- 録画ディレクトリ構成を変更しました
- archive/ 以下にすべて生成するのではなくレコーディング ID 単位でディレクトリを生成するようになりました
- レコーディング ID を明示的にしました
- StartRecording API の戻り値の
idをrecording_idに変更しました - recording.report イベントウェブフックの
idをrecording_idに変更しました - archive.available イベントウェブフックの
dataの中にrecording_idを追加しました
- StartRecording API の戻り値の
sora.confにて時間を指定する設定項目で単位指定を必須にしました- 単位が必要な値を指定する場合は
30 sや2000 msといった単位を指定する必要があります - 数値と単位の間にはスペースを入れてください
- 例:
webhook_response_timeout = 5 s - 例:
default_forwarding_pli_interval = 30000 ms - 例:
connection_created_wait_timeout = 30 s
- 単位が必要な値を指定する場合は
- サイマルキャスト機能の
quality指定をすべてridに変更しました sora.confのallow_client_id_assignmentをデフォルトtrueに変更しましたsora.confのallow_client_id_assignmentをtrueにした際にクライアントがclient_idを含めない場合、認証ウェブフックにclient_idが含まれないよう変更しました- いままでは
client_idにnullが入っていました
- いままでは
sora.confのspotlight_legacyをデフォルトfalseにしました- スポットライトレガシーを利用したい場合は
sora.confにてspotlight_legacy = trueを設定してください
- スポットライトレガシーを利用したい場合は
- 実験的機能として提供していた
ChangeSimulcastQuality APIを非推奨にしましたRequestRtpStream APIを利用してください
- 実験的機能として提供していた
RequestSpotlightQuality APIを廃止しましたRequestRtpStream APIを利用してください
- 実験的機能として提供していた
ResetSpotlightQuality APIを廃止しましたResetRtpStream APIを利用してください
sora.confのgeneric_nack_cache_size_msecを廃止しました
ハイライト¶
- Red Hat Enterprise Linux 8 向けパッケージを追加しました
- サイマルキャスト機能が正式版になりました
- サイマルキャストのエンコーディング設定がカスタマイズ可能になりました
- サイマルキャスト利用時の録画が可能になりました
- サイマルキャスト利用時の転送が可能になりました
- ウェブフックにベーシック認証機能を追加しました
- 実験的機能として録画ファイル分割出力機能を追加しました
- 実験的機能としてシグナリング通知メタデータ拡張機能を追加しました
- 実験的機能として E2EE (End to End Encryption) 機能を追加しました
- 実験的機能として認証ウェブフックログ機能を追加しました
変更履歴¶
Red Hat Enterprise Linux 8 対応¶
CentOS 8 のサポートが 2021 年 12 月に終了することが発表されました。 それにともない時雨堂では Red Hat Enterprise Linux 8 向けのパッケージを用意しました。
- [ADD] Red Hat Enterprise Linux 8 向けパッケージを追加しました
サイマルキャスト機能¶
- [CHANGE]
qualityの指定をすべてridに変更しました- rid とはサイマルキャストのストリームそれぞれに付いている id です
- rid は r0 / r1 / r2 があります
- rid には優先度があり、数値が少ないほど優先されて配信されます
- r0 は必ず配信されますが、回線が不安定になったりした場合は r2 -> r1 の順番で配信が停止していきます
- [ADD] 実験的機能として rid をリクエストできる
RequestRtpStream APIを追加しました - [ADD] 実験的機能として rid をリセットできる
ResetRtpStream APIを追加しました - [FIX] 視聴者が受信するストリームの rid 変更後に配信側を再接続した場合に状態が不整合になる問題を修正しました
- マルチストリームが無効な状態でのみ発生していた問題です
サイマルキャストエンコーディング設定のカスタマイズ機能¶
- [ADD]
sora.confにsimulcast_encodings_fileを追加しましたsimulcast_encodings_file = etc/simulcast_encodings.jsonといったかたちで JSON ファイルを指定可能になります- 詳細は
映像のエンコーディングパラメータのカスタマイズをご確認ください
- [ADD] 認証成功時の払い出しに
simulcast_encodingsを追加しました- 詳細は simulcast_encodings の払い出し をご確認ください
サイマルキャスト録画機能¶
- [ADD] サイマルキャストで録画機能が利用可能になりました
- 配信されている 優先度が一番低い映像 を録画します
- r0 / r1 / r2 の 3 本が配信されていれば r2 が録画されます
- 優先度が低い映像については 映像の優先度 をご確認ください
- 配信されている 優先度が一番低い映像 を録画します
サイマルキャスト転送機能¶
- [ADD] サイマルキャストで転送機能が利用可能になりました
- [ADD]
sora.confにforwarding_simulcastを追加しましたallとsingleが指定できますallは配信されているすべてのストリームが転送されますsingleは配信されている優先度が低いストリームが転送されます- 優先度が低い映像については 映像の優先度 をご確認ください
スポットライト機能¶
- [FIX] 認証ウェブフック通知に spotlight / spotlight_number を追加しました
sora.confにてspotlight_legacy = falseの場合に含まれます
スポットライトのサイマルキャストエンコーディング設定カスタマイズ機能¶
- [ADD]
sora.confにspotlight_encodings_fileを追加しましたspotlight_encodings_file = etc/spotlight_encodings.jsonといったかたちで JSON ファイルを指定可能になります- 設定方法は
simulcast_encodings_fileと同様ですがspotlight時のみ利用されます - 詳細は
スポットライト利用時の映像のエンコーディングパラメータのカスタマイズをご確認ください
- [ADD] 認証成功時の払い出しに
spotlight_encodingsを追加しました- 詳細は spotlight_encodings の払い出し をご確認ください
ウェブフックベーシック認証機能¶
ウェブフックを通知する際にベーシック認証を利用できるようになりました。
- [ADD]
sora.confにウェブフックのベーシック認証を有効にするwebhook_basic_authnを追加しました- デフォルトは
falseです
- デフォルトは
- [ADD]
sora.confにウェブフックのベーシック認証に利用するユーザー ID を指定するwebhook_basic_authn_user_idを追加しました - [ADD]
sora.confにウェブフックのベーシック認証に利用するパスワードを指定するwebhook_basic_authn_passwordを追加しました
ウェブフックを安全でない通信でも利用できる機能¶
ウェブフックを HTTPS で利用する際に証明書のチェックを行わなくできます。自己署名証明書などが利用できるようになりました。
- [ADD]
sora.confにウェブフックの安全でない通信を許可するwebhook_insecureを追加しました- デフォルトは
falseです
- デフォルトは
認証ウェブフック機能¶
- [CHANGE]
sora.confのallow_client_id_assignmentをtrueにした際、クライアントがclient_idを指定しない場合、認証ウェブフックにclient_idを含まないよう変更しました- いままでは
client_idにnullが入っていました
- いままでは
イベントウェブフック機能¶
- [CHANGE] イベントウェブフック
connection.*のchannel_upstream_connectionsを非推奨にしました- 2021 年 6 月廃止予定です
- [CHANGE] イベントウェブフック
connection.*のchannel_downstream_connectionsを非推奨にしました- 2021 年 6 月廃止予定です
- [ADD] イベントウェブフック
connection.*にsimulcast: booleanとspotlight: booleanの項目を追加しましたspotlight_legacyは非対応です
- [ADD] 実験的機能としてイベントウェブフック
connection.*にchannel_sendrecv_connectionsを追加しました- 送受信している接続数
- [ADD] 実験的機能としてイベントウェブフック
connection.*にchannel_sendonly_connectionsを追加しました- 送信のみしている接続数
- [ADD] 実験的機能としてイベントウェブフック
connection.*にchannel_recvonly_connectionsを追加しました- 受信のみしている接続数
- [FIX] WebRTC が確立していなくてもイベントウェブフック connection.updated が発火してしまう問題を修正
sora.confとconnection_created_timeoutを 60 秒以上にしており、パケロスがひどい場合のみ発生していました
- [FIX] イベントウェブフック
connection.destroyedのreasonにDisconnect APIで指定した値以外が入ってくるのを修正しました
録画機能¶
- [FIX] 録画機能利用時に WebM ヘッダーとイベントウェブフック通知に含まれる解像度が最大解像度にならない問題を修正しました
- [FIX] 録画メタデータファイルのタイムスタンプが WebM の最初および最後のフレームの時刻とずれていた問題を修正しました
録画ディレクトリ構成とファイル名の変更¶
- [CHANGE] レコーディング ID 単位でディレクトリを生成しその下に録画ファイル、録画メタデータファイル、録画レポートファイルを生成するように変更しました
- レコーディング ID とは
StartRecording APIの戻り値に入っているrecording_idです
- レコーディング ID とは
- [CHANGE] 録画ファイルの名前を
archive-<connection_id>.webmに変更しました - [CHANGE] 録画メタデータファイルの名前を
archive-<connection_id>.jsonに変更しました - [CHANGE] 録画レポートファイルの名前を
report-<recording_id>.jsonに変更しました
録画ファイル分割出力機能¶
実験的機能
- [ADD]
StartRecordingに分割録画間隔を指定するsplit_durationを追加しました- 指定は秒で行い、最大 86400 秒 (24 時間) まで指定できます
- 3600 秒を指定する例
{"split_duration": 3600}
split_durationを指定すると今までの録画終了時に出力されるファイルとは別に指定した時間間隔で録画ファイルを出力します- ファイルは
archive-<Connection-ID>_0001.webmとして出力されます - メタデータファイルは
archive-<Connection-ID>_0001.jsonとして出力されます - 連番は
0001開始で9999までいったら10000となりそのあとは10001と続きます
- 指定は秒で行い、最大 86400 秒 (24 時間) まで指定できます
- [ADD]
StartRecordingに分割録画のみを行うsplit_onlyを追加しました- この指定をする場合はかならず
split_durationを指定し、expire_timeを0に指定する必要があります{"split_duration": 180, "split_only": true, "expire_time": 0}
- この指定を有効にした場合はイベントウェブフックの
recording.reportを通知しません - この指定を有効にした場合は録画終了時にファイル出力を行いません
- この指定をする場合はかならず
- [ADD] 録画ファイル分割出力用の
archive.splitイベントウェブフックを追加しました- このウェブフックは分割録画がファイルが出力された際に通知します
- 詳細は archive.split をご確認ください
- [ADD] 録画ファイル分割出力用の
archive.endイベントウェブフックを追加しました- このウェブフックは分割録画が終了した際に通知します
- 詳細は archive.end をご確認ください
レコーディング ID の明示化¶
- [CHANGE]
StartRecording APIの戻り値のidをrecording_idに変更しました - [CHANGE]
recording.reportイベントウェブフックのdataの中のidを削除しました - [CHANGE]
recording.reportイベントウェブフックのdataの中にrecording_idを追加しました - [CHANGE]
archive.availableイベントウェブフックのdataの中のidを削除しました - [ADD]
archive.availableイベントウェブフックのdataの中にrecording_idを追加しました - [ADD]
archive.failedイベントウェブフックのdataの中にrecording_idを追加しました
デモ機能¶
- [UPDATE] 組み込みのデモ機能のバージョンを 2020.4.0 にアップデートしました
sora.conf 設定¶
- [CHANGE]
sora.confのallow_client_id_assignmentをデフォルトtrueに変更しました - [CHANGE]
sora.confのgeneric_nack_cache_size_msecを廃止しました- 内部的な設定のため非公開設定としました
- [CHANGE]
sora.confのspotlight_legacyのデフォルトをfalseにしました- スポットライトレガシーを利用したい場合は
sora.confにてspotlight_legacy = trueを設定してください
- スポットライトレガシーを利用したい場合は
- [CHANGE]
sora.confからturn_fqdnの記載を削除しました- 設定が非推奨のため削除しました。設定自体はできます
- [CHANGE] 時間を指定する設定項目の単位を明示的に指定するようにしました
- 単位が必要な値を指定する場合は
30 sや2000 msといった単位を指定する必要があります - 数値と単位の間にはスペースを入れてください
- 単位指定が必要になった設定項目
webhook_response_timeoutconnection_created_wait_timeoutdefault_forwarding_pli_interval
- 詳細は 単位指定 をご確認ください
- 単位が必要な値を指定する場合は
DTLS 再送制御¶
- [UPDATE] DTLS パケットをしつこく再送するようにしました
helloハンドシェイクはハンドシェイクパケットとタイマーをトリガーにしてしつこく再送しますcipherハンドシェイクはハンドシェイクパケットをトリガーにしつこく再送します
スポットライトレガシー機能¶
- [FIX] スポットライトレガシー利用時に音声のみを指定した場合に受信も音声のみになってしまう問題を修正
E2EE (End to End Encryption) 機能¶
実験的機能
- [ADD] シグナリングに E2EE 用のメッセージングルーティング機能を追加しました
- [ADD] 認証ウェブフック時に通知する項目として
e2eeを追加しました- 型は boolean となります
- [ADD]
sora.confに E2EE を利用可能にするかどうかのe2ee = trueを追加しました- 詳細は
e2ee_trueをご確認ください
- 詳細は
シグナリング通知メタデータ¶
- [ADD] 接続時に送られてきた
signaling_notify_metadataはmetadata以外にauthn_metadataとしてシグナリング通知時に含めるようにしました - [ADD] 認証成功時に払い出した
signaling_notify_metadataはmetadata以外にauthz_metadataとしてシグナリング通知時に含めるようにしました - [ADD] 接続時に送る
signaling_notify_metadataの最大サイズを指定できるsora.confにsignaling_notify_authn_metadata_max_sizeを追加しました- デフォルトは 64512 で、 64 KiB です
- 0..1048576 (1 MiB) の範囲で指定できます
シグナリング通知メタデータ拡張機能¶
実験的機能
- [ADD]
sora.confにシグナリング通知メタデータ拡張を有効にするsignaling_notify_metadata_extを追加しました- デフォルトは
falseです - この設定を有効にした場合、接続時に送った
signaling_notify_metadataはauthn_metadataとなりますmetadataは初期値{}となります
- この設定を有効にした場合、認証成功時に払い出した
signaling_notify_metadataはauthz_metadataとなりますmetadataは初期値{}となります
- デフォルトは
- [ADD] 指定したチャネルのシグナリング通知メタデータ一覧を取得する
ListSignalingNotifyMetadata APIを追加しました - [ADD] 指定した接続の
metadataを取得するGetSignalingNotifyMetadata APIを追加しました - [ADD] 指定した接続の
metadataを追加するPutSignalingNotifyMetadata APIを追加しました - [ADD] 指定した接続の
metadataを削除するDeleteSignalingNotifyMetadata APIを追加しました - [ADD] 指定した接続の
metadataのアイテムを追加するPutSignalingNotifyMetadataItem APIを追加しました - [ADD] 指定した接続の
metadataのアイテムを削除するDeleteSignalingNotifyMetadataItem APIを追加しました
認証ウェブフックログ機能¶
実験的機能
認証ウェブフックのログを出力するように変更しました。リクエストとレスポンスを一つの JSON としてログに書き込みます。
- [ADD] 認証イベントウェブフックのリクエストとレスポンスを
log/auth_webhook.logとして出力するようにしました - [ADD]
sora.confに認証イベントフェブフックのログ出力するかどうかのauth_webhook_logを追加しました- デフォルトで有効です
認証成功時での H.264 プロファイルレベルの指定機能¶
実験的機能
H.264 利用時にプロファイル ID を認証成功時の払い出しに指定可能にしました。
- [ADD] 認証払い出し時の
h264_profile_level_idを指定可能にしました- 文字列で指定することで SDP の払い出しが可能になります
- この払い出しは
sora.confの設定を上書きします
廃止機能¶
- [CHANGE]
bin/sora startを廃止しました、今後はbin/sora daemonをお使いください- 詳細は 廃止機能 をご確認ください
新規 API¶
新しく API を追加しました。既存 API のアップデート版となります。
- [ADD] 新しく
ListConnections APIを追加しました- すべての接続リストが返ってきます
- 詳しくは ListConnections API をご確認ください
- [ADD] 新しく
ListChannelConnections APIを追加しました- 指定したチャネルの接続リストが返ってきます
- 詳しくは ListChannelConnections API をご確認ください
実験的 API¶
実験的機能
- [CHANGE] 実験的機能として提供している
PauseRtpStream APIとResumeRtpStream APIのパラメータを変更しましたconnection_idをrecv_connection_idに変更しましたstream_idをsend_connection_idに変更しました
- [ADD] 実験的機能として
ListChannels APIを追加しました- すべてのチャネルリストが返ってきます
- 詳しくは ListChannels API をご確認ください
- [ADD] 実験的機能として
DisconnectChannelByRole APIを追加しました- 指定したチャネルの指定したロールの接続をすべて切断します
- [ADD] 実験的機能として
PushChannelByRole APIを追加しました- 指定したチャネルの指定したロールの接続にプッシュ通知を送ります
- [FIX] 実験的機能として提供している
ChangeUpstreamVideoBitRate APIの利用時に新規接続が走るとビットレートが戻ってしまう問題を修正しました
非推奨 API¶
- [CHANGE] 切断用の
DisconnectChannelUpstream APIを非推奨 API としました- 実験的機能として提供している
DisconnectChannelByRole APIを利用してください - 2021 年 6 月廃止します
- 実験的機能として提供している
- [CHANGE] 切断用の
DisconnectChannelDownstream APIを非推奨 API としました- 実験的機能として提供している
DisconnectChannelByRole APIを利用してください - 2021 年 6 月廃止します
- 実験的機能として提供している
- [CHANGE] プッシュ用の
PushUpstream APIを非推奨 API としました- 実験的機能として提供している
PushChannelByRole APIを利用してください - 2021 年 6 月廃止します
- 実験的機能として提供している
- [CHANGE] プッシュ用の
PushDownstream APIを非推奨 API としました- 実験的機能として提供している
PushChannelByRole APIを利用してください - 2021 年 6 月廃止します
- 実験的機能として提供している
- [CHANGE] 実験的機能として提供していたサイマルキャスト用の
ChangeSimulcastQuality APIを非推奨 API としました- 実験的機能として提供している
RequestRtpStream APIを利用してください - 2021 年 6 月廃止します
- 実験的機能として提供している
- [CHANGE] 実験的機能として提供していたスポットライトレガシー用の
CastAlwaysSpotlight APIを非推奨 API としました- 2021 年 12 月廃止します
- [CHANGE] 実験的機能として提供していたスポットライトレガシー用の
CancelSpotlight APIを非推奨 API としました- 2021 年 12 月廃止します
- [CHANGE] 実験的機能として提供していたスポットライトレガシー用の
CastSpotlight APIを非推奨 API としました- 2021 年 12 月廃止します
- [CHANGE] 実験的機能として提供していたスポットライトレガシー用の
DowngradeSpotlightBitRate APIを非推奨 API としました- 2021 年 12 月廃止します
- [CHANGE] 実験的機能として提供していたスポットライトレガシー用の
ResetSpotlightBitRate APIを非推奨 API としました- 2021 年 12 月廃止します
廃止 API¶
- [CHANGE] 実験的機能として提供していた
RequestSpotlightQuality APIを廃止しました- 実験的機能として提供している
RequestRtpStream APIを利用してください
- 実験的機能として提供している
- [CHANGE] 実験的機能として提供していた
ResetSpotlightQuality APIを廃止しました- 実験的機能として提供している
ResetRtpStream APIを利用してください
- 実験的機能として提供している
2020.2.2¶
- リリース:
2020-10-07
- 対応 Chrome:
M86
- 対応 Firefox:
81
- 対応 Safari:
14.0
- 対応 Edge:
86
変更履歴¶
- [FIX] Disconnect API や
{"type": "disconnect"}を利用して切断した際にSIGNALING-INTERNAL-ERRORがクライアントに返される問題を修正しました - [FIX] WebSocket ping フレームが internal.log に出力されてしまう問題を修正しました
2020.2.1¶
- リリース:
2020-09-23
- 対応 Chrome:
M85
- 対応 Firefox:
80
- 対応 Safari:
14.0
- 対応 Edge:
85
変更履歴¶
- [FIX] デモ機能が有効にならない不具合を修正しました
2020.2¶
- リリース:
2020-09-23
- 対応 Chrome:
M85
- 対応 Firefox:
80
- 対応 Safari:
14.0
- 対応 Edge:
85
互換なしの変更情報¶
- 今までのスポットライト機能の呼び名がスポットライトレガシー機能に変更しました
ignore_spotlight_changed_webhookをignore_spotlight_legacy_changed_webhookに変更しましたspotlight_auto_downgrade_bit_rateをspotlight_legacy_auto_downgrade_bit_rateに変更しましたspotlight_auto_sharing_video_bit_rateをspotlight_legacy_auto_sharing_video_bit_rateに変更しました- スポットライトレガシー機能は 2021 年 12 月まで利用できます
ハイライト¶
- デモ機能を 1 から作り直し、オープンソースとして公開しました
- 実験的機能として、新しいスポットライト機能を追加しました
変更履歴¶
- [FIX]
connection.logのremote_statsが出力されない問題を修正しました
新しいデモ機能¶
デモ機能を TypeScript / React / Redux を利用して書き直しました。 また、ソースコードを Apache License 2.0 でオープンソースとして公開しました。
https://github.com/shiguredo/sora-devtools
- [CHANGE] 今までのスポットライト機能はスポットライトレガシーに変更しました
- 今までの
spotlight_sendrecvはspotlight_legacy_sendrecvに変更しました - 今までの
spotlight_sendonlyはspotlight_legacy_sendonlyに変更しました - 今までの
spotlight_recvonlyはspotlight_legacy_recvonlyに変更しました
- 今までの
- [CHANGE] ログとシグナリング通知の項目を別タブに変更しました
- [ADD] 新しいスポットライト機能のデモを追加しました
spotlight_sendrecvを追加しましたspotlight_sendonlyを追加しましたspotlight_recvonlyを追加しましたsora.confにてspotlight_legacy = falseにしたときのみ利用できます- デフォルトは
trueです
- デフォルトは
- [ADD] マイクのミュート機能を追加しました
- [ADD] ビデオのミュート機能を追加しました
- [ADD] フェイク機能を追加しました
- Chrome / Edge / Firefox / Safari で利用できます
- [ADD]
autoGainContraolの設定を追加しました - [ADD]
noiseSuppressionの設定を追加しました - [ADD]
echoCancellationの設定を追加しました - [ADD]
echoCancellationTypeの設定を追加しました- browser と system が指定できます
- [ADD] オーディオボリュームメータを追加しました
- [ADD] コピーURL 機能を追加しました
- 現在の設定を URL パラメータに反映した URL をクリップボードに保存します
- [ADD] マルチサイマルキャストでストリーム個別の画質変更ボタンを追加しました
- [ADD] クライアント側の情報を JSON 形式でダウンロードできるボタンを追加しました
- [ADD] デバッグ機能を有効にすることでログ、通知、統計を確認できるようになりました
新しいスポットライト機能¶
実験的機能
今までのスポットライト機能の課題を解決した、 新しいスポットライト機能を実験的機能として追加しました。
- [ADD]
sora.confにspotlight_legacyを追加しました- 新しいスポットライト機能を使う場合は
sora.confにてspotlight_legacy = falseにする必要があります
- 新しいスポットライト機能を使う場合は
- [ADD]
type: connect時にmultistream: true/simulcast: true/spotlight: trueを指定すると新しいスポットライト機能が利用できます - [ADD] サイマルキャストを利用し 2 つの画質を配信するようにしました
- 1/1 解像度の 30 FPS
- 1/4 解像度の 1 FPS
- [ADD] 直近で発話したクライアントのストリームは 1/1 解像度 30 FPS で、音声ありを受信します
- [ADD] 直近で発話していないクライアントのストリームは 1/4 解像度 1 FPS で、音声なしを受信します
- [ADD] 直近で発話したクライアントのストリームは最大 8 まで受信可能にしました
- [ADD] 指定したストリームにフォーカスを当て続ける
FocusSpotlightFixedAPI 追加しました - [ADD] 指定したストリームにフォーカスを当てる
FocusSpotlightAPI を追加しました - [ADD] 指定したストリームをフォーカスから外す
UnfocusSpotlightAPI を追加しました - [ADD] 指定したチャネルのスポットライト数を変更する
ChangeSpotlightNumberAPI を追加しました - [ADD] 指定したストリームの画質を変更要求する
RequestSpotlightQualityAPI を追加しました- 現時点では low / middle しか要求できません
- [ADD] 指定したストリームの画質をリセットする
ResetSpotlightQualityAPI を追加しました - [ADD] フォーカスが当たった場合
type: spotlight.focusedが発火します- 固定されたかどうかが
fixedの項目でtrue/falseが入ります signaling_notify経由で参加者全員に通知されますignore_spotlight_changed_webhookをfalseにしていた場合は Webhook が通知されます
- 固定されたかどうかが
- [ADD] フォーカスが外れた場合
type: spotlight.unfocusedが発火しますsignaling_notify経由で参加者全員に通知されますignore_spotlight_changed_webhookをfalseにしていた場合は Webhook が通知されます
- [ADD]
sora.confにdefault_spotlight_numberを追加しました
古いスポットライト機能¶
実験的機能
今までのスポットライト機能を spotlight_legacy に変更しました。
- [CHANGE]
ignore_spotlight_changed_webhookをignore_spotlight_legacy_changed_webhookに変更しました - [CHANGE]
spotlight_auto_downgrade_bit_rateをspotlight_legacy_auto_downgrade_bit_rateに変更しました - [CHANGE]
spotlight_auto_sharing_video_bit_rateをspotlight_legacy_auto_sharing_video_bit_rateに変更しました - [ADD]
sora.confにspotlight_legacyを追加しました- デフォルトは
trueです
- デフォルトは
H.264 プロファイルレベルの指定機能¶
実験的機能
H.264 利用時にプロファイル ID が今まは固定でしたが、自由に設定できるようにしました。
- [ADD] sora.conf に
default_h264_profile_level_idを追加可能にしました
統計レポート API¶
実験的機能
- [ADD] GetStatsReport API に
total_connection_createdの項目を追加しました - [ADD] GetStatsReport API に
total_connection_updatedの項目を追加しました - [ADD] GetStatsReport API に
total_connection_destroyedの項目を追加しました - [FIX] GetStatsReport API の
total_turn_udp_connectionsの値が反映されない問題を修正しました - [FIX] GetStatsReport API の
total_turn_tcp_connectionsの値が反映されない問題を修正しました
2020.1.1¶
- リリース:
2020-08-18
- 対応 Chrome:
M84
- 対応 Firefox:
79
- 対応 Safari:
13.1.1
- 対応 Edge:
84
互換なしの変更情報¶
特にありません。
変更履歴¶
- [CHANGE] DTLS 証明書を 1 日 1 回から 1 時間に 1 回更新するようにしました
- [FIX] DTLS に利用する証明書を接続単位で保持するように修正しました
- [FIX] サポート用のログ connection.log の書き込みを非同期に修正しました
- ログの書き込みが 5 秒以上かかった場合、 connection.log が書き込まれない問題を解決します
- [FIX] DTLS 証明書の再発行後のタイミングにマルチストリームの再ハンドシェイクが発生した場合、そのチャネルの接続がすべて切断してしまう問題を修正しました
- 再発行した証明書の fingerprint をクライアントに送ってしまい、クライアント側が DTLS Alert close_notify を送ってきてしまうため切断されてしまう問題を解決します
2020.1¶
- リリース:
2020-06-24
- 対応 Chrome:
M83
- 対応 Firefox:
77
- 対応 Safari:
13.1.1
- 対応 Edge:
83
重要なお知らせ¶
- Ubuntu 20.04 版を提供開始しました
- Ubuntu 16.04 版は 2021 年 4 月でパッケージ、サポートの提供を終了します
bin/sora startからbin/sora daemonに今後切り替わります- ロールの
upstream/downstreamは 2021 年 6 月リリース予定の Sora で利用ができなくなります- 今回追加された新しいロール
sendrecv/sendonly/recvonlyへ置き換えをお願いします - 最新の SDK を利用いただければ特に問題はでません
- 今回追加された新しいロール
互換なしの変更情報¶
- バージョン表記を変更しました
- 設定ファイルの形式を変更しました
- コネクション ID のエンコード方式を Hex から Crockford's Base32 に変更しました
- PCMU のサポートを廃止しました
- デモ機能のファイル名を変更しました
- サイマルキャストで利用する際のロールを
sendrecv/sendonly/recvonlyのみ利用可能にしました
ハイライト¶
- Ubuntu 20.04 に対応しました
- 録画機能を改善しました
- 録画機能を RTCP Sender Report によるリップシンクに対応しました
- 録画の処理を非同期にしました
- ロールに
sendrecv/sendonly/recvonlyを追加しました - 切断時に、接続ごとのクライアントとサーバーの統計情報を
connection.logに出力するようにしました - 実験的機能として、クライアント側の統計情報を API 経由で確認できるようにしました
- 実験的機能として、Sora からの映像配信を停止/再開する API を追加しました
- 実験的機能として、サイマルキャストの画質をストリーム別に指定できる API を追加しました
- 実験的機能として、AV1 や H.265 に対応しました
変更履歴¶
- [CHANGE] PCMU のサポートを廃止しました
- [CHANGE] 配信側への SDP での SSRC 指定を行わないように変更しました
- Chrome の仕様に合わせました
- [CHANGE] UUIDv4 の値を Hex から Base32 に変更しました
- Crockford's Base32 を利用しています
- [ADD] ロールに
sendrecv/sendonly/recvonlyを追加しました- 今後はこちらのロールをご利用ください
sendrecvは送受信sendonlyは送信のみrecvonlyは受信のみ
- [ADD] RTP 拡張 Generic Frame Descriptor v00 に対応しました
- [ADD] 音声の RTP に対して RTCP-SR/RTCP-RR を対応しました
- [ADD] RTCP-RR の送信間隔を audio と video で独立させました
- [ADD] DTLS アラートのログを
sora.logで出力するようにしました- DTLS アラート
close notifyのログは出力されません
- DTLS アラート
- [FIX] 音声のみの場合は PLI を送信しないようにしました
設定ファイル¶
- [ADD] 設定ファイルに
signaling_loopback_address_onlyを追加しました- この設定を有効にすることでシグナリングに接続できるのが 127.0.0.1 からのみになります
- [CHANGE] 設定ファイルを etc/sora.conf に変更しました
- [CHANGE] 設定ファイルの必須設定をなくしました
license_fileはetc/license.jsonがデフォルト値になりましたsignaling_portは5000がデフォルト値になりましたapi_portは3000がデフォルト値になりました
ウェブフック¶
- [UPDATE] イベントウェブフックのワーカー選択のキーを
connection_idからchannel_idに変更しました - [ADD] 認証ウェブフックに
simulcastフラグを追加しました
ログ¶
- [ADD] サポート向けに接続の統計情報を出力する
connection.logを追加しました- リモート統計情報とローカル統計情報を出力します
- [CHANGE]
sora.logの時刻が UTC で出力されるようになりました - [CHANGE]
warning.log/error.logを統一しsora.logに変更しました
TURN¶
- [ADD] TURN-TCP のみを利用するように指定できる
turn_tcp_onlyの設定を追加しました - [ADD] TURN-TLS のみを利用するように指定できる
turn_tls_onlyの設定を追加しました - [ADD]
turn_tcp_onlyとturn_tls_onlyを有効にした場合は接続ごとにsora.logにログを出力するようにしました - [CHANGE] TURN-TCP のデフォルト値を true に変更しました
- [CHANGE]
type: offer時のiceTrasnports: relayを削除しました- chrome が
iceTransportPolicyへ対応したためです
- chrome が
RTP 転送¶
- [ADD] RTP 転送 API 実行時に api.log を出力するようにしました
- [FIX] StopForwardingRtp API で
connection_idが見つからない場合のエラーを修正しました
録画機能¶
- [UPDATE] RTCP-SR を利用したリップシンク機能を追加しました
- [ADD] 録画完了時の統計機能項目を追加しました
- video_reset_no_video_timeout
- video_reset_pli
- video_reset_other
- extract_queue_trimmed
- final_extract_limit
- total_video_chunk_postponed_partial
- total_video_chunk_postponed_queued
- total_video_chunk_postponed_undefined
- total_video_force_forward
- total_audio_sender_report
- total_video_sender_report
- total_audio_lip_sync_mode_recv_time
- total_audio_lip_sync_mode_rtcp_sr
- total_video_lip_sync_mode_recv_time
- total_video_lip_sync_mode_rtcp_sr
- [CHANGE] 録画一時ファイルの作成を非同期にしました
- [CHANGE] 録画ファイルが空の場合のログを削除するようにしました
- [FIX] スポットライト機能利用時に録画開始が利用できないよう修正しました
デモ機能¶
- [UPDATE] デモ機能で利用している sora-js-sdk のバージョンを 2020.1 に上げました
- [ADD] デモ機能のページすべてに
<meta name="robots" content="noindex">を追加しました - [ADD] デモ機能に AV1 と H.265 を追加しました
- クライアントが非対応の場合は動作しません
- [ADD]
multi_simulcast_sendonly.htmlを追加しました - [CHANGE]
pub.htmlをsendonly.htmlに変更しました - [CHANGE]
sub.htmlをrecvonly.htmlに変更しました - [CHANGE]
multi_pubsub.htmlをmulti_sendrecv.htmlに変更しました - [CHANGE]
multi_pub.htmlをmulti_sendonly.htmlに変更しました - [CHANGE]
multi_sub.htmlをmulti_recvonly.htmlに変更しました - [CHANGE]
spotlight_pubsub.htmlをspotlight_sendrecv.htmlに変更しました - [CHANGE]
spotlight_sub.htmlをsupotlight_recvonly.htmlに変更しました - [CHANGE]
simulcast_pub.htmlをsimulcast_sendonly.htmlに変更しました - [CHANGE]
simulcast_sub.htmlをsimulcast_recvonly.htmlに変更しました - [CHANGE]
multi_simulcast_pubsub.htmlをmulti_simulcast_sendrecv.htmlに変更しました - [CHANGE]
multi_simulcast_sub.htmlをmulti_simulcast_recvonly.htmlに変更しました
統計機能¶
- [ADD] GetStatsReport に sora_client の項目を追加しました
- [ADD] 統計 API に TURN 失敗の値を追加しました
- total_received_turn_unknown_stun
- total_received_turn_invalid_stun
- total_received_unknown_channel_number
- total_received_expired_channel_number
実験的機能¶
実験的機能を利用する場合はかならずサポートまでご連絡ください。
H.265 に対応しました¶
実験的機能
- [ADD] H.265 を利用可能にする設定
h265をsora.confに追加しました- デフォルトは
falseです
- デフォルトは
- [ADD]
type: connect時のvideo: {video_codec: "H265"}を指定可能にしました - [ADD] H.265 のキーフレーム判定に対応しました
AV1 に対応しました¶
実験的機能
- [ADD] AV1 を利用可能にする設定
av1をsora.confに追加しました- デフォルトは
falseです
- デフォルトは
- [ADD]
type: connect時のvideo: {video_codec: "AV1"}を指定可能にしました - [ADD] AV1 のキーフレーム判定に対応しました
- [ADD] AV1 の解像度取得に対応対応しました
サマルキャストで受信しているストリーム単位で画質を変更する仕組みを追加しました¶
実験的機能
この機能はサイマルキャストでのみ利用できます。
- [ADD] ChangeSimulcastQuality API で特定のストリームの画質の変更を可能にしました
stream_idにストリームを配信している接続のconnection_idを指定します
指定したストリームの映像を停止/再開する API を追加しました¶
実験的機能
この機能はマルチストリームでのみ利用できます。
- [ADD]
signaling_notify_rtp_streamをsora.confに追加しました- true の場合は Rtp Stream Pause/Resume API 実行時に pause/resume 通知が飛びます
- 受信を停止/再開した接続、された接続の両方に飛びます
- [ADD] PauseRtpStream API 追加しました
- 指定した接続のストリームを停止します
connection_idにストリームの受信を再開するconnection_idを指定しますstream_idにストリームの受信を再開したいストリームを配信している接続のconnection_idを指定します
- [ADD] ResumeRtpStream API 追加しました
- 指定した接続のストリームを再開します
connection_idにストリームの受信を再開するconnection_idを指定しますstream_idにストリームの受信を再開したいストリームを配信している接続のconnection_idを指定します
- [ADD] ListPauseRtpStreams API 追加しました
- 指定したチャネルの停止しているストリーム一覧を返します
リモート統計情報を取得する API を追加しました¶
実験的機能
この機能はクライアント側でのみ取得できる統計情報をサーバー経由で取得可能にする仕組みです。
- [ADD]
sora.confにremote_stats: trueを追加type: ping時に stats: true を有効にします
- [ADD] 認証成功時の払い出しに
remote_stats: booleanを追加しました - [ADD] GetAllRemoteStats API を追加しました
- すべての接続のリモート統計情報を取得します
- [ADD] GetChannelRemoteStats API を追加しました
- 指定したチャネル ID すべての接続のリモート統計情報を取得します
- [ADD] GetConnectionRemoteStats API を追加しました
- 指定した接続のリモート統計情報を取得します
19.10.9¶
- リリース:
2020-04-20
- 対応 Chrome:
M81
- 対応 Firefox:
75
- 対応 Safari:
13.1
- 対応 Edge:
81
互換なしの変更情報¶
特にありません
変更履歴¶
- [FIX] 配信が非常に不安定な場合、録画の処理でメモリを多量に消費してしまう問題
19.10.8¶
- リリース:
2020-02-07
- 対応 Chrome:
M80
- 対応 Firefox:
72
- 対応 Safari:
13
- 対応 Edge:
79
互換なしの変更情報¶
特にありません
変更履歴¶
- [FIX] Firefox と特定のネットワークで正常につながらない問題を修正しました
- Firefox 側の問題への対応です
- [FIX] Chrome M80 で H.264 の仕組みが変わったことにより録画が正常に動作しない問題を修正しました
- Chrome 側の挙動変更への対応です
- [FIX] スポットライトで長時間インアクティブだった場合、再開時にスポットライト枠に表示されない問題を修正しました
- [FIX] マルチストリーム利用時に視聴側から送られてきた キーフレーム要求を正常に処理できていない問題を修正しました
- [FIX] 録画機能利用時に録画ファイルの中で約 22 分に一度音声が最大 20 秒空白になる問題を修正しました
19.10.4¶
- リリース:
2020-01-28
- 対応 Chrome:
M79
- 対応 Firefox:
72
- 対応 Safari:
13
- 対応 Edge:
79
互換なしの変更情報¶
特にありません
変更履歴¶
- [FIX] SDP の RTP 拡張から mid を削除しました
- ブラウザ側のバグに対応したものです
- [FIX] イベントウェブフックのタイムスタンプの取得タイミングを修正しました
- [FIX] 接続失敗イベントウェブフックでクラッシュしていた問題を修正しました
- [FIX] マルチストリームで sendonly を利用した際の SDP 関連の処理を修正しました
19.10.3¶
- リリース:
2019-12-11
- 対応 Chrome:
M79
- 対応 Firefox:
71
- 対応 Safari:
13
- 対応 Edge Beta:
79
互換なしの変更情報¶
特にありません
ハイライト¶
- HTTP API への接続をループバックのみに限定する
api_loopback_address_onlyを sys.config の設定に追加しました
変更履歴¶
- [ADD] HTTP API への接続をループバックのみに限定する
api_loopback_address_onlyを sys.config の設定に追加しました- この設定を有効にすることで HTTP API を叩けるのが 127.0.0.1 からのみになります
- [ADD] 録画失敗時のウェブフックに以下に以下の項目を追加しました
- audio
- video
- start_time
- stop_time
- file_path
- ファイル自体は生成されません
- filename
- ファイル自体は生成されません
- [ADD] シグナリングログに
type: disconnectを追加しました- クライアント側から
type: disconnectが送られてきた場合に出力します
- クライアント側から
- [ADD] シグナリングログに
type: closeログを追加しました- close ログはクライアント側から切断された場合に出力します
- [ADD] シグナリングログに
type: closedログを追加しました- closed ログはサーバー側から切断された場合に出力します
- [ADD] シグナリングログに
type: error-closedログを追加しました- error-closed ログはクライアントが想定外の切断をした場合に出力します
- [ADD] 実験的機能として認証成功時の戻り値で simulcast と simulcast_quality を指定可能にしました
- この機能を利用される場合は必ず事前にサポートまでご連絡ください
- [ADD] 実験的機能として ListConnections と ListAllConnections API に multistream / simulcast / spotlight のフラグを追加しました
- この機能を利用される場合は必ず事前にサポートまでご連絡ください
- [ADD] 実験的機能としてマルチストリームに配信のみで参加できる仕組みを追加しました
- この機能を利用される場合は必ず事前にサポートまでご連絡ください
- [ADD] 実験的機能としてイベントウェブフック通知の HTTP ヘッダーに X-SORA-EVENT-WEBHOOK-TYPE を追加しました
- この機能を利用される場合は必ず事前にサポートまでご連絡ください
- [ADD] 実験的機能として Opus パラメータに ptime を追加しました
- この機能を利用される場合は必ず事前にサポートまでご連絡ください
- [FIX] Android のサイマルキャスト配信時に正常に動作しない問題を修正しました
- [FIX] デモ機能のマルチストリームサイマルキャスト視聴のみで初期の画質指定が抜けていたのを追加しました
- [FIX] 録画時に接続の切断と録画終了 API がほぼ同時に実行されるとアーカイブが recording.report に入らない問題を修正しました
- [FIX] 認証成功時に払い出す
ipv4_addressとipv6_addressが正常に動作しない問題を修正しました
19.10.1¶
- リリース:
2019-11-06
- 対応 Chrome:
M78
- 対応 Firefox:
70
- 対応 Safari:
13
- 対応 Edge Beta:
79
互換なしの変更情報¶
特にありません
ハイライト¶
- TURN の UDP または TCP のどちらを利用しているかがシグナリング通知、およびイベントウェブフックで取得できるようになりました
- マルチストリームの「視聴のみ」で、配信者が存在しない場合でも接続できるようになりました
- マルチストリームの「視聴のみ」で、配信者が存在しなくなった場合でも接続を維持するようになりました
変更履歴¶
- [ADD] シグナリング通知の connection.created / connection.updated / connection.destroyed に turn_transport_type を追加しました
- "udp" または "tcp" の文字列が入ります
- [ADD] イベントウェブフックの connection.created / connection.updated / connection.destroyed に turn_transport_type を追加しました
- "udp" または "tcp" の文字列が入ります
- [CHANGE] マルチストリームの視聴のみで今までは配信がある必要がありましたが、配信がない場合でも Sora に接続することが可能になりました
- [CHANGE] マルチストリームの視聴のみで配信者が 0 になっても切断しないようにしました
- [FIX] サイマルキャスト対応と非対応のマルチストリームが同じチャネルに参加した際にクラッシュする問題を修正しました
- [FIX] サイマルキャストの視聴時に配信側が通常の配信に切り替わった場合、クラッシュする問題を修正しました
- [FIX] ネットワークの不安定レベル通知機能が音声のみの配信の場合、常に unstable_level 3 を配信するようになっていた問題を修正しました
19.10.0¶
- リリース:
2019-10-16
- 対応 Chrome:
M77
- 対応 Firefox:
69
- 対応 Safari:
13
- 対応 Edge Dev:
79
互換なしの変更情報¶
- PlanB への対応を廃止しました
- サイマルキャスト (Google 独自) への対応を廃止しました
ハイライト¶
- CentOS 8.0 に対応しました
- 実験的機能として マルチストリームでサイマルキャスト機能が利用可能になりました
変更履歴¶
- [UPDATE] ChangeSimulcastQuality API をマルチストリームに対応しました
- [UPDATE] ChangeUpstreamVideoBitRate API をマルチストリームに対応しました
- [UPDATE] サイマルキャストを利用した配信者はビットレートシェアリング機能は無効にしました
- [UPDATE] 録画機能で Opus ステレオ音声の録音に対応しました
- [ADD] CentOS 8.0 に対応しました
- [ADD] GetStatsConnection API に視聴側の再送キャッシュヒット率を追加しました
- total_generic_nack_cache_hit
- 再送要求に正しく応答した回数
- total_generic_nack_cache_miss
- 再送要求に応答できなかった回数
- total_generic_nack_cache_hit
- [ADD] GetStatsConnection API に配信側が不安定になった際、 キーフレーム要求(PLI)を送った回数を追加しました
- total_pli_trigger
- 再送要求に限界がきてキーフレーム要求を送った回数
- total_pli_trigger
- [ADD] GetStatsConnection API に RTP パケロスシミュレーターの統計情報を追加しました
- total_dropped_received_rtp
- 受信した RTP パケットをパケロスシミュレータで落とした回数
- total_dropped_sent_rtp
- 送信した RTP パケットをパケロスシミュレータで落とした回数
- total_dropped_received_rtp
- [ADD] GetStatsConnection API に network_status の unstable_level の値を追加しました
- unstable_level
- 0-3 の値が入ります
- [ADD] 新規接続時に送る PLI の頻度を抑える仕組みを追加しました
- [ADD] 実験的機能としてマルチストリーム機能でサイマルキャスト機能が利用可能になりました
- 現時点でサイマルキャスト機能は Chrome でのみ利用できます
- 詳細は マルチストリームでサイマルキャスト をご確認ください
- [ADD] 設定 default_simulcast_quality を追加しました
- sys.config にて指定できます
- サイマルキャストで
simulcast: trueを選んだときの視聴する画質のデフォルトを指定します - デフォルトは "low" です
- "low" 、 "middle" 、 "high" を指定できます
- [ADD] デモ機能に multi_simulcast_pubsub.html と multi_simulcast_sub.html を追加しました
- [ADD] シグナリング Offer 時に Sora のバージョンを追加しました
"version": "19.10.0"の形式ですhide_origin_usernameが有効な場合はバージョン情報は送りません
- [ADD] 実験的機能として Opus パラメータをシグナリングで指定できるようになりました
- これらの機能を利用される場合は必ず事前にサポートまでご連絡ください
{"audio": {"opus_params": {"stereo": false, "useinbandfec": false}}}- clock_rate
- channels
- maxplaybackrate
- stereo
- sprop_stereo
- minptime
- useinbandfec
- usedtx
- [ADD] 実験的機能として Opus パラメータのデフォルト値を sys.config で指定できるようになりました
- これらの機能を利用される場合は必ず事前にサポートまでご連絡ください
- opus_param_clock_rate
- opus_param_channels
- opus_param_maxplaybackrate
- opus_param_stereo
- opus_param_sprop_stereo
- opus_param_minptime
- opus_param_useinbandfec
- opus_param_usedtx
- [ADD] イベントウェブフックのワーカー数を指定可能にしました
- デフォルトは 5 です
- sys.config にて
{event_webhook_worker_number, 5}のように指定します - 5-5000 の範囲で指定できます
- [ADD] ウェブフックのレスポンスタイムアウトを指定可能にしました
- デフォルトは 5 秒です
- sys.config にて
{webhook_response_timeout, 5}のように指定します - 1-600 秒の範囲で指定できます
- [ADD] 録画ファイル生成時のウェブフックに
client_idとconnection_idをトップレベルに含むようにしました - [ADD] 録画ファイル生成時のウェブフック
archive.availableに統計情報を追加しました- total_filled_audio_packet
- 穴埋めした音声パケットのトータル
- total_discard_audio_packet
- 破棄した音声パケットのトータル
- min_audio_level
- RTP 拡張 audio level の最小値(音声出力の最大値)のトータル
- total_discarded_audio_packet
- 調整のために捨てた音声パケットのトータル
- total_stored_video_keyframe_head
- 映像キーフレームの先頭パケットのトータル
- total_stored_audio_packet
- 録画に利用した音声パケットのトータル
- total_stored_video_packet
- 録画に利用した映像パケットのトータル
- total_discarded_unknown_packet
- 録画に利用せず破棄した不明パケットのトータル
- total_pli_trigger
- 再送要求に限界がきてキーフレーム要求 (PLI) を送ったトータル
- total_filled_audio_packet
- [CHANGE] すべてのブラウザの最新版が Unified Plan になったため SDP の Plan B タイプへの対応を削除しました
- plan_b: boolean を削除しました
- [CHANGE] サイマルキャスト機能から Google 独自の SDP 書き換え方式への対応を削除しました
- simulcast_rid: boolean を削除しました
- simulcast: true は常に rid ベースのサイマルキャストが利用されます
- rid ベースのサイマルキャストは Chrome と Edge Dev でのみ利用できます
- [FIX] 録画ファイルのメタデータに音声のビットレートが含まれていなかったのを修正しました
- [FIX] サイマルキャスト機能利用時に視聴側を先に繋ぐと音声が配信されない問題を修正しました
- [FIX] サイマルキャストのエンコーディング指定を
role: upstream時のみに修正しました - [FIX] 録画時に recording.report に録画ファイルが含まれない問題を修正しました
- [FIX] Generic Nack の再送が rtp_packet_loss_simulator_outgoing の対象になっていなかったのを修正しました
- [FIX] マルチストリームの Answer が遅延した場合でも正常に映像が表示されるよう修正しました
19.04.9¶
- リリース:
2019-07-22
- 対応 Chrome:
M75
- 対応 Firefox:
68
- 対応 Safari:
12.1.1
- 対応 Edge Dev:
77
互換なしの変更情報¶
特にありません
変更履歴¶
- [CHANGE] Opus の DTX 機能を無効化しました
- Chrome と Firefox の WebM 再生機能が Opus の DTX 機能に非対応であり、音ずれが発生するため
19.04.8¶
- リリース:
2019-07-17
- 対応 Chrome:
M75
- 対応 Firefox:
68
- 対応 Safari:
12.1.1
- 対応 Edge Dev:
77
互換なしの変更情報¶
特にありません
変更履歴¶
- [FIX] 前回、Firefox で正常に動作するようバージョンアップを行ったことにより、別のネットワーク環境で正常に繋がらなくなった問題を修正しました
19.04.7¶
- リリース:
2019-07-12
- 対応 Chrome:
M75
- 対応 Firefox:
67
- 対応 Safari:
12.1.1
- 対応 Edge Dev:
77
互換なしの変更情報¶
特にありません
変更履歴¶
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.14.0 にアップデートしました
- [UPDATE] 接続に失敗した際ログの config に以下を追加しました
- turn_fqdn
- rtx
- ulpfec
- [UPDATE] 統計情報出力に以下の値を追加しました
- dtls
- received_turn_binding_request
- received_turn_binding_error
- received_turn_binding_success
- sent_turn_binding_request
- sent_turn_binding_error
- sent_turn_binding_success
- [CHANGE] デモ機能のスポットライトの最大数を 8 に変更しました
- [CHANGE] スポットライトの最大数を 8 に変更しました
- [ADD] api_log の対象に以下の API を追加しました
- DowngradeSpotlightBitRate
- ResetSpotlightBitRate
- StartRecording
- StopRecording
- [FIX] シグナリングで
type: candidateのsdpに空文字が含まれても問題ないような処理を追加しました - [FIX] Firefox が特定のネットワークで接続できない問題を修正しました
- [FIX] デモ機能の rid ベースのサイマルキャスト配信機能で音声が配信されていなかった問題を修正しました
- [FIX] 録画機能利用時に StopRecording API を実行中にクライアントの切断が発生した場合起きる問題を修正しました
- [FIX] mDNS の値が UUID 以外の値が入ってくると正常に処理されない問題を修正しました
- [FIX] Chrome で映像で指定しているビットレートが音声と共有されてしまう問題を修正しました
19.04.4¶
- リリース:
2019-06-10
- 対応 Chrome:
M75
- 対応 Firefox:
67
- 対応 Safari:
12.1.1
- 対応 Edge Dev:
76
互換なしの変更情報¶
サポート向けに出力している sdp.log を signaling.log に名前を変更しました。ログローテーションの変更をお願いします。
変更履歴¶
- [ADD] 実験的機能として rid ベースのサイマルキャストに対応しました
- [ADD] 統計 API に RTX / RED / RED-RTX の統計情報を追加しました
- [CHANGE] デモ機能の simulcast_pub.html はデフォルトで rid ベースのサイマルキャストを利用するように変更しました
- [UPDATE] ULPFEC で確保している RTP キャッシュにサイズ上限を追加しました
- [UPDATE] ULPFEC で正常処理ができていない部分を修正しました
- [CHANGE] サポート向けの sdp.log を signaling.log に変更しました
- サポート時の対応を迅速にするために、出力するログ内容を変更しました
- そのため sdp ではなく signaling が主となったためファイル名を変更しました
- [CHANGE] ULPFEC をデフォルトで無効にしました
- パケロスが多い場合、 ULPFEC を無効にしている場合より不安定になるためデフォルトで無効にしました
- [FIX] 認証成功時の払い出しで audio と video が false の場合にエラーになるように修正しました
- [FIX] 認証成功時の払い出しで audio や video が false の場合に上書きすると正常に動作しない問題を修正しました
- [FIX] マルチストリーム機能で同時接続でまれに相手が見えなくなる問題を修正しました
- [FIX] TURN-UDP で複数の Allocate-Request が送られてきた場合に正常動作しない問題を修正しました
19.04.1¶
- リリース:
2019-05-23
- 対応 Chrome:
M74
- 対応 Firefox:
67
- 対応 Safari:
12.1.1
- 対応 Edge (Chromium ベース):
76
廃止情報¶
特にありません
互換なしの変更情報¶
今回の変更で不明な点はサポートまでお問い合わせください
metadata_list の戻り値を list に変更し、 signaling_notify_client_id や signaling_notify_connection_id の設定が反映されるようにしました。
今までは {"connection_id0": "metadata0", "connection_id1": "metadata1"} という形式でした、
ただし signaling_notify_connection_id を false にしていたとしても connection_id が共有されてしまう問題がありました。
また client_id が含まれていないという問題もあり、抜本的な変更を行いました。
詳細は シグナリング通知 の signaling_notify_metadata をご確認ください
変更履歴¶
- [CHANGE] metadata_list の戻り値を変更しました
- 詳細は シグナリング通知 の signaling_notify_metadata をご確認ください
- [FIX] 録画で音声が途中で途切れる可能性がある問題を修正しました
- [FIX] スポットライト機能利用時の統計情報が一部取得できていなかった問題を修正しました
- [FIX] ULPFEC が特定環境で正常に動作しない問題を修正しました
- [FIX] 回線が不安定な場合に Firefox で SRTP/AES-GCM を利用した際、正常に動作しない問題を修正しました
- [FIX] 特定環境で確保したにもかかわらず利用されていない TURN-TCP が放置されてタイムアウトが発生してしまう問題を修正しました
19.04.0¶
- リリース:
2019-04-17
- 対応 Chrome:
M73
- 対応 Firefox:
66
- 対応 Safari:
12.1
- 対応 Edge (Chromium ベース):
74
廃止情報¶
特にありません
互換なしの変更情報¶
プレビュー版の機能に対して後方互換性を維持しない変更を行っています
- スポットライト機能 CastAlwaysSpotlight API
client_idをconnection_idに変更しました
- スポットライト機能 CastSpotlight API
client_idをconnection_idに変更しました
- スポットライト機能 CancelSpotlight API
client_idをconnection_idに変更しました
- スポットライト機能のシグナリング
type: connect時にspotlightを指定した場合、audioをfalseにするとエラーになるように変更しました
- スポットライト機能のシグナリング通知
spotlight.changedchannel_idを削除しました
- サイマルキャスト機能 ChangeSimulcastQuality API
client_idをconnection_idに変更しました
ハイライト¶
- Safari に正式対応しました
- スポットライト機能が Safari に対応しました
- 1 接続ごとにユニークなコネクション ID を払い出すようになりました
- クライアント ID を指定可能にする設定を追加しました
- クライアント ID の重複が可能になりました
- クライアントにネットワーク不安定レベルを通知する機能を追加しました
- イベントウェブフックがエラーになった場合、 event_webhook_error.log にもログが記録されるようになりました
- イベントウェブフックの
connection.updatedの通知を無効にできる設定を追加しました - 映像の前方誤り訂正機能がマルチストリームでも利用可能になりました
- デモ機能に getDisplayMedia の機能を追加しました
- スポットライト機能に自動で映像のビットレートをシェアする機能を追加しました
- チャネルの接続を、配信者や視聴者単位で切断できる API を追加しました
- Edge の対応を終了し Edge (Chromium ベース) への対応を開始しました
変更履歴¶
- [UPDATE] Safari 12.1 にて Safari に正式に対応しました
- 実験的機能としての Unified Plan はまだ動作が未確定なため、プレビュー版としての対応です
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.12.0 にアップデートしました
- Safari 12.1 に対応しました
- Safari 12.0 にも対応しています
- [UPDATE] デモ機能で Safari のデフォルト映像コーデックを H.264 から VP8 に変更しました
- Safari 12.1 で VP8 に対応しました
- Safari 12.0 で VP8 は利用できません
- [UPDATE] デモ機能 multi_pubsub と spotlight_pubsub のデフォルトビットレートを 500kbs から 1000kbps に変更しました
- 自動で映像のビットレートをシェアする機能を追加したためです
- [UPDATE] スポットライト機能が Safari に対応しました
- Safari が VP8 に対応し、動作が安定したため対応しました
- [ADD] 1 接続ごとにユニークな コネクション ID を払い出すようになりました
- [ADD] クライアント ID を重複させることが可能になりました
- これはプレビュー版の機能です
- [ADD] シグナリング接続時、または認証成功の戻り値にクライアント ID を指定可能にする設定を追加しました
- これはプレビュー版の機能です
- デフォルトでは無効に設定されています
sys.configのallow_client_id_assignmentをtrueに指定することで有効にできます- 設定を有効にした場合で、
client_idを指定しない場合、認証ウェブフックでで通知されるclient_idはnullになります - クライアント ID が指定可能な場合、コネクション ID を判定に使うことが必須になり、後方互換性が失われますので注意してください
- [ADD] デモ機能の pub.html, multi_pubsub.html が getDisplayMedia に対応しました
- 最新版の Chrome と Firefox で有効です
- Safari では利用できません
- [ADD] ブラウザへの追従のため RTP 拡張対応の extmap_allow_mixed を追加しました
- 有効にした場合 Safari 12.0 が繋がらなくなります
- デフォルトでは無効になっています
sys.configのextmap_allow_mixedをtrueに指定することで有効にできます
- [ADD] イベントウェブフック通知がエラーになった場合は event_webhook_error.log にもログが記載されるようになりました
- event_webhook.log にはすべてのログが記録されます
- event_webhook_error.log にはエラーになったイベントウェブフックのログが記録されます
- [ADD] イベントウェブフックの
connection.updatedの通知を無効にできる設定を追加しました- デフォルトでは通知されます
sys.configのignore_connection_updated_webhookをtrueに指定することで通知を無効にできます
- [ADD] シグナリング通知でネットワークの状態を通知する機能を追加しました
- デフォルトで有効になっています
sys.configのsignaling_notify_networkをfalseに指定することで無効にできます
- ネットワークの不安定レベル (unstable_level) を通知します
- 不安定レベルは 0 から 3 まで 4 段階あり、 0 が一番安定、 3 が一番不安定です
- 映像を配信している人のみに有効です
- 送信間隔は 10 秒で固定しています
- Sora 19.10 にて送信間隔を変更できるようにする予定です
- デフォルトで有効になっています
- [ADD] マルチストリーム配信側の ULPFEC (前方誤り訂正) に対応しました
- [ADD] 片方向配信やマルチストリームにて、映像ビットレートを動的に変更できる ChangeUpstreamVideoBitRate API を追加しました
- 詳細は ChangeUpstreamVideoBitRate API をご確認ください
- この API を利用することで、再接続することなく映像ビットレートを変更できるようになります
- マルチストリームでは、分割されたビットレート以上にビットレートを上げることができません
- 例えば 1000kbps で指定し、 2 名がそのチャネルに参加している場合には、指定可能な最大ビットレートは 500kbps となります
- [ADD] 指定したチャネルすべての配信者を切断する DisconnectChannelUpstream API を追加しました
- 詳細は 指定したチャネルすべての配信者の接続を切断する をご確認ください
- この API は片方向配信、マルチストリーム、スポットライトすべてで利用できます
- [ADD] 指定したチャネルすべての視聴者を切断する DisconnectChannelDownstream API を追加しました
- 詳細は 指定したチャネルすべての視聴者の接続を切断する をご確認ください
- この API は片方向配信、マルチストリーム、スポットライトすべてで利用できます
- [ADD] マルチストリームのビットレートシェアリング機能を指定可能にしました
- 詳細は multistream_auto_sharing_video_bit_rate をご確認ください
- この機能は配信者の人数で映像のビットレートを分割する機能です
- デフォルトで有効になっています
sys.configのmultistream_auto_sharing_video_bit_rateをfalseに指定することで無効にできます
- [ADD] スポットライト機能に、自動で映像ビットレートをシェアする機能を追加しました
- 詳細は スポットライトにおける映像ビットレート自動シェアリング機能 をご確認ください
- この機能は配信者の人数またはスポットライトの数で映像のビットレートを分割する機能です
- デフォルトで有効になっています
sys.configのspotlight_auto_sharing_video_bit_rateをfalseに指定することで無効にできます
- [ADD] ログ出力に
api.logを追加しました- 一部の API 操作に関するログを出力します
- ログローテーションされませんので、ログローテーションをお願いします
- [ADD] クライアント切断 DisconnectClient API を追加しました
- Disconnect API に ClientId を渡した場合と同じ動作をします
- [ADD] 認証の戻り値で
client_idがバリデーションでエラーになった際、 warning ログが出力されるようになりました - [ADD] デモ機能のデバッグ情報に PUSH API からの通知を表示するようにしました
- [ADD] Edge (Chromium ベース) への対応を開始しました
- 詳細は Microsoft Edge の WebRTC について をご確認ください
- [CHANGE] ULPFEC (前方誤り訂正) をデフォルトで有効にしました
- 片方向配信とマルチストリームでの配信が対象です
sys.configのulpfecを false に指定することで無効にできます
- [CHANGE] スポットライト機能のシグナリング接続時に
audioをfalseにするとエラーになるよう変更しました - [CHANGE] スポットライト機能向け CastAlwaysSpotlight API の
client_idをconnection_idに変更しました - [CHANGE] スポットライト機能向け CastSpotlight API の
client_idをconnection_idに変更しました - [CHANGE] スポットライト機能向け CancelSpotlight API の
client_idをconnection_idに変更しました - [CHANGE] サイマルキャスト機能向け ChangeSimulcastQuality API の
client_idをconnection_idに変更しました - [CHANGE] スポットライト機能のシグナリング通知
spotlight.changedからchannel_idを削除しました - [CHANGE] スポットライト機能のデモでクライアント ID を表示していた部分をコネクション ID を表示するように変更しました
- [CHANGE] GetStats API は
allow_client_id_assignmentをtrueにした場合は利用できなくなりました- クライアント ID が重複可能になるため、既存の API の仕組みでは対応できないためです
- 代わりに GetStatsClient または GetStatsConnection API を利用してください
- [CHANGE] Disocnnect API は
allow_client_id_assignmentをtrueにした場合は利用できなくなりました- クライアント ID が重複可能になるため、既存の API の仕組みでは対応できないためです
- 代わりに DisconnectClient または DisconnectConnection API を利用してください
- [FIX] スポットライト機能でスポットライトがあたっている参加者が接続を切断した場合、シグナリング通知で
client_id=nullを送るように修正しました - [FIX] TURN-TCP 利用時に、特定環境で TCP の接続が残ったままになる問題を修正しました
18.10.5¶
- リリース:
2019-01-21
- 対応 Chrome:
M71
- 対応 Firefox:
64
- 対応 Edge:
44
- 対応 Safari:
12.0
廃止情報¶
特にありません
互換なしの変更情報¶
GetStats API の項目を一部変更しました。
total_received_bytesをtotal_received_byte_sizeに変更しましたtotal_sent_bytesをtotal_sent_byte_sizeに変更しましたtotal_received_packetsをtotal_receivedに変更しましたtotal_sent_packetsをtotal_sentに変更しました
ハイライト¶
- ジッターやパケロスが多い、不安定な回線でも録画が行えるように改善しました
アップグレード時の注意¶
互換なしの変更情報を確認してください。
変更履歴¶
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.10.2 にアップデートしました
- [CHANGE] GetStats API の項目を一部変更しました。
total_received_bytesをtotal_received_byte_sizeに変更しましたtotal_sent_bytesをtotal_sent_byte_sizeに変更しましたtotal_received_packetsをtotal_receivedに変更しましたtotal_sent_packetsをtotal_sentに変更しました
- [FIX] 録画機能で、ジッターやパケロスが多い場合でも正常に録画できるよう改善しました
- [FIX]
turn_tls_fqdnやturn_fqdnが認証時に動作しない問題を修正しました - [FIX] 録画機能の PCMU がいくつかの条件で正常に動作しない問題を修正しました
- [FIX] マルチストリームのキャッシュテーブルが初期化されていなかった問題を修正しました
18.10.2¶
- リリース:
2018-12-04
- 対応 Chrome:
M70
- 対応 Firefox:
63
- 対応 Edge:
44
- 対応 Safari:
12.1 (Safari TP 70)
廃止情報¶
- generic_nack_cache_size が廃止されました
- generic_nack_cache_size_msec を利用指定ください
互換なしの変更情報¶
- generic_nack_cache_size が廃止されました
- generic_nack_cache_size_msec を利用指定ください
ハイライト¶
- 高ビットレートでの再送制御の効率化を行いました
- サポート対象の映像ビットレートを 5Mbps から 15Mbps に変更しました
アップグレード時の注意¶
- generic_nack_cache_size を廃止し、 generic_nack_cache_size_msec を追加しました
- generic_nack_cache_size の設定を削除してください
変更履歴¶
- [UPDATE] デモ機能の simulcast_pub/simulcast_sub の H.264 を有効にしました
- Safari TP 70 にて動作を確認しています
- [UPDATE] デモ機能の up.html の映像ビットレートに 50Mbps を追加しました
- サポート対象は 15Mbps が最大になります
- [UPDATE] サポート対象の映像ビットレートを 5Mbps から 15Mbps に引き上げました
- [UPDATE] RTP パケロスシミュレータをマルチストリームとスポットライトに対応しました
- [UPDATE] H.264 のキーフレーム判定をより正確に判定するようにしました
- [UPDATE] 視聴者側の Generic NACK キャッシュサイズをビットレートによって変更する仕組みに変更しました
- これにより高ビットレートでも再送制御が機能するようになりました
- [ADD] generic_nack_cache_size_msec を追加しました
- デフォルト値以外の値を設定を検討している場合はサポートまでお問い合わせください
- [CHANGE] generic_nack_cache_size を廃止しました
- [FIX] サイマルキャスト利用時でない場合でも視聴側がサイマルキャストを利用していた問題を修正しました
- [FIX] サイマルキャスト配信側が不安定から復旧した際に視聴側が期待している画質が配信されない問題を修正しました
- [FIX] 配信側の Generic NACK 送信の無駄を減らしました
- [FIX] Plan B で映像のみの配信者しかいない場合、音声が有効の視聴者が接続できない問題を修正しました
- [FIX] 回線が不安定な際、正常に録画ができず録画に失敗する問題を修正しました
18.10.0¶
- リリース:
2018-10-30
- 対応 Chrome:
M70
- 対応 Firefox:
63
- 対応 Edge:
42
- 対応 Safari:
12.1 (Safari TP 68)
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
ハイライト¶
- 1 つのチャネルで、同じ映像を複数のビットレートで送信できるサイマルキャスト機能を、プレビュー版として追加しました
- スポットライト機能利用時のクライアントやサーバーの負荷を改善する API や機能を追加しました
- キーフレームの欠損時に再送なしで回復できる前方誤り訂正機能(FEC)の一つである ULPFEC に対応しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] デモ機能の Sora JS SDK を 1.10.0 に上げる
- [UPDATE] スポットライト関連のデモ機能のコーデックを VP9 に変更しました
- [ADD] スポットライトで利用するビットレートを一時的に下げる DowngradeSpotlightChannelBitRate API を追加しました
- スポットライトを利用している指定したチャネルのビットレートを一時的に半分に下げます
- [ADD] スポットライトで利用するビットレートをリセットする ResetSpotlightChannelBitRate API を追加しました
- DowngradeSpotlightChannelBitRate API で下げたビットレートをもとに戻します
- [ADD] DisconnectChannel API と Disconnect API にオプションとして reason を指定できるようにしました
- reason をした場合イベントウェブフックの connection.destroyed にて指定した reason が追加されるようになります
- 切断理由を明確にしたい場合ご利用ください
- [ADD] スポットライトで配信されていないクライアントのビットレートを自動的に下げる設定を追加しました
- デフォルトでは無効になっています
- 有効にする場合は sys.config で
{spotlight_auto_downgrade_bit_rate, false}を true にしてください
- [ADD] イベントウェブフックの connection.destroyed に reason を追加しました
- DisconnectChannel API と Disconnect API の reason に指定された文字が入ります
- 指定しない、またはそれ以外で切断された場合は null が入ります
- [ADD] プレビュー機能としてサイマルキャストを追加しました
- Chrome または Safari TP の最新版が利用できます
- VP8 でのみ利用できます
- 片方向配信でのみ利用できます
- マルチストリームやスポットライトでは利用できません
- 配信側はシグナリングの
type: connectにて{"simulcast": true}を指定してください - 視聴側はシグナリングの
type: connectにてsimulcast: true | {quality: low | middle | high}を指定してください- quality を指定しない場合は low がデフォルトで選択されます
- [ADD] サイマルキャスト向けの ChangeSimulcastQuality API を追加しました
- ChannelId と ClientId と Quality を指定することで指定した Quality の映像を受信するようになります
- [ADD] デモ機能にサイマルキャスト機能を追加しました
- simulcast_pub.html
- simulcast_sub.html
- [ADD] ULPFEC を片方向配信にてデフォルトで適用するようにした
- sys.config にて ulpfec が有効になっています
- ULPFEC は キーフレーム(全画面フレーム)が欠損した場合に再送無しで欠損を回復する仕組みです
18.04.12¶
- リリース:
2018-09-21
- 対応 Chrome:
M69
- 対応 Firefox:
62
- 対応 Edge:
42
- 対応 Safari:
12.0
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
アップグレード時の注意¶
sys.config の cert_file と cert_key_file が不要になりました。
もし設定ファイルを使いまわしている方は設定を削除する必要はありませんが、できるだけ新しい設定ファイルを利用してください。
cert_file と cert_key_file が不要になったことで sys.config の最後の項目が connection_created_wait_timeout に変更されています。
18.04.11 までの設定ファイルの末尾:
%% SDP の offer 時に払い出される origin の username を隠蔽するかどうかを指定してください
%% true の場合は origin の username が "-" として払い出されます
%% {hide_origin_username, true},
%% WebRTC の接続が確立するまでの許容時間を秒で指定してください
%% {connection_created_wait_timeout, 30}
%% WebRTC に使用する証明書を指定してください ECDSA 形式のみ対応しています
{cert_file, "etc/certs/ecdsa_server_cert.pem"},
%% WebRTC に使用する証明書の秘密鍵を指定してください ECDSA 形式のみ対応しています
{cert_key_file, "etc/certs/ecdsa_server_key.pem"}
]
18.04.12 の設定ファイルの末尾:
%% SDP の offer 時に払い出される origin の username を隠蔽するかどうかを指定してください
%% true の場合は origin の username が "-" として払い出されます
%% {hide_origin_username, true},
%% WebRTC の接続が確立するまでの許容時間を秒で指定してください
{connection_created_wait_timeout, 30}
]
変更履歴¶
- [CHANGE] WebRTC の DTLS に利用している証明書を Sora が動的に生成する仕組みを追加しました
- [CHANGE] sys.config の cert_file と cert_key_file を削除しました
- 証明書は Sora が動的に生成する仕組みになりました
- [UPDATE] Safari 12.0 に対応しました
- ただし High Sierra の場合 Safari で Firefox への配信が正常に行われません、これは Safari 側の問題です
- 対応は Safari のアップデートを待ちになります
- [UPDATE] 映像コーデックに指定可能なビットレートの最大値を 5Mbps から 30Mbps に変更しました
- ネットワーク条件がかなり限定されることもあり、現時点では 5Mbps より大きい値はサポート外とさせていただきます
- 今後対応できるように検証、改善を進めてまいります
- [UPDATE] デモ機能で利用している Sora JavaScript SDK を 1.9.2 に上げました
- [UPDATE] シグナリングの
type: "ping"の Sora 側での判断を変更しました- 今までは
type: "ping"を送って 30 秒反応がない場合は切断するという方式でしたが、もう少し許容できるように、 5 秒ごとに ping を送り、 60 秒間隔で pong が一度でも送られて来ているかどうかという判断をする仕組みに変更しました
- 今までは
- [FIX] 録画時に、 0 バイトのペイロードの RTP RTX を受け取ると録画ファイルが途中から再生できなる問題を修正しました
- [FIX] PCMU が片方向と双方向で正常に動作しなくなっていた問題を修正しました
- [FIX] 録画時に映像コーデックに H.264 を利用した場合に正常に録画されない問題を修正しました
18.04.11¶
- リリース:
2018-08-08
- 対応 Chrome:
M68
- 対応 Firefox:
61
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
アップグレード時の注意¶
Sora がデフォルトで利用している証明書を更新しました。
証明書を自前で発行して設定していない方は 必ず 更新をお願いします。
変更履歴¶
- [UPDATE] 片方向配信の映像に特定の RTP 拡張が入っている場合 Chrome Canary M70 で動作しないため、RTP 拡張を最低限にまで落としました
- [UPDATE] Sora がデフォルトで利用している証明書を更新しました
- 証明書の設定を自前で行っていない方は 必ず 更新をお願いします
- [ADD] プレビュー機能として RTP パケロスシミュレータを追加しました
- この機能を使った場合クライアント接続ごとに warning ログが発生しますので注意してください
- sys.config にて
{rtp_packet_loss_simulator_incoming, 2}を設定すると Sora が受信する 2% のパケットをドロップします - sys.config にて
{rtp_packet_loss_simulator_outgoing, 1}を設定すると 1% Sora が送信するパケットをドロップします
- [FIX] シグナリングで音声と映像を有効にして録画する際、クライアント側で音声のみを送信した場合に録画が正常に行われない問題を修正しました
- [FIX] 録画のときに、映像、音声どちらかが大きく遅れた場合に録画がずれる問題を修正しました
18.04.10¶
- リリース:
2018-07-24
- 対応 Chrome:
M68
- 対応 Firefox:
61
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] ICE 周りで Chrome M68 で変更箇所に対応しました
- [UPDATE] TURN-TCP のパケット処理をより厳密にするようにしました
- [UPDATE] スポットライト固定 API (CastAlwaysSpotlight) で spotlight_id をオプションに変更しました
- spotlight_id を指定しない場合は、空いているスポットライトが利用されます
- [FIX] クライアントが複数 IP アドレスを保持している場合にたまに繋がらなくなる問題を修正しました
- [FIX] ローカルネットワーク上でまれに TURN-UDP が有効にもかかわらず TURN-TCP が選択されてしまう問題を修正しました
- [FIX] スポットライトのシグナリング通知で
connection.createdの前にspotligh.changedが通知される問題を修正しました
18.04.9¶
- リリース:
2018-06-29
- 対応 Chrome:
M67
- 対応 Firefox:
61
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
アップグレード時の注意¶
{turn_fqdn, "sora.example.com"} を廃止することを取りやめました
変更履歴¶
- [UPDATE] スポットライト機能のデモのデフォルトで利用するコーデックを VP9 から VP8 に変更しました
- Chrome M67-M69 では VP9 で映像を切り替えた際にうまく映像が切り替わらないバグが存在するためです
- [UPDATE] スポットライト機能のデモで映像が切り替わった際にクライアント ID を切り替えるようにしました
- この機能は
signaling_notifyが有効になっている必要があります
- この機能は
- [UPDATE]
{turn_fqdn, "sora.example.com"}を廃止することを取りやめました- iOS の審査通過条件である NAT64/DNS64 下で動作するには TURN の URL が FQDN である必要があるためです
- 以前新しく追加した
turn_tls_fqdnはturn_fqdnの設定を上書きします、そのため TURN-TCP/UDP と TURN-TLS で別の FQDN を指定することが可能になりました
- [FIX] スポットライト機能で配信されなくなるクライアントが出てしまう問題を修正しました
18.04.6¶
- リリース:
2018-06-18
- 対応 Chrome:
M67
- 対応 Firefox:
60
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
アップグレード時の注意¶
特にありません
変更履歴¶
- [FIX] Firefox 利用時にマルチストリームで複数クライアントが接続した際、クライアント側のイベントが正常に発火しない問題を修正しました
- [FIX] デモ機能で Firefox を利用した際に、正常に disconnect が利用できない問題を修正しました
- [FIX] デモ機能で Chrome を利用した際に、 onremovetrack と onremovestream 両方が発火する場合の動作を修正しました
18.04.5¶
- リリース:
2018-06-14
- 対応 Chrome:
M67
- 対応 Firefox:
60
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
特にありません
互換なしの変更情報¶
特にありません
ハイライト¶
- マルチストリームで同一のチャネル ID にほぼ同時に複数クライアントが接続した際、正常につながらない問題を修正しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.9.1 にアップデートしました
- [FIX] マルチストリームで同一のチャネル ID にほぼ同時に複数クライアントが接続した際、正常につながらない問題を修正しました
- [FIX] ウェブフック機能の HTTP Proxy が正常に動作しない問題を修正しました
18.04.3¶
- リリース:
2018-05-30
- 対応 Chrome:
M67
- 対応 Firefox:
60
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
- スナップショット機能を廃止しました
- Ubuntu 14.04 版の新規提供を終了しました
互換なしの変更情報¶
- スナップショット機能を廃止しました
ハイライト¶
- Ubuntu 18.04 版のパッケージ提供を開始しました
- ウェブフックが HTTP Proxy に対応しました
- 視聴のみの参加者がいる配信で、スポットライト機能が使えるようになりました
- スポットライト機能向けのシグナリング通知を追加しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [ADD] Ubuntu 18.04 版のパッケージ提供を開始しました
- [ADD] ウェブフックの HTTP Proxy 対応を追加しました
- sys.config に以下の設定を追加しました
- webhook_proxy_url
- {webhook_proxy_url, "http://proxy.example.com:8080/"}
- webhook_proxy_auth_user
- webhook_proxy_auth_password
- [ADD] GetStatsReport API に total_turn_udp_connections と total_turn_tcp_connections を追加しました
- [ADD] デモ機能で Chrome Canary M68 以降でマルチストリームを利用した際は Unified Plan を利用するように修正しました
- [ADD] 視聴のみの参加者がいる配信で、スポットライト機能が使えるようになりました
- [ADD] スポットライト機能向けのシグナリング通知を追加しました
- [ADD] デモ機能にスポットライト機能視聴のみの spotlight_sub.html を追加しました
- [ADD] turn_tcp_listen_port を追加しました
- TURN-TCP の待受ポートを指定します
- turn_tcp_port は URL 払い出しでの利用になりました
- [ADD] turn_tls_fqdn を追加しました
- turn_fqdn が TURN-TLS でしか利用しない変更をいれたため名前を変更しました
- turn_fqdn は次のリリースで廃止します
- [UPDATE] デモ機能 spotlight_pubsub.html で音量バーを表示するようにしました
- [CHANGE] スナップショット機能を削除しました
- [CHANGE] turn_tcp_port は払い出し URL に利用されるポート番号の設定に変更しました
- [CHANGE] Ubuntu 14.04 版のパッケージ新規提供を終了しました
- [FIX] TURN-UDP/TCP の場合は FQDN は利用しないように修正しました
- Safari 11.1 では FQDN の場合 TURN が正常に動作しないため
18.04.1¶
- リリース:
2018-05-02
- 対応 Chrome:
M66
- 対応 Firefox:
59
- 対応 Edge:
42
- 対応 Safari:
11.1
廃止情報¶
- スナップショット機能を廃止予定のため、現在利用されているお客様がいらっしゃいましたらご連絡ください
- スナップショット機能は VP8 でしか利用できないこと、さらには RTP 転送機能を利用すれば似たようなことが実現できることもあり、廃止する予定です
- もし利用されているお客様がいない場合は次のリリースにて廃止します
互換なしの変更情報¶
特にありません
ハイライト¶
- シグナリング通知のフォーマットが仕様と異なっている問題を修正しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] Edge 42 で動作確認を行いました
- 現時点でもかなり不安定ですので Edge での利用はお勧めしません
- TURN-TLS が設定されていると動作しません
- TURN IPv6 が設定されていると動作しません
- VP9 コーデックには非対応です
- マルチストリームは利用できません
- [FIX] シグナリング通知時の connection.destroyed と connection.created のフォーマットが仕様と異なっている問題を修正しました
- [ADD] スポットライト機能で映像コーデックに VP8 や H.264 が利用可能になりました
18.04.0¶
- リリース:
2018-04-27
- 対応 Chrome:
M66
- 対応 Firefox:
59
- 対応 Edge:
41
- 対応 Safari:
11.1
廃止情報¶
- スナップショット機能を廃止予定のため、現在利用されているお客様がいらっしゃいましたらご連絡ください
- スナップショット機能は VP8 でしか利用できないこと、さらには RTP 転送機能を利用すれば似たようなことが実現できることもあり、廃止する予定です
- もし利用されているお客様がいない場合は次のリリースにて廃止します
互換なしの変更情報¶
特にありません
ハイライト¶
- プレビュー版のスポットライト機能 (旧「音声検出による映像の動的切り替え機能」) に対して大幅なアップデートを行いました
- シグナリング通知に対して大幅なアップデートを行いました
- クライアントが Sora と WebRTC による接続ができなかった場合に、クライアント単位の詳細なログを出力する機能をプレビュー版として追加しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.8.2 にアップデートしました
- [FIX] Android Chrome でデモ機能を利用した際に相手の映像と音声が視聴できない問題を修正しました
- [CHANGE] デモ機能の Canvas 合成配信を削除しました
- Sora の機能とは関係ないため、今後 GitHub にて公開予定です
- [CHANGE] 「音声検出による映像の動的切替機能」から「スポットライト機能」に名前を変更しました
- [CHANGE] スポットライト機能のデモを vad.html から spotlight_pubsub.html に変更しました
- スポットライトの数を 2 で固定していたのを 1-5 の範囲で指定できるようにしました
- [CHANGE] スポットライト機能のフェイクデモを vad_fake.html から spotlight_fake.html に変更しました
- スポットライトの数を 2 で固定していたのを 1-5 の範囲で指定できるようにしました
- [CHANGE] スポットライト機能で、参加者や視聴者が表示されるストリームにばらつきが出ないようにしました
- [ADD] スポットライト機能で、アクティブな話者 (配信されている話者) の数を認証ウェブフックの戻り値で指定できるようになりました
- [ADD] スポットライト機能で、アクティブな話者 (配信されている話者) が切り替わった場合に "spotlight.changed" でウェブフックを飛ばす機能を追加しました
- 詳細は spotlight.changed をご確認ください
- デフォルトでは無効になっています、有効にする場合は ignore_spotlight_changed_webhook を
falseにしてください
- [ADD] スポットライト機能で、指定した参加者を強制的に画面に表示する API を追加しました
- 詳細は 指定した参加者を強制的に画面に表示する をご確認ください
- [ADD] スポットライト機能で、指定した参加者を常に画面に表示する API を追加しました
- 詳細は 指定した参加者を常に画面に表示する をご確認ください
- [ADD] スポットライト機能で、指定した参加者を常に画面に表示するのを解除する API を追加しました
- 詳細は 指定した参加者を常に画面に表示する状態を解除する をご確認ください
- [ADD] 正常に接続できなかった場合にエラーを log/connection-created-timeout-error ディレクトリ以下に出力する機能をプレビュー版として追加しました
- ログのファイル名形式は <unix_time_sec>_<client_id>.json になります
- 内部のデータは弊社にて解析するためのログを出力しておりますので加工せずにそのままお送りください
- [CHANGE] シグナリング通知機能をデフォルトで有効にしました
- 詳細は シグナリング通知機能 をご確認ください。
- [ADD] シグナリング通知の際、クライアント ID を含めるようにしました
sys.configの{signaling_notify_client_id, false}でクライアント ID を含めなくなります
- [ADD] シグナリング通知の際、音声と映像が有効かどうかを含めるようにしました
sys.configの{signaling_notify_media, false}で音声と映像が有効かどうかを含めなくなります
- [ADD] シグナリング通知の際、メタデータを含めるようにしました
- シグナリング通知に使われるメタデータは
type: connect時のsignaling_notify_metadataで指定できます - シグナリング通知に使われるメタデータは認証ウェブフックの戻り値で
signaling_notify_metadataで上書きできます sys.configの{signaling_notify_metadata, false}でメタデータを含めなくなります
- シグナリング通知に使われるメタデータは
18.02.2¶
- リリース:
2018-03-23
- 対応 Chrome:
M65
- 対応 Firefox:
59
- 対応 Edge:
41
- 対応 Safari:
11.0
廃止情報¶
こちら現在検討中ですので急いで対応して頂く必要はありません
- ListConnections API を廃止予定です
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 で互換なしの変更を予定しておりましたが、取り下げます
ハイライト¶
- Safari 11.0.3 でマルチストリーム利用時に音声のみでの配信が正常に動作しない問題を修正しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [FIX] デモ機能でエラーが起きた時うまく表示ができなかった問題を修正しました
- [FIX] Safari 11.0.3 でマルチストリーム利用時に音声のみでの配信が正常に動作しない問題を修正しました
18.02.1¶
- リリース:
2018-03-16
- 対応 Chrome:
M65
- 対応 Firefox:
59
- 対応 Edge:
41
- 対応 Safari:
11.0
廃止情報¶
こちら現在検討中ですので急いで対応して頂く必要はありません
- ListConnections API を廃止予定です
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 で互換なしの変更を予定しておりましたが、取り下げます
ハイライト¶
- Firefox 59 で onremovetrack が発火しなくなっている問題を修正しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.8.1 にアップデートしました
- [ADD] 音声検出による映像の動的表示機能を Firefox に対応しました
- [CHANGE] エラーに出力されるログ UNKNOWN-TYPE を INVALID-SIGNALING-TYPE に変更しました
- [FIX] BUNDLE にすべての m= line の mid を列挙するよう修正しました
- この修正で Firefox 59 で onremovetrack が発火しない問題が解決します
18.02.0¶
- リリース:
2018-02-28
- 対応 Chrome:
M64
- 対応 Firefox:
58
- 対応 Edge:
41
- 対応 Safari:
11.0
ハイライト¶
- 音声検出による映像の動的切替機能を追加しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [ADD] プレビュー機能として音声検出による映像の動的表示機能を追加しました
- 詳細は 音声検出による映像の動的表示機能 をご確認ください
- [ADD] デモ機能に音声検出による映像の動的表示機能を利用した vad.html と vad_fake.html を追加しました
- [ADD] デモ機能に音声入力/音声出力/映像入力それぞれのデバイスを切り替える機能を追加しました
- [ADD] RTCP-XR に対応しました
- [FIX] マルチストリーム利用時に終了処理時にビットレート判定の部分で配信者数が 0 になる問題を修正しました
- [FIX] マルチストリーム利用時に音声のみを指定しているにも関わらず映像が配信されてしまう問題を修正しました
- [FIX] マルチストリーム利用時にクライアントが createAnswer に失敗した際に、接続が残った状態になるのを修正しました
- [FIX] TURN-TCP を利用した際にシグナリングが接続確立する前に切断したときの問題を修正しました
18.01.1¶
- リリース:
2018-01-24
- 対応 Chrome:
M63
- 対応 Firefox:
58
- 対応 Edge:
41
- 対応 Safari:
11
廃止情報¶
こちら現在検討中ですので急いで対応して頂く必要はありません
- ListConnections API を廃止予定です
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 にて次の互換なしの変更を予定しておりましたが、取り下げます
- type: connect 時にクライアントから SDP を送るのを必須に変更します
- role: upstream を role: pub に変更します
- role: downstream を role: sub に変更します
- マルチストリーム利用時の role: upstream を role: pubsub に変更します
- マルチストリーム利用時の role: downstream を role: sub に変更します
- マルチストリーム利用時の plan_b を廃止します
- 今後は type: connect 時に送る SDP にてサーバー側で自動で判断します
ハイライト¶
- Firefox 58 で配信を行おうとすると Firefox がクラッシュする問題を修正しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [FIX] Firefox 58 で配信を行おうとすると Firefox がクラッシュする問題を修正しました
18.01.0¶
- リリース:
2018-01-15
- 対応 Chrome:
M63
- 対応 Firefox:
57
- 対応 Edge:
41
- 対応 Safari:
11
廃止情報¶
こちら現在検討中ですので急いで対応して頂く必要はありません
- ListConnections API を廃止予定です
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 にて次の互換なしの変更を予定しておりましたが、取り下げます
- type: connect 時にクライアントから SDP を送るのを必須に変更します
- role: upstream を role: pub に変更します
- role: downstream を role: sub に変更します
- マルチストリーム利用時の role: upstream を role: pubsub に変更します
- マルチストリーム利用時の role: downstream を role: sub に変更します
- マルチストリーム利用時の plan_b を廃止します
- 今後は type: connect 時に送る SDP にてサーバー側で自動で判断します
ハイライト¶
- ライセンスファイル更新時にサーバーを落とさなくても良くなりました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] デモ機能でクライアント ID を表示するようにしました
- [UPDATE] デモ機能が利用している sora-js-sdk を 1.7.7 にアップデートしました
- [ADD] RTP 拡張 video-content-type に対応しました
- [ADD] RTP 拡張 video-timing に対応しました
- [ADD] プレビュー機能としてライセンス更新 API を追加しました
- 詳細は UpdateLicense API をご確認ください
- [ADD] プレビュー機能としてライセンス情報取得 API を追加しました
- 詳細は GetLicense API をご確認ください
- [ADD] プレビュー機能として RTP 転送 API 利用時の PLI をクライアントに送る間隔を sys.config で指定できるようにしました
- 配信側への キーフレーム要求の間隔を指定できるようになりました
- 指定する場合は sys.config にて default_forwarding_pli_interval を指定して下さい
- [FIX] TURN-TCP 利用時にうまく終了処理ができていなかったのを修正しました
- [FIX] 録画 API 利用時に終了処理が正常に動作していなかったのを修正しました
- [FIX] 録画終了時の負荷が高くなった際に録画が正常に終了しない問題を修正しました
- [FIX] デモ機能で multi_sub が Firefox や Safari で正常に動作していなかったのを修正しました
- [FIX] マルチストリームの downstream 利用時に配信側が存在しなくなった場合の動作がおかしくなる問題を修正しました
- [FIX] マルチストリームの downstream 利用時に配信側が存在しない場合に新規で接続した場合のエラーを修正しました
17.10.5¶
- リリース:
2017-12-20
- 対応 Chrome:
M63
- 対応 Firefox:
57
- 対応 Edge:
41
- 対応 Safari:
11
廃止情報¶
- 18.01 で ListConnections API を廃止します
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 にて次の互換なしの変更を予定しておりましたが、取り下げます
- type: connect 時にクライアントから SDP を送るのを必須に変更します
- role: upstream を role: pub に変更します
- role: downstream を role: sub に変更します
- マルチストリーム利用時の role: upstream を role: pubsub に変更します
- マルチストリーム利用時の role: downstream を role: sub に変更します
- マルチストリーム利用時の plan_b を廃止します
- 今後は type: connect 時に送る SDP にてサーバー側で自動で判断します
ハイライト¶
特にありません
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] デモ機能の Sora JavaScript SDK を 1.7.4 にアップデートしました
- [ADD] シグナリングの type: connect と type: update の sdp を sdp.log に出力するようにしました
- [ADD] シグナリングでクライアントが投げてきた JSON が間違っていた場合に
INVALID-JSONエラー返すようにしました - [CHANGE] シグナリング時にチャネル ID で
undefinedを利用可能にしました- それに伴い NOT-USE-CHANNEL-ID エラーを削除しました
- [FIX] 録画機能の WebM 作成時に録画するデータが届く前に録画終了した場合の問題を修正しました
- [FIX] 録画機能の録画予約終了と録画開始が重なった場合の問題を修正しました
- [FIX] 録画機能で録画が終了してるタイミングで録画停止 API が呼び出された場合の問題を修正しました
- [FIX] TURN 機能の TURN-UDP と TURN-TCP で ChannelNumber が期限が切れるまで保持するように修正しました
- [FIX] スナップショット機能と録画機能を同時に利用した際の問題を修正しました
- [FIX] RTP 転送機能と録画機能を同時に利用した際の問題を修正しました
17.10.2¶
- リリース:
2017-11-15
- 対応 Chrome:
M62
- 対応 Firefox:
57
- 対応 Edge:
41
- 対応 Safari:
11
廃止情報¶
- 18.01 で ListConnections API を廃止します
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 にて次の互換なしの変更を予定しておりましたが、取り下げます
- type: connect 時にクライアントから SDP を送るのを必須に変更します
- role: upstream を role: pub に変更します
- role: downstream を role: sub に変更します
- マルチストリーム利用時の role: upstream を role: pubsub に変更します
- マルチストリーム利用時の role: downstream を role: sub に変更します
- マルチストリーム利用時の plan_b を廃止します
- 今後は type: connect 時に送る SDP にてサーバー側で自動で判断します
ハイライト¶
- デモ機能にデバッグモードを追加しました
- プレビュー版の機能をいくつか追加しました
アップグレード時の注意¶
特にありません
変更履歴¶
- [ADD] デモ機能にデバッグモードを追加しました
- [ADD] GetStatsAllConnections API を追加
- GetStats API で個別に取得していた統計情報を取得する機能です
- [ADD] 片方向配信時に視聴側の帯域情報を配信側に伝えることで配信側のビットレートを自動で変更する機能を追加しました
- これはプレビュー版の機能です
- この機能を利用する場合は必ずサポートまでご連絡ください、ドキュメントには反映していません
- sys.config に設定が必要です
- {report_sub_remb, true}
- [ADD] StartForwardingRtp API 戻り値の SDP に SSRC を追加しました
- これはプレビュー版の機能です
- この機能を利用する場合は必ずサポートまでご連絡ください、ドキュメントには反映していません
- [ADD] StartForwardingRtp API 戻り値の SDP の t= の start_time に API 開始時間を追加しました
- これはプレビュー版の機能です
- この機能を利用する場合は必ずサポートまでご連絡ください、ドキュメントには反映していません
- [ADD] StartForwardingRtp API の引数にオプションとして rtcp_port を追加しました
- これはプレビュー版の機能です
- この機能を利用する場合は必ずサポートまでご連絡ください、ドキュメントには反映していません
- 現在はすべての RTCP リストを送信しています
- [ADD] GetStatsReport API に erlang_vm と browser と error の統計情報を追加しました
- これはプレビュー版の機能です
- この機能を利用する場合は必ずサポートまでご連絡ください、ドキュメントには反映していません
- sys.config に設定が必要です
- {stats_report_erlang_vm, true}
- ErlangVM の統計情報が取得できるようになります
- {stats_report_browser, true}
- シグナリング接続の成功と失敗がブラウザごとにカウントされるようになります
- {stats_report_error, true}
- シグナリングの失敗と SDP 生成の失敗がカウントされるようになります
- {stats_report_erlang_vm, true}
- [FIX] TURN-TCP が採用されないタイミングでクラッシュしていた問題を修正しました
- [FIX] Edge で一部の SDP が処理できなかった問題を修正しました
- [FIX] デモ機能のビットレート指定が反映されていなかった問題を修正しました
- [FIX] RTP 拡張 abs-send-time の処理を修正しました
- [FIX] 認証ウェブフックの戻り値の処理を修正しました
17.10.0¶
- リリース:
2017-10-25
- 対応 Chrome:
M62
- 対応 Firefox:
56
- 対応 Edge:
41
- 対応 Safari:
11
廃止情報¶
- 17.12 で ListConnections API を廃止します
- 今後は ListChannelClients API を利用して下さい
互換なしの変更情報¶
18.04 にて次の互換なしの変更を予定しておりましたが、取り下げます
- type: connect 時にクライアントから SDP を送るのを必須に変更します
- role: upstream を role: pub に変更します
- role: downstream を role: sub に変更します
- マルチストリーム利用時の role: upstream を role: pubsub に変更します
- マルチストリーム利用時の role: downstream を role: sub に変更します
- マルチストリーム利用時の plan_b を廃止します
- 今後は type: connect 時に送る SDP にてサーバー側で自動で判断します
ハイライト¶
- 映像の再送制御機能について最適化を行い、より安定した配信が可能になりました
- イベントウェブフック機能について並列化を行い、イベント通知がより安定して処理できるようになりました
- デモ機能を、 Sora JavaScript SDK を利用したものに置き換えました
アップグレード時の注意¶
特にありません
変更履歴¶
- [UPDATE] Chrome M62 での動作を確認しました
- [UPDATE] 映像の再送制御機能を最適化を行い、より安定した配信が可能になりました
- Generic NACK の仕組みを 1 から書き換えました
- [UPDATE] イベントウェブフック機能を並列化を行い、イベント通知をより安定して処理できるようになりました
- この対応を入れた後でも connection.created と connection.destroyed の順番は保証されます
- [ADD] サーバー起動時に sysctl -a と ulimint -n のログを取得する仕組みを追加しました
- log 以下に sysctl.log と ulimit.log が生成されます
- [ADD] サーバーの状態を取得できる GetStatsReport API を追加しました
- 以下の値が取得できます
- 現在接続している数
- 現在までの接続が成功した数
- 現在までの接続が失敗した数
- 現在までの合計接続時間 (秒)
- 平均接続時間 (秒)
- 平均セットアップ時間 (ミリ秒)
- シグナリングを開始してから接続するまでにかかった時間の平均
- [CHANGE] デモ機能を一新しました
- Sora JavaScript SDK を利用したデモとなっています
- ファイル名が一部変更になりました
- QueryString を利用して指定が可能になりました
- 詳細はデモ機能の QueryString をご確認下さい
- up.html -> pub.html
- down.html -> sub.html
- multistream.html -> multi_pubsub.html
- multistream_down.html -> multi_sub.html
- [CHANGE] プレビュー版だったストリーミング機能を削除しました
- ストリーミング機能はまだ安定的に動作しないこともあり、一度削除しました
- もしストリーミング機能が使いたい場合は StartForwardingRtp/StopForwardingRtp API と FFmpeg を利用してください
- [FIX] 片方向配信時の視聴側の RTCP が一部正常に処理できていない問題を修正しました
17.08.3¶
- リリース:
2017-10-13
- 対応 Chrome:
M61
- 対応 Firefox:
56
- 対応 Edge:
40.15063
- 対応 Safari:
11
廃止情報¶
- 17.12 で ListConnections API を廃止します
- 今後は ListChannelClients API を利用して下さい
変更履歴¶
- [FIX] マルチストリームの録画終了時に正常終了しない問題を修正しました
- [FIX] マルチストリームの録画終了時に PLI の定期送信が正常に終了しない問題を修正しました
- [FIX] マルチストリームで音声のみを配信している状態に、音声と映像で参加すると、VP9 しか受け付けない問題を修正しました
17.08.2¶
- リリース:
2017-09-27
- 対応 Chrome:
M61
- 対応 Firefox:
55
- 対応 Edge:
40.15063
- 対応 Safari:
11
廃止情報¶
- 17.12 で ListConnections API を廃止します
- 今後は ListChannelClients API を利用して下さい
ハイライト¶
- プレビュー機能として Safari 11 に対応しました
- プレビュー機能として Opus のビットレートを指定できるようになりました
- CentOS 7.4 に対応しました
アップグレード時の注意¶
- sys.config の application_specific_maximum を default_video_bit_rate に変更しました
変更履歴¶
- [UPDATE] Chrome M61 での動作を確認しました
- [UPDATE] プレビュー機能として Safari 11 に対応しました
- [UPDATE] デモ機能の multistream_down.html で音声をデフォルトで有効にしました
- [UPDATE] CentOS 7.4 に対応しました
- [ADD] プレビュー機能として音声コーデックに Opus 利用した際にビットレートが指定できるようになりました
- Chrome と Safari でのみ有効になります、 Firefox や Edge では有効になりません
- [CHANGE] sys.config の application_specific_maximum を default_video_bit_rate に変更しました
- [FIX] デモ機能の multistream_down.html で音声が正常に動作していなかったのを修正しました
- [FIX] snapshot を利用した際に特定の条件で正常に動作しない問題を修正しました
- [FIX] マルチストリーム時に downstream に対して RTCP-BYE を送らないよう修正しました
- [FIX] DTLS が完了していないタイミングで SRTP や SRTCP が送られてきた場合うまく動作しない問題を修正しました
17.08.0¶
- リリース:
2017-08-30
- 対応 Chrome:
M60
- 対応 Firefox:
55
- 対応 Edge:
40.15063
- 対応 Safari:
Technology Preview 38
廃止情報¶
- 17.12 で ListConnections API を廃止します
- 今後は ListChannelClients API を利用して下さい
ハイライト¶
- 音声や映像の転送処理の高速化を行いました
- TURN-TCP 周りの動作を安定させました
- OpenSSL ライブラリのインストールが不要になりました
- StartForwardingRtp の戻り値に FFmpeg 連携用の SDP 追加しました
- StartForwardingRtp/StopForwardingRtp API がマルチストリームに対応しました
- チャネルごとのユーザー接続情報を取得できる ListChannelClients API を追加しました
アップグレード時の注意¶
- イベントフックで送られてくる event_metadata の項目を metadata から event_metadata に変更しました
- StartForwardingRtp API の戻り値が FFmpeg で利用可能な sdp のみになりました
変更履歴¶
- [UPDATE] TURN-TLS URL 払い出し機能が正式版になりました
- [UPDATE] GetStats API が正式版になりました
- [UPDATE] Chrome M60 での動作を確認しました
- [UPDATE] Firefox 55 での動作を確認しました
- [UPDATE] Safari TP 38 での動作を確認しました
- [ADD] シグナリングで
type: disconnect送った際の終了処理を追加しました - [ADD] 録画 API 終了時に生成されるメタデータファイルにアーカイブそれぞれの metadata_file_path と metadta_filename を追加しました
- [ADD] イベントフック connection.created/updated/destroyed に audio/video の項目を追加しました
- [ADD] クライアント統計情報に transport_cc を追加しました
- [ADD] ListChannelClients API を追加しました
- 指定したチャネル ID のクライアント情報を取得できます
- [ADD] デモ機能の multistream.html に cpuOveruseDetection を追加しました
- [ADD] マルチストリームの SDP に AS/TIAS 追加しました
- [ADD] 片方向配信の SDP に AS/TIAS 追加しました
- [ADD] RTP が転送機能をマルチストリームに対応しました
- StartForwardingRtp/StopForwardingRtp 時に client_id を指定することで RTP 転送が可能になります
- [CHANGE] 3gpp:video-orientation を無効にしました
- [CHANGE] OpenSSL のインストールが不要になりました
- [CHANGE] イベントフックで connection.created/updated/destroyed に入ってくる event_metadata を metadata から event_metadta に変更しました
- [CHANGE] goog-remb オプションを sys.config から削除しました
- [CHANGE] transport-wide オプションを sys.config から削除しました
- [CHANGE] StartForwardingRtp API の戻り値が SDP を返すようにしました
- FFmpeg との連携を簡単にするための SDP を生成するようにしました
- [CHANGE] StartForwardingRtp API を実行したタイミングで PLI を 20 秒で送るようにしました
- [FIX] デモ機能で音声のみの受信が Firefox で正常に動作しなかった問題を修正しました
- [FIX] クライアント統計情報に TURN-TCP が反映されるようにしました
- [FIX] TURN-TCP 利用時にうまくアドレスが取得できない場合、正常に動作しなかった問題を修正しました
- [FIX] TURN-TCP 利用時に不必要に出ていたログを削除しました
- [FIX] マルチストリーム利用時に RTCP-RR の値の一部が指定されていなかった問題を修正しました
- [FIX] マルチストリーム利用時にクライアント側のエンコードビットレートが不安定になる問題を修正しました
17.06.2¶
- リリース:
2017-07-05
- 対応 Chrome:
M59
- 対応 Firefox:
54
- 対応 Edge:
40.15063
- 対応 Safari:
Technology Preview 34
変更履歴¶
- [UPDATE] 配信機能のパフォーマンス向上を行いました
- より遅延が少なくなりました
- [UPDATE] マルチストリーム使用時の Generic NACK の動作を安定化させました
- [ADD] DTLS-SRTP の AES-GCM に対応しました
- 現時点では Chrome で chrome://flags で有効にした場合のみ使用できます
- [CHANGE] デモ機能のデフォルトビデオコーデックを VP9 に変更しました
- up.html
- down.html
- canvas.html
- multistream.html
- multistream_down.html
- [CHANGE] 配信と視聴のデモ機能が Edge と Safari Technology Preview 34 に対応しました
- Safari が対応しているコーデックは H.264 のみであることに注意してください
- Edge は VP9 のコーデックに対応していないため注意してください
- [CHANGE] マルチストリームのデモ機能が Safari Technology Preview 34 に対応しました
- Safari が対応しているコーデックは H.264 のみであることに注意してください
- [FIX] 無駄に出力されていた TURN-TCP-CLOSED メッセージの表示を停止しました
- [FIX] MESSAGE-OVERFLOWED の通知のみに変更しました
- [FIX] TURN-TCP で意図しない問題が起きた場合のエラーメッセージを追加しました
17.06.0¶
- リリース:
2017-06-09
- 対応 Chrome:
M59
- 対応 Firefox:
53
- 対応 Edge:
40.15063
- 対応 Safari:
Technology Preview 32
ハイライト¶
- 多くの機能がプレビュー版を卒業し、正式版になりました
- Safari Technology Preview 32 での動作を確認しました
- RTX 機能に対応しました
- クライアントの統計機能を取得する GetStats API を追加しました
アップグレード¶
特に注意する点はありません
変更履歴¶
- [UPDATE] Chrome M59 に対応しました
- [UPDATE] マルチストリーム機能が正式版になりました
- [UPDATE] IPv6 対応が正式版になりました
- [UPDATE] TURN IPv6 が正式版になりました
- [UPDATE] TURN-TCP が正式版になりました
- [UPDATE] hide_origin_username 機能が正式版になりました
- [UPDATE] RTX 機能が正式版になりました
- [UPDATE] label 機能が正式版になりました
- [FIX] 壊れた STUN パケットが送られてきたときは破棄するようにしました
- [FIX] マルチストリーム配信中に通常配信が接続できてしまう問題を修正しました
- [FIX] 通常視聴接続中にマルチストリームが繋げてしまう問題を修正しました
- [FIX] 録画 API が正常に動作しない問題を修正しました
- [FIX] RTX を Chrome と Edge の両環境で正常に動作するようになりました
- 今回のリリースで RTX デフォルトで有効にしてあります
- 17.08 にて RTX を正式リリース予定です
- [CHANGE] StartForwardingRtp API を音声と映像の出力を分割するようにしました
- port がなくなり audio_port と video_port の引数が追加しました
- [CHANGE] プレビュー機能の UI 機能を廃止しました
- [CHANGE] プレビュー機能の Upgrade / Downgrade API を廃止しました
- [UPDATE] Generic NACK の仕組みを改善しました
- [ADD] Safari Technology Preview 32 に対応しました
- この機能はレビュー版です、 Safari 11 が出るタイミングで正式対応する予定です
- デモ機能に確認用の up_safari.html と down_safari.html を用意しました
- [ADD] プレビュー機能としてクライアントの統計情報を取得する GetStats API を追加しました
- [ADD] 3gpp:video-orientation 拡張に対応しました
- Chrome のみで使用できます
- [ADD] goog-remb オプションを sys.config に追加しました
- [ADD] transport-wide オプションを sys.config に追加しました
後方互換性のない変更¶
特にありません
17.04.6¶
- リリース:
2017-05-23
- 対応 Chrome:
M58
- 対応 Firefox:
53
変更履歴¶
- [FIX] マルチストリーム使用で音声のみが使用できなくなっている問題を修正しました
17.04.5¶
- リリース:
2017-05-16
- 対応 Chrome:
M58
- 対応 Firefox:
53
変更履歴¶
- [FIX] マルチストリーム使用時に Generic NACK が正常に動作しない問題を修正しました
- [FIX] マルチストリーム使用時に録画が正常に行われない問題を修正しました
- [FIX] 異常な STUN パケットが送られてきた場合に無視するように修正しました
- [FIX] StopForwardingRtp API が正常に動作しない問題を修正しました
17.04.1¶
- リリース:
2017-05-08
- 対応 Chrome:
M58
- 対応 Firefox:
53
変更履歴¶
- [FIX] StopRecording API 実行時に録画中の配信が archives に含まれない問題を修正しました
17.04.0¶
- リリース:
2017-04-28
- 対応 Chrome:
M58
- 対応 Firefox:
53
注意¶
Firefox 53 でマルチストリーム使用時に SDP レベルでのビットレートコントロールがおかしくなる問題が入っています
- 1332031 - TIAS cancels bitrate limiting when additional m-sections appears
- 1342727 - TIAS issues with the webrtc49 update (FF53+)
そのため現時点での Firefox ではマルチストリームを使用しないことをお勧めします。 今後、 Sora は RTCP レイヤーでのビットレートコントロールに対応していく予定です。
ハイライト¶
- Windows 10 Creators Update の Edge に対応しました
- Edge 側の制限と Sora が未対応な部分でいくつかの機能は使用できません
- アドレスの自動収集に対応しました
- sys.config で明示的にアドレスを指定しなくても動作します
- IPv6 アドレスに対応しました
- シグナリングや API では IPv6 を使用できません
- マルチストリームで視聴のみができるようになりました
- マルチストリームでビットレートが配信者の人数で分割することで 1 チャネルで最大 12 人までの配信が可能になりました
- ARM64 向けのパッケージの提供を開始しました
変更履歴¶
- [FIX] マルチストリームで VP9 を指定したとしても VP8 になっていたのを修正しました
- [FIX] TURN-TCP 使用時に UDP と TCP 両方にパケットを送信していたのを修正しました
- [CHANGE] ライセンスで接続数が越えた場合は
EXCEED-MAX-CONNECTIONSがクライアントに送られるようになりました - [CHANGE] 改善に向けて RTX 機能を一時的に無効にしました
- [CHANGE] 設定ファイルの allow_anonymous を廃止しました
- auth_webhook_url を有効にしないかぎり、すべての接続が成功するようになりました
- [CHANGE] 設定ファイルの ip_address を廃止しました
- 新しく追加された ipv4_address を使用してください
- [CHANGE] シグリングで使用していた access_token を廃止しました
- 17.02 で入った metadata を使用してください
- [CHANGE] 20151104 の StartRecording / StopRecording / ListRecording API を廃止しました
- 今までは 400 が返っていましたが、今後は 404 が返ります
- [ADD] マイクロソフト Edge に対応しました
- Edge 側の制限で動作させるためには多くの制限があります
- マルチストリームは使用できません
- Certificate Management API は使用できません
- IPv6 アドレスは使用できません
- IPv6 対応 TURN サーバーは使用できません
- STUN サーバーは使用できません
- 接続できない TURN サーバーは iceServers の urls に指定できません
- そのため ipv4_address にはクライアントが接続可能な IPv4 アドレスを指定してください
- Sora は今回のリリースで RTX を一時的に無効にしたため Generic NACK が使用できません
- [ADD] 使用可能な IP アドレスを自動で収集するようになりました
- IP アドレスを設定ファイルに設定する必要がなくなりました
- [ADD] 設定ファイルに ipv4_address を追加しました
- [ADD] 設定ファイルに ipv6 を追加しました
- シグナリングや API では IPv6 を使用できません
- IPv6 を使用する場合は有効にしてください
- デフォルトでは無効になっています
- [ADD] 設定ファイルに ipv6_address を追加しました
- この機能を使用するには
ipv6をtrueにする必要があります
- この機能を使用するには
- [ADD] TURN 機能が IPv6 アドレスに対応しました
- 設定ファイルで ipv6 を有効にして、さらに IPv6 アドレスが指定または収集された場合に払い出されます
- [ADD] 認証の戻り値で candidate や TURN の url に使用する IP アドレスが指定可能になりました
- ipv4_address と ipv6_address が指定できます
- 設定ファイルの値を上書きします
- [ADD] Chrome でのマルチストリームで視聴のみを可能にする
- マルチストリーム使用時に role: downstream を使用することで、視聴で専用のみが実現できます
- [ADD] マルチストリームで使用されるビットレートが配信者の人数分で分割されるようになりました
- この機能を導入することで最大 12 人での同時配信が可能になりました
- [ADD] Chrome でのマルチストリームでビデオコーデックが指定できるようになりました
- [ADD] マルチストリームで Generic NACK の有無が有効になりました
- [ADD] ARM64 向けのパッケージを提供開始しました
- 対応 OS は Ubuntu 16.04 のみです
- [ADD] 設定ファイルに label を追加しました
- この機能はプレビュー機能です
- 認証やイベントウェブフック通知時に含まれるサーバー固有の値を指定できます
- [ADD] 設定ファイルに hide_origin_username を追加しました
- この機能はプレビュー機能です
- SDP の offer 時に払い出される origin の username を "-" にすることができます
- [ADD] TURN の URL 払い出しに使用する FQDN を指定可能になりました
- FQDN が優先されます
- [ADD] TURN-TLS の URL 払い出しに対応しました
- TURN-TLS の TLS 部分の処理は nginx などで終端して貰う前提の機能です
後方互換性のない変更¶
- allow_anonymous を廃止しました
- 認証を使用したい場合は auth_webhook_url を有効にしてください
- Sora 自身の IP アドレスをする ip_address を廃止しました
- ipv4_address を使用してください
- シグナリングで使用していた access_token を廃止しました
- metadata を使用していください
- 録画用の古い API の戻り値を 400 から 404 に変更しました
17.02.14¶
- リリース:
2017-03-17
- 対応 Chrome:
M57
- 対応 Firefox:
52
- [FIX] connection.updated の signaling_notify の判定が間違っていたのを修正しました
- [FIX] snapshot のタイマーが固定されないのを修正しました
- [CHANGE] connection_created_wait_timeout のデフォルト値を 30 秒に変更しました
- [CHANGE] connection_created_wait_timeout の最大値を 600 秒に変更しました
- [CHANGE] snapshot の最大時間を 10 秒に変更しました
- [ADD] 不安定な回線でも最初のキーフレームを受け取る可能性を上げる仕組みを追加しました
- [ADD] event_metadata を追加しました
- 認証成功時の戻り値に event_metadata を含むことでイベントウェブフック通知時に含まれる metadata を指定できるようになりました
- [UPDATE] Chrome M57 に対応しました
- [UPDATE] Firefox 52 に対応しました
17.02.8¶
- リリース:
2017-02-27
- 対応 Chrome:
M56
- 対応 Firefox:
51
- [FIX] 音声のみの録音で生成される WebM が一部期待通りに生成されない問題を修正しました
- [FIX] Fingerpirnt のチェックを非同期で行うように修正しました
- Answer が送られてくるのが遅くなった場合に証明書エラーになっていた問題に対応しました
- [CHANGE] デモ機能は Chrome の場合 M56 以上が必須になりました
- [UPDATE] Chrome M56 に対応しました
- [UPDATE] マルチストリームの性能を向上させました
- [UPDATE] シグナリング経由での通知機能を、認証ウェブフックの戻り値によりクライアント単位で有効/無効にできるようになりました
- [UPDATE] TURN-TCP の動作を安定化させました
- Firefox での TURN-TCP も問題なく動作するようになりました
- [CHANGE] シグナリングの connect 時の access_token を 17.04 にて廃止します
- [ADD] Answer が 30 秒以内に送られてこない場合はエラーとする仕組みを追加しました
- 今後 30 秒という値は sys.config の設定にて変更できるようになる予定です
- [ADD] シグナリングの connect 時の access_token の代わりに metadata を追加しました
- access_token はオプション扱いで値が入ってこない場合、認証サーバーには null が入っていましたが、 metadata は入力しなければ項目自体が入ってきません
- それ以外は特に変更は無く、 access_token 同様、どんな値でも入れることができます
- [ADD] H.264/Opus の WebM 形式での録画に対応しました
- [ADD] H.264 のみの WebM 形式での録画に対応しました
- [ADD] プレビュー機能として指定したチャネル ID の RTP を転送する API を追加しました
- StartForwardingRtp/StopForwardingRtp API を追加し、指定した IP アドレスとポート番号に対して配信されてくる RTP をそのまま転送します
- DTLS-SRTP の中身 (RTP) をそのまま送ります
- RTCP は送信しません
- [ADD] プレビュー機能として RTX へ対応しました
- デフォルトでは無効になっており、有効にするには sys.config にて
{rtx, true}にする必要があります - RTX は RFC4588 で定義されている機能で、再送制御機能です
- デフォルトでは無効になっており、有効にするには sys.config にて
17.01.5¶
- リリース:
2017-02-07
- 対応 Chrome:
M56
- 対応 Firefox:
51
- [FIX] イベントウェブフックの通知の一部が間違っていたのを修正しました
17.01.4¶
- リリース:
2017-02-02
- 対応 Chrome:
M56
- 対応 Firefox:
51
- [UPDATE] Chrome M56 に対応しました
- [FIX] 切断のウェブフックの通知タイプのスペルが間違っていたのを修正しました
- [FIX] マルチストリームの RTCP が正常にハンドリングするように修正しました
17.01.2¶
- リリース:
2017-01-25
- 対応 Chrome:
M55
- 対応 Firefox:
51
2017 年のリリースからバージョン番号を変更しました
- [UPDATE] Firefox 51 に対応しました
- [FIX] generic_nack を false にした場合はキャッシュを行わない用に修正しました
- [FIX] 接続判定に誤りがありライセンスの接続数よりも 1 本多く接続できるようになっていたのを修正しました
- [CHANGE] log/warning.log には warning のみを出力するようにしました
- [CHANGE] log/error.log には error のみを出力するようにしました
- [CHANGE] 認証ウェブフックの upstream_connections を channel_upstream_connections に変更しました
- [CHANGE] 認証ウェブフックの downstream_connections を channel_downstream_connections に変更しました
- [CHANGE] イベントウェブフックの upstream_connections を channel_upstream_connections に変更しました
- [CHANGE] イベントウェブフックの downstream_connections を channel_downstream_connections に変更しました
- [ADD] canvas を使用してカメラ映像とペイントを合成し配信する機能のデモを追加しました
- [ADD] イベントウェブフックに送受信の流量情報を追加しました
- total_sent_bytes
- そのクライアントが今までに送信したパケット(バイト)量です
- total_received_bytes
- そのクライアントが今までに受信したパケット(バイト)量です
- total_sent_bytes
- [ADD] プレビュー版 としてTURN-TCP 機能を 追加しました
- この機能は sys.config にて
{turn_tcp, true}を指定することで有効になります- デフォルトは
{turn_tcp, false}です
- デフォルトは
- TURN-TCP で使用するポート番号は
{turn_tcp_port, 3478}のように指定してください- デフォルトは 3478 ポートを使用します
- この機能は sys.config にて
- [ADD] プレビュー版 としてシグナリング経由でのサーバー情報の通知機能を追加しました
- この機能は sys.config にて
{signaling_notify, true}を指定することで有効になります
- この機能は sys.config にて
- [UPDATE] RFC7983 に対応しました
3.4.5¶
- リリース:
2016-12-20
- 対応 Chrome:
M55
- 対応 Firefox:
50
- [FIX] Chrome Canary M57 にて正常に通信ができない問題を修正しました
- [FIX] 接続数が多くなった場合、性能劣化が起きる問題を修正しました
- [UPDATE] CentOS 7.3 向けパッケージの提供を開始しました
3.4.1¶
- リリース:
2016-11-30
- 対応 Chrome:
M55
- 対応 Firefox:
50
- [UPDATE] Firefox 50 での動作を確認しました
- [UPDATE] Chrome M55 での動作を確認しました
- [ADD] 実験的にマルチストリームでの録画に対応しました
- 一つのチャネルで複数の映像が流れた場合の録画にも対応しました
- [ADD] 認証レスポンスでオーディオとビデオのパラメータの上書きを可能にしました
- allowed だけでなく audio や video を返せるようになりました
- サーバー側でこのクライアントは VP9 コーデックで、ビットレートは 500 を指定するといったことが可能になります
- [ADD] 録画成功時、録画ファイルとは別に録画ファイルのメタ情報を JSON 形式で出力するようになりました
- 録画ファイル名.json という形で出力されます
- [CHANGE] 録画機能 API が非同期になり、エラーメッセージが変更になりました
- いくつかの録画機能向けの API が追加されました
- [CHANGE] 録画機能が StopRecording API を実行するか、有効期限が切れるまではそのチャネルで録画をするようになりました
- このタイミングで recording.report を通知するようになりました、これはその間に録画されたファイルの情報を通知します
- [CHANGE] 録画機能のイベントウェブフック archive.finished が archive.available に変更しました
- ファイルへの変換が終了したタイミングで今までは archive.finished を通知しておりましたが、今後は archive.available を通知します
- [CHANGE] archive.available の通知内容に情報を追加、変更しました
- filepath を file_path に変更しました
- 録画ファイル生成時間 created_at を ISO8601 から UNIX Time に変更しました
- 録画開始時間 start_time (UNIX Time) を追加しました
- 録画終了時間 stop_time (UNIX Time) を追加しました
- メタデータファイルパス metadta_file_path を追加しました
- メタデータファイル名 metadta_filename を追加しました
- コーデック情報だけでなくビットレートや解像度なども出力するようにしました
- [CHANGE] イベントウェブフックの中に入ってくる時間の項目を created_at から timestmap に変更しました
- [FIX] TURN 機能が正常に動かない不具合があったのを修正しました
- [FIX] 映像保存時にパケロスが長期的に発生した場合に正常に映像が保存されない問題を修正しました
- [FIX] マルチストリームでビットレートやコーデックを指定できるよう修正しました
- ただし PlanB の場合はコーデック指定は行えず、 VP8 のみ限定
- [FIX] UpgradeRole / DowngradeRole API のエラー処理を修正しました
3.3.4¶
- リリース:
2016-10-28
- 対応 Chrome:
M54
- 対応 Firefox:
49
- [ADD] デモ機能の有効無効を選択できる機能を追加しました
- いままでデフォルトで有効であった、いろいろな機能を試すためのデモ機能を無効にできる仕組みを追加しました
- sys.config で {demo, true} とすることで有効にすることができます
- [ADD] Generic NACK を有効かどうかを指定できる設定を追加しました
- sys.config の generic_nack 項目にて指定できます。デフォルトで有効になっています。
- [ADD] 録画できる解像度の制限をなくしました
- 解像度が HD や QVGA でも録画を可能にしました
- [UPDATE] Chrome M54 での動作を確認しました
- [UPDATE] 認証処理時にクライアントが指定した音声・映像・マルチストリームの情報を認証サーバーへ送るようにしました
- 映像のビットレートやコーデックなどを認証条件に含めることができるようになりました
- [CHANGE] シグナリング時のエラー戻り値を JSON から文字列に変更しました
- WebSocket の制限でエラー理由のメッセージサイズに制限があるため文字列へ変更しました
- [CHANGE] 認証ウェブフックの Reason がクライアントに送られる Reason に置き換わりました
- エラー理由が JSON から文字列に切り替わったため認証サーバーから送った Reason がクライアントに送られます
- [CHANGE] 認証ウェブフックで認証失敗時に metadata を送れなくなりました
- エラー理由が JSON から文字列に切り替わったため metadata を失敗時に送れなくなりました
- [CHANGE] 認証ウェブフックで認証失敗時の reason のサイズが最大で 100 バイトまでになりました
- WebSocket の仕様に準拠するための制限です
- [CHANGE] マルチストリームのチャネル空間が通常と共有されるようになりました
- multistream: false と multistream: true でのチャネル ID 空間が共有されます
- multistream: false で使用しているチャネル ID は multistream: ture 使用できなくなりました
- [FIX] マルチストリームで PLI が一定状況で想定外の動作をする問題を修正しました
- [FIX] マルチストリームの Plan B で映像のみ、音声のみの順番で繋ぐと例外が発生する問題を修正しました
- こちらは現時点で正常な動作は行えず、既知のバグとして問題解決に取り組んでおります
- [FIX] イベントフック通知の戻りのステータスコードが 200 を要求していたのを 200 番台で問題ないように修正しました
- [FIX] TURN 機能使用時の Nonce の動作を RFC 準拠に修正しました
- [FIX] TURN 機能使用時に CreatePermission が送られてきていない状態で Binding-Request を受け取った場合例外が発生する問題を修正しました
3.2.1¶
- リリース:
2016-10-11
- 対応 Chrome:
M53
- 対応 Firefox:
49
- [UPDATE] Firefox 49 での動作を確認しました
- Firefox でも application_specific_maximum が使用できるようになりました
- [UPDATE] マルチストリーム(Unified Plan) で audio のみの配信に対応しました
- [UPDATE] マルチストリーム(Plan B) で audio のみの配信に対応しました
- [UPDATE] 組み込み UI を改善しました
- クライアント単位の情報が見やすくなりました
- TURN 関連の統計情報を追加しました
- [UPDATE] ストリーミング配信の安定性を向上させました
- MPD を WebRTC 向けに調整することで、長時間の安定的な配信が可能になりました
- [UPDATE] 配信先を変更した場合の安定性を向上させました
- 配信者を切り替えた場合に視聴者側の映像が不安定になりにくくなりました
- [UPDATE] WebRTC の接続が確立するまでのデフォルト許容時間を 10 秒に変更しました
- [UPDATE] パケット再送信用のキャッシュサイズを指定可能になりました
- sys.config の generic_nack_cache_size にて指定できます
- [UPDATE] マルチストリームのサンプルファイルを統合しました
- Chrome でも Firefox でも multistream.html にてご使用いただけます
3.1.0¶
- リリース:
2016-09-14
- 対応 Chrome:
M53
- 対応 Firefox:
48
- [UPDATE] Chrome M53 での動作を確認しました
- [CHANGE] "undefined" という channel_id は使用できなくなりました
- undefined は channel_id が設定されずにエラーが発生した場合のログなどに使用されます
- [CHANGE] sys.config の認証 URL を auth_url から auth_webhook_url に変更しました
- [CHANGE] sys.config のウェブフック URL を webhook_url から event_webhook_url に変更しました
- [CHANGE] ウェブフックのログファイルを webhook.log から event_webhook_log に変更しました
- [CHANGE] 認証の判断を HTTP ステータスコードから戻りの JSON に変更しました
- 今までは HTTP ステータスコード 200 を認証成功、それ以外を認証失敗としていましたが戻りの JSON で判断するように変更しました
- ステータスコードは成功でも失敗でも 200 番台系である必要があります
- 認証成功の場合は {"allowed": true} 認証失敗の場合は {"allowed": false, "reason": "failure reason"} を戻す必要があります
- [CHANGE] metadata の取り扱いを変更しました
- auth_response_with_metadata という設定は削除されました
- アプリケーション側が認証成功時の戻り JSON に {"metadata": "<JSON>"} を戻すことで metadata がクライアントまで送られるようになりました
- "metadata" はそのままクライアントに "meatadata": "<JSON>" として送られるようになります
- [CHANGE] signaling.* という通知はなくなり connection.* という通知に変更しました
- より扱いやすいタイミングへの通知に変更しました
- 名前が変わっただけでなくタイミングも変わりました
- [UPDATE] イベントウェブフックで送られる値に access_token を含むようにしました
- [UPDATE] シグナリングのエラー通知を増やしました
- [CHANGE] type: notification を type: notify に変更しました
- 実験的機能として提供中
- [FIX] シグナリング失敗時に role と channel_id が入らない問題を修正しました
- [UPDATE] PCMU 録音時にメモリを使用せず、一時的にディスクに書き込む仕組みを追加しました。
- この機能により長時間の録音でもメモリを消費することがなくなりました
- [ADD] 組み込み UI を追加しました
- 実験的機能として提供中
- 各クライアントの統計情報を確認できるようになりました
3.0.2¶
- リリース:
2016-09-06
- 対応 Chrome:
M52
- 対応 Firefox:
48
- [FIX] 2016 年 9 月 6 日付の Chrome Canary M55 では、WebRTC 暗号部分が Google 独自の方式に非対応だったために Sora が動作しない問題を修正しました
3.0.0¶
- リリース:
2016-08-31
- 対応 Chrome:
M52
- 対応 Firefox:
48
- [CHANGE] WebRTC の通信が確立したタイミングのフック名を signaling.compileted に変更しました
- transport.encrypted から singnaling.completed に変更しました
- [ADD] スナップショット機能を追加しました
- 映像を受け取らず音声だけの場合に、映像のスナップショットをシグナリング経由で受け取る機能です
- WebP という画像フォーマット形式で出力しています
- 映像から無変換で画像を切り出しているため、映像コーデックが VP8 で Chrome でのみ表示できます
- [ADD] WebM-DASH ライブストリーミング機能を追加しました
- この機能は実験的機能で 3.x で正式版をリリース予定です
- WebRTC 経由で送られてきた映像を MPEG-DASH 形式に無変換でファイルを生成する仕組みです
- この技術で CDN を使うことができるようになるため、 WebRTC では限界のあった配信数を大幅に増やすことができます
- 遅延が 1 分以上発生します
- [ADD] 録画機能で音声だけの録音に対応しました
- 今までは映像または映像と音声の組み合わせのみでしたが、今後は音声のみでも録音できるようになりました
- [ADD] 音声コーデックに PCMU を選択できるようになりました
- [ADD] PCMU を録音できるようになりました
- wav ファイルを出力します
- 現時点ではオンメモリでの保存のため、メモリを消費します
- 3.x でディスク書き込みに対応予定です
- [ADD] 配信者が映像で使用可能な最大ビットレートを指定できるようになりました
- リリース時点では Chrome のみで、Firefox では 2016 年 9 月にリリース予定の Firefox 49 から使用できます
- [ADD] Chrome でマルチストリーム機能が使用可能になりました
- この機能は実験的機能で 3.x で正式版をリリース予定です
- [FIX] Firefox で Generic NACK が有効になっていなかったのを修正しました
- [FIX] 音声と映像が出力されない場合のエラーを修正しました
2.6.0¶
- リリース:
2016-07-15
- 対応 Chrome:
M51
- 対応 Firefox:
47
- [UPDATE] TURN の NONCE が古い場合は 438 を返すように変更しました
- [FIX] TURN 機能がマルチストリーム使用時にも使えるようになりました
- [ADD] Push API を追加しました
- PushChannel API
- 特定のチャネル全員にメッセージを配信します
- PushClient API
- 特定のクライアントにメッセージを配信します
- PushUpstream API
- 配信者に対してメッセージを配信します
- PushDownstream API
- 視聴者全員に対してメッセージを配信します
- PushChannel API
2.5.0¶
- リリース:
2016-07-06
- 対応 Chrome:
M51
- 対応 Firefox:
47
- [UPDATE] VP8/VP9 においてキーフレームからの開始を強制するようにしました
- [UPDATE] SDP の情報が不足していた場合にシグナリング経由でエラーを通知するた機能を追加しました
- [ADD] ベータ機能として type: notification を追加しました
- [ADD] 視聴者側からの RTCP-RR における RTPFB の TMMBN に対応しました
- [FIX] たまに視聴者に接続開始から数十秒配信がされなくなる問題を修正しました
- [ADD] シグナリングを使ってチャネル接続クライアントにメッセージを送る type: broadcast を追加しました
2.4.0¶
- 日時:
2016-06-24
- 対応 Chrome:
M51
- 対応 Firefox:
47
CPU リソースの消費を抑えるなど全体的なパフォーマンスが向上しました
- [CHANGE] api_port の sys.config に設定されている初期の値を 6000 から 3000 に変更しました
- [ADD] ブラウザからクロスドメインでの HTTP API が使えるようになる api_cors_origin という設定を追加しました
- [ADD] 視聴者参加時に視聴者を配信者から視聴者へ戻す API を追加しました
- DowngradeRole API を使うことで配信者を視聴者に戻すことができるようになります
- [ADD] 組み込み TURN 機能を追加しました
- [ADD] ベータ機能としてネットワークライセンス認証の仕組みを追加しました
- [FIX] 配信者側のカメラ切り替えをしたとしても視聴者側が停止しない仕組みを追加しました
2.3.0¶
- 日時:
2016-06-08
- 対応 Chrome:
M51
- 対応 Firefox:
47
- [ADD] 録画時に一時ファイルを作成して録画するように変更しました
- 録画ファイルの一時的置き場を指定する archive_tmp_dir 設定が追加されました
- ディスク容量のあくかぎり、長時間の録画が可能になりました
- [CHANGE] 録画ディレクトリ指定の設定名が archive_filepath から archive_dir に変更しました
- 設定ファイルの互換性が無くなりました
- [UPDATE] RTCP-RR で戻す統計情報が RFC に準拠しました
- [ADD] 実験的機能としてマルチストリームを使った視聴者参加機能を追加しました
- 視聴者に対して API 経由で配信者に切り替えを行えます
2.2.0¶
- 日時:
2016-05-30
- 対応 Chrome:
M51
- 対応 Firefox:
46
- [ADD] ビデオコーデックで VP9 形式の録画機能を追加しました
- [CHANGE] archive.finished フック内のパラメータを codec_type から codec_name に変更しました
- [CHANGE] ListRecording API 内のパラメータを codec_type から codec_name に変更しました
- [UPDATE] 視聴者が指定したメディアのみを受け取れるようになりました
2.1.0¶
- 日時:
2016-05-18
- 対応 Chrome:
M50
- 対応 Firefox:
46
- [ADD] 録画失敗時のフック archive.failed を追加しました
- [CHANGE] マルチストリーム周りの動作を変更しました
- すべてをマルチストリームベースにするための仕組みを少しずついれています詳細についてはお問い合わせください
2.0.0¶
- 日時:
2016-05-02
- 対応 Chrome:
M50
- 対応 Firefox:
46
既存の API との互換性が無くなりました
- [CHANGE] Stream API が無くなり Webhook に変更しました
- [CHANGE] Action API が通常の API に名前を変更しました
- [CHANGE] すべての JSON のキーに使用する形式を camelCase から snake_case に変更しました
- [ADD] 配信側のコーデックを指定できるようにしました
- [ADD] 無変換での VP8 コーデックと Opus に対応した録画機能を追加しました
1.2.0¶
- 日時:
2016-03-16
- 対応 Chrome:
M49
- 対応 Firefox:
45
- [FIX] 視聴時に UDP で異常が発生した場合、シグナリング部分を正常終了するようにしました
- [ADD] 認証成功時と失敗時にあいてから送られてきた JSON を metadata: として戻す機能を追加しました
- [ADD] Generic NACK に対応しました
- [BETA] 実験的に配信側のコーデックを指定できるようにしました
- [BETA] 実験的に VP8 コーデックに対応した録画機能を追加しました
1.1.4¶
- 日時:
2016-03-14
- 対応 Chrome:
M49
- 対応 Firefox:
45
- [FIX] candidate が Answer 到着前に来た場合、保留しておいて Answer 到着時に最優先で返す対応を追加しました
- [FIX] Event API で渡す JSON が sanke_case になっているのを camelCase に修正しました
1.1.0¶
- 日時:
2016-02-09
- 対応 Chrome:
M48
- 対応 Firefox:
44
- [BETA] 実験的に Firefox 44 以降の Multistream 対応に対応しました
- [ADD] RTCP-RR の動的処理を行うように変更しました
- [UPDATE] CentOS 7.1 へのパッケージを提供開始しました
- [CHANGE] DTLS 1.2 のみの対応に変更しました
- Chrome は M48 から DTLS 1.2 に対応しました
- [CHANGE] 使用する暗号方式を ECDHE-ECDSA-AES-GCM のみの対応に変更しました
1.0.1¶
- 日時:
2015-12-16
- 対応 Chrome:
M47
- 対応 Firefox:
43
- [FIX] connect upstream 時の Offer SDP ログを保存し忘れていたのを修正しました
- [FIX] elasped time を 30 秒から 60 秒に変更しました
1.0.0¶
- 対応 Chrome:
M47
- 対応 Firefox:
43