API録画ストレージ設定 APIpostAWS S3 録画ストレージ設定登録getAWS S3 録画ストレージ設定取得delAWS S3 録画ストレージ設定リセットRoom 録画 APIpostRoom の録画開始postRoom の録画停止スキーマAwsS3RecordingStorageConfigファイルスキーマConnectionRecordingMetadataCompositionRecordingMetadataIDStringAPI docs by RedoclyRICOH Live Streaming REST API: 録画 API (v1)Download OpenAPI specification:DownloadRICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。本ページは録画 API の仕様について記載します。録画機能についてクラウド録画機能 は、現在 β 版として提供しております。そのため、商用サービスでの利用をご検討される際には、必ず事前にお問い合わせください。β 版のクラウド録画機能の利用料金は無料です。正式版は有償での提供を検討しておりますので、あらかじめご了承ください。正式版を公開せずに β 版の公開を終了する、もしくは、正式版では β 版から機能や仕様が変更される可能性がありますので、あらかじめご了承ください。クラウド録画機能に関連して現在発生している問題はRICOH Live Streaming クラウド既知の問題を確認してください。録画 API についてRoomInstance に対する録画の開始と停止を行うには、Room 管理 API にある Room 録画 API を使用します。Room 録画 API を使用することで、ある RoomInstance に対して、任意のタイミングでの録画の開始、停止、再開が可能です。また、Room 録画 API から録画開始を指定する以外にも、AccessToken にある recording_on_start 設定を使用することで、RoomInstance の生成時点からの録画が可能です。ただし、録画データの保存先として、事前に本ページの 録画ストレージ設定 API を利用してお客様の管理するクラウドストレージを設定しておく必要があります。お客様ストレージに保存する録画ファイル仕様お客様のストレージに録画データを保存することを指定した場合、 保存先に指定されたURLから以下の保存パス仕様に示すパスに録画ファイルと録画ファイルに関連するメタデータファイルが保存されます。録画ファイルには以下の種類があり、どの録画ファイルを保存するかを AccessToken で設定できます。単一拠点録画ファイル: プレイヤーでの再生を考慮して、コーデックやフォーマット変換、I フレーム挿入などのトランスコーディングが行われた単一の拠点ごとに録画されたファイル生の録画ファイル: 単一拠点録画ファイルは上述のようなトランスコーディングが行われますが、それを行わずに配信時の映像/音声データをそのまま保存したものを生の録画ファイルと呼びます配信側のクライアントで不可逆圧縮されているので、主にプロユースにおける可逆圧縮という意味でのいわゆる「Raw 動画」とは異なります合成録画ファイル: 指定された単一拠点録画ファイルを合成して 1 つにした録画ファイル録画を実行した場合、各拠点について、単一拠点録画メタデータファイル、Connection 履歴ファイル、Video Track 履歴ファイル、Audio Track 履歴ファイルは常に保存されます。また、合成録画を有効にした場合、合成録画メタデータファイルが保存されます。保存ファイル仕様単一拠点録画ファイル保存パス: /{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstance の存在開始時刻}-{ConnectionInstance の存在終了時刻}.mp4拠点の Connection が以下のいずれかの条件を満たす場合、単一拠点録画ファイルは保存されませんAccessToken の JWTClaims で connection_spec.recording.store の値を false にした録画期間中、常に映像/音声ともに HardMute だった生の録画ファイル保存パス: /{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstanceの録画開始時刻}-{ConnectionInstanceの録画終了時刻}_raw.webm拠点の Connection が以下のいずれかの条件を満たす場合、生の録画ファイルは保存されませんAccessToken の JWTClaims で connection_spec.recording.store_raw の値を false か未設定にした録画期間中、常に映像/音声ともに HardMute だった単一拠点録画メタデータファイル保存パス: /{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstance の存在開始時刻}-{ConnectionInstance の存在終了時刻}.json本ページの ConnectionRecordingMetadata のスキーマを持つ JSON であり、以下のどちらかの形式を持ちますConnectionRecordingMetadataWithMediaFile: 単一拠点録画ファイルが保存される拠点のメタデータ形式ConnectionRecordingMetadataWithoutMediaFile: 単一拠点録画ファイルが保存されない拠点のメタデータ形式単一拠点録画ファイルが保存されない拠点の Connection でも、録画期間中に RoomInstance に参加していれば、単一拠点録画メタデータファイルは保存されます合成録画ファイル保存パス: /{room_id}/{RoomInstanceの開始時刻}/{Sequence}/compositions/{RoomInstance の録画開始時刻}-{RoomInstance の録画終了時刻}.mp4録画期間中、すべての参加拠点の単一拠点録画ファイルが常に映像/音声ともに HardMute だった場合は合成録画ファイルも保存されません合成録画メタデータファイル保存パス: /{room_id}/{RoomInstanceの開始時刻}/{Sequence}/compositions/{RoomInstance の録画開始時刻}-{RoomInstance の録画終了時刻}.json本ページの CompositionRecordingMetadata のスキーマを持つ JSON 形式録画期間中、常に映像/音声ともに HardMute だった Connection については CompositionRecordingMetadata の connection 属性の配列に含まれません保存ファイル仕様の詳細説明保存パスに含まれる時刻は UTC で yyyyMMddhhmmss の形式になりますSequence は、1 つの RoomInstance の生存期間中に行った録画の通し番号です1 から始まり、録画を開始する度にインクリメントされます現状は AccessToken の recording_on_start 設定による RoomInstance 全体の録画のみ可能ですが、今後 REST API による任意のタイミングでの録画の開始/停止に対応予定ですConnectionInstance の存在開始時刻/存在終了時刻 とは、ConnectionInstance が RoomInstanceに入室/退出した期間と RoomInstance の録画期間の重なる期間です単一拠点録画ファイルの詳細な仕様途中で解像度が変わる映像の仕様配信中にカメラを縦向きから横向きに回転させた場合など、映像の解像度が途中で切り替わるケースがあります。このときの録画データは次の仕様となります。1 フレーム目の解像度から以下のルールにより、映像全体の解像度が定まり固定されます幅が高さ以上の場合そのままの解像度が採用されます解像度が 1280x720 だった場合、解像度は 1280x720 となります幅が高さ未満の場合1 フレーム目の高さに合わせて 16:9 の解像度となります解像度が 720x1280 だった場合、解像度は 2276x1280 となります2 フレーム以降で解像度の変化があったとき、固定された解像度にあわせて映像が拡大または縮小します映像のアスペクト比を維持するために必要な場合、黒色の余白が追加されます解像度の高さか幅が奇数になる映像の仕様1フレーム目の解像度の高さか幅が奇数の場合、録画ファイルでは偶数に調整されます。たとえば、解像度が 321x243 の場合、出力解像度は 322x244 となります。また、「途中で解像度が変わる映像について」に記載の通りに解像度を算出後、解像度の高さか幅が奇数であった場合は調整が実施されます。たとえば、解像度が 720x1283 だった場合、算出後の解像度は 2281x1283 となりますが、出力解像度は 2282x1284 となります。映像のアスペクト比を維持するために必要な場合、黒色の余白が追加されます。共通仕様API の認証/認可に失敗した場合、ステータスコード 401 のレスポンスが返却されます録画ストレージ設定 APIAWS S3 録画ストレージ設定登録 レスポンスボディからsecret_access_keyフィールドは取り除かれますすでに録画ストレージ設定が登録済みだった場合、既存の設定は上書きされますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDRequest Body schema: application/jsonAWS S3 の録画ストレージ設定を更新するための AwsS3RecordingStorageConfig オブジェクトs3_urlrequiredstring <= 255 characters 録画ファイルを保存するための S3 バケットの仮想ホスティング URLバケットの仮想ホスティングについては以下のドキュメントを参照のことバケットの仮想ホスティングについて を参照URL のスタイルとして、仮想ホスティング形式を利用することhttps://
.s3..amazonaws.com/access_key_idrequiredstring S3 バケットにアクセスするための IAM ユーザのアクセスキーIAM ユーザとアクセスキーの作成に関しては以下のドキュメントを参照のことIAMユーザの作成カスタムポリシーの設定アクセスキーの作成カスタムポリシーの設定は、以下のように録画ファイルの保存に最低限のものにすること{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAll", "Effect": "Deny", "NotAction": "*", "Resource": "*" }, { "Sid": "AllowS3Upload", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::/*" ] } ]}secret_access_keyrequiredstring S3 バケットにアクセスするための IAM ユーザのシークレットアクセスキーアクセスキーと共に生成されたシークレットResponses200 作成された AwsS3RecordingStorageConfig オブジェクト400 リクエストボディ不正error_id の値invalid_parameter: リクエストボディのパラメータの不正、options のキーに不正だったプロパティ名が入るpost/clients/{client_id}/recording_storages/aws_s3/registerv1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/recording_storages/aws_s3/register Request samples PayloadContent typeapplication/jsonCopy{"s3_url": "string","access_key_id": "string","secret_access_key": "string"} Response samples 200400Content typeapplication/jsonCopy{"s3_url": "string","access_key_id": "string","secret_access_key": "string"}AWS S3 録画ストレージ設定取得 レスポンスボディから secret_access_key フィールドは取り除かれますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDResponses200 AwsS3RecordingStorageConfig オブジェクト404 録画ストレージ設定が未登録get/clients/{client_id}/recording_storages/aws_s3v1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/recording_storages/aws_s3 Response samples 200Content typeapplication/jsonCopy{"s3_url": "string","access_key_id": "string","secret_access_key": "string"}AWS S3 録画ストレージ設定リセット Authorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDResponses204 リセット成功404 録画ストレージ設定が未登録delete/clients/{client_id}/recording_storages/aws_s3v1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/recording_storages/aws_s3Room 録画 APIRoom の録画開始 sfu または sfu_large が指定された Room の録画を開始しますp2p または p2p_turn 指定の Room は録画に非対応です録画中に呼び出した場合は、何もせず 200 を返します現在の録画状態は、Room API のGETで取得できます録画の停止直後に開始を実行すると、waiting_recording_complete エラーが発生しますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDroom_idrequiredstring Room IDquery Parametersenvstring (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可Responses200 録画開始の受付に成功レスポンスボディは現在の録画状態を表します400 invalid_room_type指定した client_id と room_id に対応する Room が P2P 接続のため録画に対応していないwaiting_recording_complete直前の録画の処理がまだ完了していないために録画を開始できない404 指定した client_id と room_id に対応する Room が存在しない500 内部サーバーエラーで録画の開始に失敗したpost/clients/{client_id}/rooms/{room_id}/recording/startv1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/rooms/{room_id}/recording/start Response samples 200400404500Content typeapplication/jsonCopy{"in_recording": true}Room の録画停止 sfu または sfu_large が指定された Room の録画を停止しますp2p または p2p_turn 指定の Room は録画に非対応です録画の停止中に呼び出した場合は、何もせず 200 を返します現在の録画状態は、Room API の GET で取得できますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDroom_idrequiredstring Room IDquery Parametersenvstring (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可Responses200 録画停止の受付に成功レスポンスボディは現在の録画状態を表します400 指定した client_id と room_id に対応する Room が P2P 接続のため録画に対応していない404 指定した client_id と room_id に対応する Room が存在しない500 内部サーバーエラーで録画の停止に失敗したpost/clients/{client_id}/rooms/{room_id}/recording/stopv1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/rooms/{room_id}/recording/stop Response samples 200400404500Content typeapplication/jsonCopy{"in_recording": true}AwsS3RecordingStorageConfigs3_urlrequiredstring <= 255 characters 録画ファイルを保存するための S3 バケットの仮想ホスティング URLバケットの仮想ホスティングについては以下のドキュメントを参照のことバケットの仮想ホスティングについて を参照URL のスタイルとして、仮想ホスティング形式を利用することhttps://.s3..amazonaws.com/access_key_idrequiredstring S3 バケットにアクセスするための IAM ユーザのアクセスキーIAM ユーザとアクセスキーの作成に関しては以下のドキュメントを参照のことIAMユーザの作成カスタムポリシーの設定アクセスキーの作成カスタムポリシーの設定は、以下のように録画ファイルの保存に最低限のものにすること{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAll", "Effect": "Deny", "NotAction": "*", "Resource": "*" }, { "Sid": "AllowS3Upload", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::/*" ] } ]}secret_access_keyrequiredstring S3 バケットにアクセスするための IAM ユーザのシークレットアクセスキーアクセスキーと共に生成されたシークレットCopy{"s3_url": "string","access_key_id": "string","secret_access_key": "string"}ConnectionRecordingMetadata One of ConnectionRecordingMetadataWithMediaFileConnectionRecordingMetadataWithoutMediaFileroom_idrequiredstring Room の IDroom_instance_idrequiredstring ある Room の生死単位で割り振られる IDrecording_idrequiredstring Recording の IDconnection_idrequiredstring Connection の IDconnection_instance_idrequiredstring ある Connection の生死単位で割り振られる IDexists_sincerequiredstring ConnectionInstance の存在開始時刻。ConnectionInstance が RoomInstance に入室した時刻と RoomInstance の録画開始時刻の内遅い時刻 (ISO8601)exists_untilrequiredstring ConnectionInstance の存在終了時刻。ConnectionInstance が RoomInstance から退出した時刻と RoomInstance の録画終了時刻の内早い時刻 (ISO8601)started_atrequiredstring ConnectionInstance の録画開始時刻。ただし、録画開始時に ConnectionInstance の映像音声の双方が hardmute であった場合、最初にどちらかが unmute になった時刻 (ISO8601)ended_atrequiredstring ConnectionInstance の録画終了時刻。ただし、録画終了時に ConnectionInstance の映像音声の双方が hardmute であった場合、最後に双方が hardmute になった時刻 (ISO8601)formatstring Value: "mp4" メディアファイルのフォーマット単一拠点録画ファイルを保存せずに生の録画ファイルのみを保存する場合は空videoobject (ConnectionRecordingVideoMetadata) 録画の映像データに関するメタデータ録画ファイルが映像データを持たない場合は空audioobject (RecordingAudioMetadata) 録画の音声データに関するメタデータ録画ファイルが音声データを持たない場合は空raw_recordingobject (RawConnectionRecordingMetadata) 生の録画に関するメタデータ生の録画ファイルを保存せずに単一拠点録画ファイルのみを保存する場合は空ExampleConnectionRecordingMetadataWithMediaFileConnectionRecordingMetadataWithoutMediaFileConnectionRecordingMetadataWithMediaFileCopy Expand all Collapse all {"room_id": "string","room_instance_id": "string","recording_id": "string","connection_id": "string","connection_instance_id": "string","exists_since": "2019-08-24T14:15:22Z","exists_until": "2019-08-24T14:15:22Z","started_at": "2019-08-24T14:15:22Z","ended_at": "2019-08-24T14:15:22Z","format": "mp4","video": {"codec": "h264","width": 0,"height": 0},"audio": {"codec": "aac"},"raw_recording": {"format": "webm","video": {"codec": "h264","width": 0,"height": 0},"audio": {"codec": "opus"}}}CompositionRecordingMetadataroom_idrequiredstring Room の IDrecording_idrequiredstring Recording の IDconnectionsrequiredArray of objects (ConnectionMetadata) 合成録画に含まれる ConnectionMetadata の配列started_atrequiredstring RoomInstance の録画開始時刻。ただし、録画開始時に全 ConnectionInstance の映像音声の双方が hardmute であった場合、最初にある ConnectionInstance のどちらかが unmute になった時刻 (ISO8601)ended_atrequiredstring RoomInstance の録画終了時刻。ただし、録画終了時に全 ConnectionInstance の映像音声の双方が hardmute であった場合、最後にある ConnectionInstance の双方が hardmute になった時刻 (ISO8601)formatrequiredstring Value: "mp4" メディアファイルのフォーマットvideoobject (CompositionRecordingVideoMetadata) 録画の映像データに関するメタデータaudioobject (RecordingAudioMetadata) 録画の音声データに関するメタデータ録画ファイルが音声データを持たない場合は空Copy Expand all Collapse all {"room_id": "string","recording_id": "string","connections": [{"connection_id": "string","started_at": "2019-08-24T14:15:22Z","ended_at": "2019-08-24T14:15:22Z"}],"started_at": "2019-08-24T14:15:22Z","ended_at": "2019-08-24T14:15:22Z","format": "mp4","video": {"codec": "vp9","max_bitrate_kbps": 100,"width": 0,"height": 0},"audio": {"codec": "aac"}}IDStringstring (IDString) ^[a-zA-Z0-9.%+^_"`{|}~<>\\\\-]{1,255}$ 1 文字以上 255 文字以下ASCII以下の文字のみ許可英数字次の記号: .%+^_"`{|}~<>\-Copy"string" const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.2","info":{"title":"RICOH Live Streaming REST API: 録画 API","version":"v1","description":"RICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。\n\n本ページは録画 API の仕様について記載します。\n\n### 録画機能について\n\n**クラウド録画機能 は、現在 β 版として提供しております。**
\n**そのため、商用サービスでの利用をご検討される際には、必ず事前にお問い合わせください。**
\n**β 版のクラウド録画機能の利用料金は無料です。正式版は有償での提供を検討しておりますので、あらかじめご了承ください。**
\n**正式版を公開せずに β 版の公開を終了する、もしくは、正式版では β 版から機能や仕様が変更される可能性がありますので、あらかじめご了承ください。**
\n**クラウド録画機能に関連して現在発生している問題はRICOH Live Streaming クラウド既知の問題を確認してください。**\n\n### 録画 API について\n\nRoomInstance に対する録画の開始と停止を行うには、Room 管理 API にある Room 録画 API を使用します。 \nRoom 録画 API を使用することで、ある RoomInstance に対して、任意のタイミングでの録画の開始、停止、再開が可能です。 \nまた、Room 録画 API から録画開始を指定する以外にも、AccessToken にある recording_on_start 設定を使用することで、RoomInstance の生成時点からの録画が可能です。\n\nただし、録画データの保存先として、事前に本ページの [録画ストレージ設定 API](#tag/api_recording_storage_config) を利用してお客様の管理するクラウドストレージを設定しておく必要があります。\n\n### お客様ストレージに保存する録画ファイル仕様\n\nお客様のストレージに録画データを保存することを指定した場合、 保存先に指定されたURLから以下の**保存パス仕様**に示すパスに録画ファイルと録画ファイルに関連するメタデータファイルが保存されます。\n録画ファイルには以下の種類があり、どの録画ファイルを保存するかを AccessToken で設定できます。\n- **単一拠点録画ファイル**: プレイヤーでの再生を考慮して、コーデックやフォーマット変換、I フレーム挿入などのトランスコーディングが行われた単一の拠点ごとに録画されたファイル\n- **生の録画ファイル**: 単一拠点録画ファイルは上述のようなトランスコーディングが行われますが、それを行わずに配信時の映像/音声データをそのまま保存したものを生の録画ファイルと呼びます\n - 配信側のクライアントで不可逆圧縮されているので、主にプロユースにおける可逆圧縮という意味でのいわゆる「Raw 動画」とは異なります\n- **合成録画ファイル**: 指定された単一拠点録画ファイルを合成して 1 つにした録画ファイル\n\n録画を実行した場合、各拠点について、単一拠点録画メタデータファイル、Connection 履歴ファイル、Video Track 履歴ファイル、Audio Track 履歴ファイルは常に保存されます。\nまた、合成録画を有効にした場合、合成録画メタデータファイルが保存されます。\n\n**保存ファイル仕様**\n\n- 単一拠点録画ファイル\n - 保存パス: `/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstance の存在開始時刻}-{ConnectionInstance の存在終了時刻}.mp4`\n - 拠点の Connection が以下のいずれかの条件を満たす場合、単一拠点録画ファイルは保存されません\n - AccessToken の JWTClaims で `connection_spec.recording.store` の値を `false` にした\n - 録画期間中、常に映像/音声ともに HardMute だった\n\n- 生の録画ファイル\n - 保存パス: `/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstanceの録画開始時刻}-{ConnectionInstanceの録画終了時刻}_raw.webm`\n - 拠点の Connection が以下のいずれかの条件を満たす場合、生の録画ファイルは保存されません\n - AccessToken の JWTClaims で `connection_spec.recording.store_raw` の値を `false` か未設定にした\n - 録画期間中、常に映像/音声ともに HardMute だった\n\n- 単一拠点録画メタデータファイル\n - 保存パス: `/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstance の存在開始時刻}-{ConnectionInstance の存在終了時刻}.json`\n - 本ページの `ConnectionRecordingMetadata` のスキーマを持つ JSON であり、以下のどちらかの形式を持ちます\n - `ConnectionRecordingMetadataWithMediaFile`: 単一拠点録画ファイルが保存される拠点のメタデータ形式\n - `ConnectionRecordingMetadataWithoutMediaFile`: 単一拠点録画ファイルが保存されない拠点のメタデータ形式\n - 単一拠点録画ファイルが保存されない拠点の Connection でも、録画期間中に RoomInstance に参加していれば、単一拠点録画メタデータファイルは保存されます\n\n- 合成録画ファイル\n - 保存パス: `/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/compositions/{RoomInstance の録画開始時刻}-{RoomInstance の録画終了時刻}.mp4`\n - 録画期間中、すべての参加拠点の単一拠点録画ファイルが常に映像/音声ともに HardMute だった場合は合成録画ファイルも保存されません\n\n- 合成録画メタデータファイル\n - 保存パス: `/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/compositions/{RoomInstance の録画開始時刻}-{RoomInstance の録画終了時刻}.json`\n - 本ページの `CompositionRecordingMetadata` のスキーマを持つ JSON 形式\n - 録画期間中、常に映像/音声ともに HardMute だった Connection については `CompositionRecordingMetadata` の `connection` 属性の配列に含まれません\n\n**保存ファイル仕様の詳細説明**\n- 保存パスに含まれる時刻は UTC で `yyyyMMddhhmmss` の形式になります\n- `Sequence` は、1 つの RoomInstance の生存期間中に行った録画の通し番号です\n - 1 から始まり、録画を開始する度にインクリメントされます\n - 現状は AccessToken の `recording_on_start` 設定による RoomInstance 全体の録画のみ可能ですが、今後 REST API による任意のタイミングでの録画の開始/停止に対応予定です\n- `ConnectionInstance の存在開始時刻/存在終了時刻` とは、ConnectionInstance が RoomInstanceに入室/退出した期間と RoomInstance の録画期間の重なる期間です\n\n \n\n### 単一拠点録画ファイルの詳細な仕様\n\n#### 途中で解像度が変わる映像の仕様\n\n配信中にカメラを縦向きから横向きに回転させた場合など、映像の解像度が途中で切り替わるケースがあります。\nこのときの録画データは次の仕様となります。\n\n- 1 フレーム目の解像度から以下のルールにより、映像全体の解像度が定まり固定されます\n - 幅が高さ以上の場合\n - そのままの解像度が採用されます\n - 解像度が 1280x720 だった場合、解像度は 1280x720 となります\n - 幅が高さ未満の場合\n - 1 フレーム目の高さに合わせて 16:9 の解像度となります\n - 解像度が 720x1280 だった場合、解像度は 2276x1280 となります\n- 2 フレーム以降で解像度の変化があったとき、固定された解像度にあわせて映像が拡大または縮小します\n - 映像のアスペクト比を維持するために必要な場合、黒色の余白が追加されます\n\n#### 解像度の高さか幅が奇数になる映像の仕様\n\n1フレーム目の解像度の高さか幅が奇数の場合、録画ファイルでは偶数に調整されます。 \nたとえば、解像度が 321x243 の場合、出力解像度は 322x244 となります。 \nまた、「途中で解像度が変わる映像について」に記載の通りに解像度を算出後、解像度の高さか幅が奇数であった場合は調整が実施されます。 \nたとえば、解像度が 720x1283 だった場合、算出後の解像度は 2281x1283 となりますが、出力解像度は 2282x1284 となります。\n映像のアスペクト比を維持するために必要な場合、黒色の余白が追加されます。\n\n### 共通仕様\n- API の認証/認可に失敗した場合、ステータスコード 401 のレスポンスが返却されます\n"},"servers":[{"url":"https://api.livestreaming.mw.smart-integration.ricoh.com/v1","description":"v1 Endpoint"}],"x-tagGroups":[{"name":"API","tags":["api_recording_storage_config","api_room_recording"]},{"name":"スキーマ","tags":["aws_s3_recording_storage_config"]},{"name":"ファイルスキーマ","tags":["connection_recording_metadata","composition_recording_metadata","id_string"]}],"tags":[{"name":"api_recording_storage_config","x-displayName":"録画ストレージ設定 API"},{"name":"api_room_recording","x-displayName":"Room 録画 API"},{"name":"aws_s3_recording_storage_config","x-displayName":"AwsS3RecordingStorageConfig","description":""},{"name":"connection_recording_metadata","x-displayName":"ConnectionRecordingMetadata","description":""},{"name":"composition_recording_metadata","x-displayName":"CompositionRecordingMetadata","description":""},{"name":"connection_metadata","x-displayName":"ConnectionMetadata","description":""},{"name":"id_string","x-displayName":"IDString","description":""},{"name":"connection_history","x-internal":true,"x-displayName":"ConnectionHistory","description":""},{"name":"track_history","x-internal":true,"x-displayName":"TrackHistory","description":""},{"name":"meta","x-internal":true,"x-displayName":"Meta","description":""},{"name":"track_sdk_meta","x-internal":true,"x-displayName":"TrackSdkMeta","description":""}],"paths":{"/clients/{client_id}/recording_storages/aws_s3/register":{"post":{"summary":"AWS S3 録画ストレージ設定登録","description":"- レスポンスボディから`secret_access_key`フィールドは取り除かれます\n- すでに録画ストレージ設定が登録済みだった場合、既存の設定は上書きされます\n","tags":["api_recording_storage_config"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"}],"requestBody":{"$ref":"#/components/requestBodies/requestBody"},"responses":{"200":{"$ref":"#/components/responses/200"},"400":{"$ref":"#/components/responses/400"}}}},"/clients/{client_id}/recording_storages/aws_s3":{"get":{"summary":"AWS S3 録画ストレージ設定取得","description":"レスポンスボディから `secret_access_key` フィールドは取り除かれます","tags":["api_recording_storage_config"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"}],"responses":{"200":{"$ref":"#/components/responses/responses-200"},"404":{"description":"録画ストレージ設定が未登録"}}},"delete":{"summary":"AWS S3 録画ストレージ設定リセット","tags":["api_recording_storage_config"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"}],"responses":{"204":{"$ref":"#/components/responses/204"},"404":{"description":"録画ストレージ設定が未登録"}}}},"/clients/{client_id}/rooms/{room_id}/recording/start":{"post":{"summary":"Room の録画開始","description":"- sfu または sfu_large が指定された Room の録画を開始します\n - p2p または p2p_turn 指定の Room は録画に非対応です\n- 録画中に呼び出した場合は、何もせず 200 を返します\n- 現在の録画状態は、Room API のGETで取得できます\n- 録画の停止直後に開始を実行すると、waiting_recording_complete エラーが発生します\n","tags":["api_room_recording"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"},{"$ref":"#/components/parameters/room_id"},{"$ref":"#/components/parameters/env"}],"responses":{"200":{"description":"- 録画開始の受付に成功\n- レスポンスボディは現在の録画状態を表します\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingStatus"}}}},"400":{"description":"- invalid_room_type\n - 指定した client_id と room_id に対応する Room が P2P 接続のため録画に対応していない\n- waiting_recording_complete\n - 直前の録画の処理がまだ完了していないために録画を開始できない\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["invalid_room_type","waiting_recording_complete"]}}}]}}}},"404":{"description":"- 指定した client_id と room_id に対応する Room が存在しない\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["not_found"]}}}]}}}},"500":{"description":"内部サーバーエラーで録画の開始に失敗した","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["internal_server_error"]}}}]}}}}}}},"/clients/{client_id}/rooms/{room_id}/recording/stop":{"post":{"summary":"Room の録画停止","description":"- sfu または sfu_large が指定された Room の録画を停止します\n - p2p または p2p_turn 指定の Room は録画に非対応です\n- 録画の停止中に呼び出した場合は、何もせず 200 を返します\n- 現在の録画状態は、Room API の GET で取得できます\n","tags":["api_room_recording"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"},{"$ref":"#/components/parameters/room_id"},{"$ref":"#/components/parameters/env"}],"responses":{"200":{"description":"- 録画停止の受付に成功\n- レスポンスボディは現在の録画状態を表します\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingStatus"}}}},"400":{"description":"- 指定した client_id と room_id に対応する Room が P2P 接続のため録画に対応していない\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["invalid_room_type"]}}}]}}}},"404":{"description":"- 指定した client_id と room_id に対応する Room が存在しない\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["not_found"]}}}]}}}},"500":{"description":"内部サーバーエラーで録画の停止に失敗した","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["internal_server_error"]}}}]}}}}}}}},"components":{"schemas":{"AwsS3RecordingStorageConfig":{"type":"object","description":"- 録画ファイルを保存するための S3 バケットとクレデンシャルの設定\n","required":["s3_url","access_key_id","secret_access_key"],"properties":{"s3_url":{"type":"string","maxLength":255,"description":"- 録画ファイルを保存するための S3 バケットの仮想ホスティング URL\n- バケットの仮想ホスティングについては以下のドキュメントを参照のこと\n - バケットの仮想ホスティングについて を参照\n- URL のスタイルとして、仮想ホスティング形式を利用すること\n - `https://.s3..amazonaws.com/`\n"},"access_key_id":{"type":"string","description":"- S3 バケットにアクセスするための IAM ユーザのアクセスキー\n- IAM ユーザとアクセスキーの作成に関しては以下のドキュメントを参照のこと\n - IAMユーザの作成\n - カスタムポリシーの設定\n - アクセスキーの作成\n- カスタムポリシーの設定は、以下のように録画ファイルの保存に最低限のものにすること\n\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"DenyAll\",\n \"Effect\": \"Deny\",\n \"NotAction\": \"*\",\n \"Resource\": \"*\"\n },\n {\n \"Sid\": \"AllowS3Upload\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:AbortMultipartUpload\"\n ],\n \"Resource\": [\n \"arn:aws:s3:::/*\"\n ]\n }\n ]\n}\n```\n"},"secret_access_key":{"type":"string","description":"- S3 バケットにアクセスするための IAM ユーザのシークレットアクセスキー\n- アクセスキーと共に生成されたシークレット\n"}}},"ConnectionRecordingMetadata":{"oneOf":[{"$ref":"#/components/schemas/ConnectionRecordingMetadataWithMediaFile"},{"$ref":"#/components/schemas/ConnectionRecordingMetadataWithoutMediaFile"}]},"ConnectionRecordingMetadataWithMediaFile":{"type":"object","description":"単一拠点録画に関するメタデータ (単一拠点録画ファイルが保存される場合)","required":["room_id","room_instance_id","recording_id","connection_id","connection_instance_id","exists_since","exists_until","started_at","ended_at"],"properties":{"room_id":{"type":"string","format":"IDString","description":"Room の ID"},"room_instance_id":{"type":"string","format":"UUIDv4","description":"ある Room の生死単位で割り振られる ID"},"recording_id":{"type":"string","description":"Recording の ID"},"connection_id":{"type":"string","format":"IDString","description":"Connection の ID"},"connection_instance_id":{"type":"string","format":"UUIDv4","description":"ある Connection の生死単位で割り振られる ID"},"exists_since":{"type":"string","format":"date-time","description":"ConnectionInstance の存在開始時刻。ConnectionInstance が RoomInstance に入室した時刻と RoomInstance の録画開始時刻の内遅い時刻 (ISO8601)"},"exists_until":{"type":"string","format":"date-time","description":"ConnectionInstance の存在終了時刻。ConnectionInstance が RoomInstance から退出した時刻と RoomInstance の録画終了時刻の内早い時刻 (ISO8601)"},"started_at":{"type":"string","format":"date-time","description":"ConnectionInstance の録画開始時刻。ただし、録画開始時に ConnectionInstance の映像音声の双方が hardmute であった場合、最初にどちらかが unmute になった時刻 (ISO8601)"},"ended_at":{"type":"string","format":"date-time","description":"ConnectionInstance の録画終了時刻。ただし、録画終了時に ConnectionInstance の映像音声の双方が hardmute であった場合、最後に双方が hardmute になった時刻 (ISO8601)"},"format":{"type":"string","enum":["mp4"],"description":"メディアファイルのフォーマット\n- 単一拠点録画ファイルを保存せずに生の録画ファイルのみを保存する場合は空\n"},"video":{"$ref":"#/components/schemas/ConnectionRecordingVideoMetadata"},"audio":{"$ref":"#/components/schemas/RecordingAudioMetadata"},"raw_recording":{"$ref":"#/components/schemas/RawConnectionRecordingMetadata"}}},"RawConnectionRecordingMetadata":{"type":"object","description":"生の録画に関するメタデータ\n- 生の録画ファイルを保存せずに単一拠点録画ファイルのみを保存する場合は空\n","properties":{"format":{"type":"string","enum":["webm"],"description":"メディアファイルのフォーマット"},"video":{"$ref":"#/components/schemas/RawRecordingVideoMetadata"},"audio":{"$ref":"#/components/schemas/RawRecordingAudioMetadata"}}},"ConnectionRecordingMetadataWithoutMediaFile":{"type":"object","description":"単一拠点録画に関するメタデータ (単一拠点録画ファイルが保存されない場合)","required":["room_id","room_instance_id","recording_id","connection_id","connection_instance_id","exists_since","exists_until"],"properties":{"room_id":{"type":"string","format":"IDString","description":"Room の ID"},"room_instance_id":{"type":"string","format":"UUIDv4","description":"ある Room の生死単位で割り振られる ID"},"recording_id":{"type":"string","description":"Recording の ID"},"connection_id":{"type":"string","format":"IDString","description":"Connection の ID"},"connection_instance_id":{"type":"string","format":"UUIDv4","description":"ある Connection の生死単位で割り振られる ID"},"exists_since":{"type":"string","format":"date-time","description":"ConnectionInstance の存在開始時刻。ConnectionInstance が RoomInstance に入室した時刻と RoomInstance の録画開始時刻の内遅い時刻 (ISO8601)"},"exists_until":{"type":"string","format":"date-time","description":"ConnectionInstance の存在終了時刻。ConnectionInstance が RoomInstance から退出した時刻と RoomInstance の録画終了時刻の内早い時刻 (ISO8601)"}}},"CompositionRecordingMetadata":{"type":"object","description":"合成録画に関するメタデータ","required":["room_id","recording_id","connections","started_at","ended_at","format"],"properties":{"room_id":{"type":"string","format":"IDString","description":"Room の ID"},"recording_id":{"type":"string","description":"Recording の ID"},"connections":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionMetadata"},"description":"合成録画に含まれる ConnectionMetadata の配列"},"started_at":{"type":"string","format":"date-time","description":"RoomInstance の録画開始時刻。ただし、録画開始時に全 ConnectionInstance の映像音声の双方が hardmute であった場合、最初にある ConnectionInstance のどちらかが unmute になった時刻 (ISO8601)"},"ended_at":{"type":"string","format":"date-time","description":"RoomInstance の録画終了時刻。ただし、録画終了時に全 ConnectionInstance の映像音声の双方が hardmute であった場合、最後にある ConnectionInstance の双方が hardmute になった時刻 (ISO8601)"},"format":{"type":"string","enum":["mp4"],"description":"メディアファイルのフォーマット"},"video":{"$ref":"#/components/schemas/CompositionRecordingVideoMetadata"},"audio":{"$ref":"#/components/schemas/RecordingAudioMetadata"}}},"ConnectionMetadata":{"type":"object","description":"合成録画に含まれる Connection の情報","required":["connection_id","started_at","ended_at"],"properties":{"connection_id":{"type":"string","format":"IDString","description":"Connection の ID"},"started_at":{"type":"string","format":"date-time","description":"ConnectionInstance の録画開始時刻。ただし、録画開始時に ConnectionInstance の映像音声の双方が hardmute であった場合、最初にどちらかが unmute になった時刻 (ISO8601)"},"ended_at":{"type":"string","format":"date-time","description":"ConnectionInstance の録画終了時刻。ただし、録画終了時に ConnectionInstance の映像音声の双方が hardmute であった場合、最後に双方が hardmute になった時刻 (ISO8601)"}}},"ConnectionRecordingVideoMetadata":{"type":"object","description":"録画の映像データに関するメタデータ\n- 録画ファイルが映像データを持たない場合は空\n","required":["codec","max_bitrate_kbps","width","height"],"properties":{"codec":{"type":"string","enum":["h264","vp9"],"description":"映像データのコーデック"},"width":{"type":"integer","description":"- 映像データの幅\n"},"height":{"type":"integer","description":"- 映像データの高さ\n"}}},"RawRecordingVideoMetadata":{"type":"object","description":"生の録画の映像データに関するメタデータ\n- 録画ファイルが映像データを持たない場合は空\n","required":["codec","max_bitrate_kbps","width","height"],"properties":{"codec":{"type":"string","enum":["h264","vp8","vp9","h265","av1"],"description":"映像データのコーデック"},"width":{"type":"integer","description":"- 映像データの幅\n"},"height":{"type":"integer","description":"- 映像データの高さ\n"}}},"CompositionRecordingVideoMetadata":{"type":"object","description":"録画の映像データに関するメタデータ","required":["codec","max_bitrate_kbps","width","height"],"properties":{"codec":{"type":"string","enum":["vp9"],"description":"映像データのコーデック"},"max_bitrate_kbps":{"type":"integer","minimum":100,"maximum":2000,"description":"映像の最大ビットレート(Kbps)"},"width":{"type":"integer","description":"- 映像データの幅\n"},"height":{"type":"integer","description":"- 映像データの高さ\n"}}},"RecordingAudioMetadata":{"type":"object","description":"録画の音声データに関するメタデータ\n- 録画ファイルが音声データを持たない場合は空\n","required":["codec"],"properties":{"codec":{"type":"string","enum":["aac","opus"],"description":"音声データのコーデック"}}},"RawRecordingAudioMetadata":{"type":"object","description":"生の録画の音声データに関するメタデータ\n- 録画ファイルが音声データを持たない場合は空\n","required":["codec"],"properties":{"codec":{"type":"string","enum":["opus"],"description":"音声データのコーデック"}}},"ConnectionHistory":{"type":"object","description":"Connection 履歴に関するデータ","required":["meta","timestamp"],"properties":{"timestamp":{"type":"string","description":"イベントの発生時刻 (ISO8601)"},"meta":{"type":"object","$ref":"#/components/schemas/Meta"}}},"TrackHistory":{"type":"object","description":"Track 履歴に関するデータ","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"イベントの発生時刻 (ISO8601)"},"meta":{"type":"object","$ref":"#/components/schemas/Meta"},"sdk_meta":{"type":"object","$ref":"#/components/schemas/TrackSdkMeta"}}},"Meta":{"type":"object","description":"Connect および Track の各種アプリで定義したメタデータ。"},"TrackSdkMeta":{"type":"object","description":"RICOH Live Streaming Client SDK から Track に送信されるメタデータ。","properties":{"muteState":{"type":"string","enum":["unmute","softmute","hardmute"],"description":"SDK仕様のMuteTypeに準拠\n"}}},"IDString":{"type":"string","pattern":"^[a-zA-Z0-9.%+^_\"`{|}~<>\\\\\\\\-]{1,255}$","description":"- 1 文字以上 255 文字以下\n- ASCII\n- 以下の文字のみ許可\n - 英数字\n - 次の記号: ``.%+^_\"`{|}~<>\\-``\n"},"Error":{"type":"object","required":["error_id"],"properties":{"error_id":{"type":"string","description":"- エラーの種類を識別する ID\n"},"message":{"type":"string","description":"- エラーの内容を記述した開発者向けのメッセージ\n- バージョンアップによってテキストの内容が変更される可能性があるため、これに依存した処理を実装してはいけません\n"},"options":{"type":"object","description":"- エラーの補助情報\n- 内容は API および error_id によって異なります\n"}}},"schemas-AwsS3RecordingStorageConfig":{"type":"object","description":"- 録画ファイルを保存するための S3 バケットとクレデンシャルの設定\n","required":["s3_url","access_key_id","secret_access_key"],"properties":{"s3_url":{"type":"string","maxLength":255,"description":"- 録画ファイルを保存するための S3 バケットの仮想ホスティング URL\n- バケットの仮想ホスティングについては以下のドキュメントを参照のこと\n - バケットの仮想ホスティングについて を参照\n- URL のスタイルとして、仮想ホスティング形式を利用すること\n - `https://.s3..amazonaws.com/`\n"},"access_key_id":{"type":"string","description":"- S3 バケットにアクセスするための IAM ユーザのアクセスキー\n- IAM ユーザとアクセスキーの作成に関しては以下のドキュメントを参照のこと\n - IAMユーザの作成\n - カスタムポリシーの設定\n - アクセスキーの作成\n- カスタムポリシーの設定は、以下のように録画ファイルの保存に最低限のものにすること\n\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"DenyAll\",\n \"Effect\": \"Deny\",\n \"NotAction\": \"*\",\n \"Resource\": \"*\"\n },\n {\n \"Sid\": \"AllowS3Upload\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:AbortMultipartUpload\"\n ],\n \"Resource\": [\n \"arn:aws:s3:::/*\"\n ]\n }\n ]\n}\n```\n"},"secret_access_key":{"type":"string","description":"- S3 バケットにアクセスするための IAM ユーザのシークレットアクセスキー\n- アクセスキーと共に生成されたシークレット\n"}}},"schemas-Error":{"type":"object","required":["error_id"],"properties":{"error_id":{"type":"string","description":"- エラーの種類を識別する ID\n"},"message":{"type":"string","description":"- エラーの内容を記述した開発者向けのメッセージ\n- バージョンアップによってテキストの内容が変更される可能性があるため、これに依存した処理を実装してはいけません\n"},"options":{"type":"object","description":"- エラーの補助情報\n- 内容は API および error_id によって異なります\n"}}},"LSEnv":{"type":"string","enum":["prod","dev"],"description":"- Live Streaming の環境種別\n - prod: プロダクション環境\n - dev: 開発環境\n"},"RecordingStatus":{"description":"- Room の録画に関する状態を格納するオブジェクト\n","type":"object","required":["in_recording"],"properties":{"in_recording":{"type":"boolean","description":"- その Room が録画中なら true 、録画停止中なら false が格納されます\n"}}}},"parameters":{"client_id":{"in":"path","name":"client_id","schema":{"type":"string"},"required":true,"description":"- Client ID\n"},"room_id":{"in":"path","name":"room_id","schema":{"type":"string"},"required":true,"description":"- Room ID\n"},"env":{"in":"query","name":"env","schema":{"$ref":"#/components/schemas/LSEnv","default":"prod"},"description":"操作対象の環境。複数指定不可\n","required":false}},"securitySchemes":{"ClientBasic":{"type":"http","scheme":"basic","description":"Client ID を username、Client Secretを password にした Basic 認証"}},"requestBodies":{"requestBody":{"required":true,"description":"AWS S3 の録画ストレージ設定を更新するための AwsS3RecordingStorageConfig オブジェクト\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-AwsS3RecordingStorageConfig"}}}}},"responses":{"200":{"description":"作成された AwsS3RecordingStorageConfig オブジェクト","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-AwsS3RecordingStorageConfig"}}}},"204":{"description":"リセット成功"},"400":{"description":"リクエストボディ不正\n- error_id の値\n - invalid_parameter: リクエストボディのパラメータの不正、options のキーに不正だったプロパティ名が入る\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-Error"}}}},"responses-200":{"description":"AwsS3RecordingStorageConfig オブジェクト","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-AwsS3RecordingStorageConfig"}}}}}}}},"searchIndex":{"store":["tag/api_recording_storage_config","tag/api_recording_storage_config/paths/~1clients~1{client_id}~1recording_storages~1aws_s3~1register/post","tag/api_recording_storage_config/paths/~1clients~1{client_id}~1recording_storages~1aws_s3/get","tag/api_recording_storage_config/paths/~1clients~1{client_id}~1recording_storages~1aws_s3/delete","tag/api_room_recording","tag/api_room_recording/paths/~1clients~1{client_id}~1rooms~1{room_id}~1recording~1start/post","tag/api_room_recording/paths/~1clients~1{client_id}~1rooms~1{room_id}~1recording~1stop/post","tag/aws_s3_recording_storage_config","tag/connection_recording_metadata","tag/composition_recording_metadata","tag/id_string"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,0.204,1,0.981]],["description/0",[]],["title/1",[0,0.169,2,1.023,3,1.023]],["description/1",[0,0.336,4,1.728,5,2.291]],["title/2",[0,0.169,2,1.023,3,1.023]],["description/2",[0,0.313,4,1.858,6,1.858]],["title/3",[0,0.169,2,1.023,3,1.023]],["description/3",[6,2.397]],["title/4",[0,0.169,1,0.814,7,0.648]],["description/4",[]],["title/5",[0,0.204,7,0.78]],["description/5",[0,0.353,1,0.451,7,0.759,8,0.721,9,0.721,10,0.721,11,0.721,12,0.721,13,0.956,14,0.956]],["title/6",[0,0.204,7,0.78]],["description/6",[0,0.355,1,0.464,7,0.775,8,0.743,9,0.743,10,0.743,11,0.743,12,0.743,15,0.985]],["title/7",[16,2.614]],["description/7",[0,0.261,17,1.256,18,2.662]],["title/8",[19,2.614]],["description/8",[0,0.261,17,1.256,20,2.662]],["title/9",[21,2.614]],["description/9",[0,0.261,17,1.256,22,2.662]],["title/10",[23,2.614]],["description/10",[0,0.261,17,1.256,24,2.662]]],"invertedIndex":[["",{"_index":0,"title":{"0":{},"1":{},"2":{},"3":{},"4":{},"5":{},"6":{}},"description":{"1":{},"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{}}}],["200",{"_index":12,"title":{},"description":{"5":{},"6":{}}}],["api",{"_index":1,"title":{"0":{},"4":{}},"description":{"5":{},"6":{}}}],["aw",{"_index":2,"title":{"1":{},"2":{},"3":{}},"description":{}}],["awss3recordingstorageconfig",{"_index":16,"title":{"7":{}},"description":{}}],["clients/{client_id}/recording_storages/aws_s3",{"_index":6,"title":{},"description":{"2":{},"3":{}}}],["clients/{client_id}/recording_storages/aws_s3/regist",{"_index":5,"title":{},"description":{"1":{}}}],["clients/{client_id}/rooms/{room_id}/recording/start",{"_index":14,"title":{},"description":{"5":{}}}],["clients/{client_id}/rooms/{room_id}/recording/stop",{"_index":15,"title":{},"description":{"6":{}}}],["compositionrecordingmetadata",{"_index":21,"title":{"9":{}},"description":{}}],["connectionrecordingmetadata",{"_index":19,"title":{"8":{}},"description":{}}],["idstr",{"_index":23,"title":{"10":{}},"description":{}}],["p2p",{"_index":10,"title":{},"description":{"5":{},"6":{}}}],["p2p_turn",{"_index":11,"title":{},"description":{"5":{},"6":{}}}],["room",{"_index":7,"title":{"4":{},"5":{},"6":{}},"description":{"5":{},"6":{}}}],["s3",{"_index":3,"title":{"1":{},"2":{},"3":{}},"description":{}}],["schemadefinit",{"_index":17,"title":{},"description":{"7":{},"8":{},"9":{},"10":{}}}],["schemaref=\"#/components/schemas/awss3recordingstorageconfig",{"_index":18,"title":{},"description":{"7":{}}}],["schemaref=\"#/components/schemas/compositionrecordingmetadata",{"_index":22,"title":{},"description":{"9":{}}}],["schemaref=\"#/components/schemas/connectionrecordingmetadata",{"_index":20,"title":{},"description":{"8":{}}}],["schemaref=\"#/components/schemas/idstr",{"_index":24,"title":{},"description":{"10":{}}}],["secret_access_key",{"_index":4,"title":{},"description":{"1":{},"2":{}}}],["sfu",{"_index":8,"title":{},"description":{"5":{},"6":{}}}],["sfu_larg",{"_index":9,"title":{},"description":{"5":{},"6":{}}}],["waiting_recording_complet",{"_index":13,"title":{},"description":{"5":{}}}]],"pipeline":[]}},"options":{}}; var container = document.getElementById('redoc'); Redoc.hydrate(__redoc_state, container);