Download OpenAPI specification:Download
RICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。
本ページは録画 API の仕様について記載します。
クラウド録画機能 は、現在 β 版として提供しております。
そのため、商用サービスでの利用をご検討される際には、必ず事前にお問い合わせください。
β 版のクラウド録画機能の利用料金は無料です。正式版は有償での提供を検討しておりますので、あらかじめご了承ください。
正式版を公開せずに β 版の公開を終了する、もしくは、正式版では β 版から機能や仕様が変更される可能性がありますので、あらかじめご了承ください。
クラウド録画機能に関連して現在発生している問題はRICOH Live Streaming クラウド既知の問題を確認してください。
RoomInstance に対する録画の開始と停止を行うには、Room 管理 API にある Room 録画 API を使用します。
Room 録画 API を使用することで、ある RoomInstance に対して、任意のタイミングでの録画の開始、停止、再開が可能です。
また、Room 録画 API から録画開始を指定する以外にも、AccessToken にある recording_on_start 設定を使用することで、RoomInstance の生成時点からの録画が可能です。
ただし、録画データの保存先として、事前に本ページの 録画ストレージ設定 API を利用してお客様の管理するクラウドストレージを設定しておく必要があります。
お客様のストレージに録画データを保存することを指定した場合、 保存先に指定されたURLから以下の保存パス仕様に示すパスに録画ファイルと録画ファイルに関連するメタデータファイルが保存されます。 録画ファイルには以下の種類があり、どの録画ファイルを保存するかを AccessToken で設定できます。
録画を実行した場合、各拠点について、単一拠点録画メタデータファイル、Connection 履歴ファイル、Video Track 履歴ファイル、Audio Track 履歴ファイルは常に保存されます。 また、合成録画を有効にした場合、合成録画メタデータファイルが保存されます。
保存ファイル仕様
単一拠点録画ファイル
/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstance の存在開始時刻}-{ConnectionInstance の存在終了時刻}.mp4
connection_spec.recording.store
の値を false
にした生の録画ファイル
/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstanceの録画開始時刻}-{ConnectionInstanceの録画終了時刻}_raw.webm
connection_spec.recording.store_raw
の値を false
か未設定にした単一拠点録画メタデータファイル
/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/{connection_id}-{ConnectionInstance の存在開始時刻}-{ConnectionInstance の存在終了時刻}.json
ConnectionRecordingMetadata
のスキーマを持つ JSON であり、以下のどちらかの形式を持ちますConnectionRecordingMetadataWithMediaFile
: 単一拠点録画ファイルが保存される拠点のメタデータ形式ConnectionRecordingMetadataWithoutMediaFile
: 単一拠点録画ファイルが保存されない拠点のメタデータ形式合成録画ファイル
/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/compositions/{RoomInstance の録画開始時刻}-{RoomInstance の録画終了時刻}.mp4
合成録画メタデータファイル
/{room_id}/{RoomInstanceの開始時刻}/{Sequence}/compositions/{RoomInstance の録画開始時刻}-{RoomInstance の録画終了時刻}.json
CompositionRecordingMetadata
のスキーマを持つ JSON 形式CompositionRecordingMetadata
の connection
属性の配列に含まれません保存ファイル仕様の詳細説明
保存パスに含まれる時刻は UTC で yyyyMMddhhmmss
の形式になります
Sequence
は、1 つの RoomInstance の生存期間中に行った録画の通し番号です
recording_on_start
設定による RoomInstance 全体の録画のみ可能ですが、今後 REST API による任意のタイミングでの録画の開始/停止に対応予定ですConnectionInstance の存在開始時刻/存在終了時刻
とは、ConnectionInstance が RoomInstanceに入室/退出した期間と RoomInstance の録画期間の重なる期間です
配信中にカメラを縦向きから横向きに回転させた場合など、映像の解像度が途中で切り替わるケースがあります。 このときの録画データは次の仕様となります。
1フレーム目の解像度の高さか幅が奇数の場合、録画ファイルでは偶数に調整されます。
たとえば、解像度が 321x243 の場合、出力解像度は 322x244 となります。
また、「途中で解像度が変わる映像について」に記載の通りに解像度を算出後、解像度の高さか幅が奇数であった場合は調整が実施されます。
たとえば、解像度が 720x1283 だった場合、算出後の解像度は 2281x1283 となりますが、出力解像度は 2282x1284 となります。
映像のアスペクト比を維持するために必要な場合、黒色の余白が追加されます。
secret_access_key
フィールドは取り除かれますclient_id required | string
|
AWS S3 の録画ストレージ設定を更新するための AwsS3RecordingStorageConfig オブジェクト
s3_url required | string <= 255 characters
|
access_key_id required | string
|
secret_access_key required | string
|
{- "s3_url": "string",
- "access_key_id": "string",
- "secret_access_key": "string"
}
{- "s3_url": "string",
- "access_key_id": "string",
- "secret_access_key": "string"
}
client_id required | string
|
room_id required | string
|
env | string (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可 |
{- "in_recording": true
}
client_id required | string
|
room_id required | string
|
env | string (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可 |
{- "in_recording": true
}
s3_url required | string <= 255 characters
|
access_key_id required | string
|
secret_access_key required | string
|
{- "s3_url": "string",
- "access_key_id": "string",
- "secret_access_key": "string"
}
room_id required | string <IDString> Room の ID |
room_instance_id required | string <UUIDv4> ある Room の生死単位で割り振られる ID |
recording_id required | string Recording の ID |
connection_id required | string <IDString> Connection の ID |
connection_instance_id required | string <UUIDv4> ある Connection の生死単位で割り振られる ID |
exists_since required | string <date-time> ConnectionInstance の存在開始時刻。ConnectionInstance が RoomInstance に入室した時刻と RoomInstance の録画開始時刻の内遅い時刻 (ISO8601) |
exists_until required | string <date-time> ConnectionInstance の存在終了時刻。ConnectionInstance が RoomInstance から退出した時刻と RoomInstance の録画終了時刻の内早い時刻 (ISO8601) |
started_at required | string <date-time> ConnectionInstance の録画開始時刻。ただし、録画開始時に ConnectionInstance の映像音声の双方が hardmute であった場合、最初にどちらかが unmute になった時刻 (ISO8601) |
ended_at required | string <date-time> ConnectionInstance の録画終了時刻。ただし、録画終了時に ConnectionInstance の映像音声の双方が hardmute であった場合、最後に双方が hardmute になった時刻 (ISO8601) |
format | string Value: "mp4" メディアファイルのフォーマット
|
object (ConnectionRecordingVideoMetadata) 録画の映像データに関するメタデータ
| |
object (RecordingAudioMetadata) 録画の音声データに関するメタデータ
| |
object (RawConnectionRecordingMetadata) 生の録画に関するメタデータ
|
{- "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"
}
}
}
room_id required | string <IDString> Room の ID |
recording_id required | string Recording の ID |
required | Array of objects (ConnectionMetadata) 合成録画に含まれる ConnectionMetadata の配列 |
started_at required | string <date-time> RoomInstance の録画開始時刻。ただし、録画開始時に全 ConnectionInstance の映像音声の双方が hardmute であった場合、最初にある ConnectionInstance のどちらかが unmute になった時刻 (ISO8601) |
ended_at required | string <date-time> RoomInstance の録画終了時刻。ただし、録画終了時に全 ConnectionInstance の映像音声の双方が hardmute であった場合、最後にある ConnectionInstance の双方が hardmute になった時刻 (ISO8601) |
format required | string Value: "mp4" メディアファイルのフォーマット |
object (CompositionRecordingVideoMetadata) 録画の映像データに関するメタデータ | |
object (RecordingAudioMetadata) 録画の音声データに関するメタデータ
|
{- "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"
}
}