6.3 查询录制规则 6.4 更新录制规则 6.5 删除录制规则
6.1 创建或更新录制规则
功能介绍
调用此接口创建或更新录制规则。
● 若当前app在请求的location中无录制规则,则会创建新的录制规则
● 若当前app在请求的location中已有录制规则,则会更新原来的录制规则
接口约束
一个app在一个location最多创建一个录制规则。
调试
您可以在API Explorer中调试该接口。
URI
POST /v2/apps/{app_id}/record-rules
表6-1 路径参数
参数 是否必选 参数类型 描述
app_id 是 String 应用id
API 参考 6 录制规则管理
请求参数
表6-2 请求 Header 参数
参数 是否必选 参数类型 描述
Content-Type 是 String 内容类型。
X-Auth-Token 否 String 用户Token。使用Token鉴权方 式时必选。通过调用IAM服务获 取用户Token接口获取(响应消 息头中X-Subject-Token的 值)。
Authorization 否 String 使用AK/SK方式认证时必选,携 带的鉴权信息。
X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请 求的发生时间。
X-Project-Id 否 String 使用AK/SK方式认证时必选,携 带项目ID信息。
表6-3 请求 Body 参数
参数 是否必选 参数类型 描述
obs_addr 是 RecordObsFil
eAddr object 保存录制文件所在的桶信息 record_format
s 是 Array of
strings 录制格式:支持HLS格式和MP4 格式(HLS和MP4为大写)。
● 若配置HLS则必须携带 HLSRecordConfig参数
● 若配置MP4则需要携带 MP4RecordConfig hls_config 否 HLSRecordCo
nfig object HLS格式录制规则管理 mp4_config 否 MP4RecordC
onfig object MP4格式录制规则管理
表6-4 RecordObsFileAddr
参数 是否必选 参数类型 描述
location 是 String OBS Bucket所在RegionID project_id 是 String OBS Bucket所在Region的项目
ID
API 参考 6 录制规则管理
参数 是否必选 参数类型 描述
bucket 是 String OBS的bucket名称
object 否 String OBS对象路径,遵守OBS
Object定义。如果为空则保存到 根目录
表6-5 HLSRecordConfig
参数 是否必选 参数类型 描述
record_cycle 是 Integer 周期录制时长。
取值范围:[60,43200]或者 0,如果为0则整个流录制为一 个文件。
单位:秒。
record_prefix 否 String 录制m3u8文件含路径和文件名 的前缀
默认{app_id}/{record_format}/
{stream}_{file_start_time}/
{stream}_{file_start_time}
可自定义以下特殊变量:
● {app_id}:应用id
● {record_format}:录制格式
● {stream}:流名
● {file_start_time}:文件生成 时间
record_slice_d
uration 否 Integer 录制HLS时ts的切片时长,非必 填。
否 Integer 录制HLS文件拼接时长,如果流
中断超过该时间,则生成新文
表6-6 MP4RecordConfig
参数 是否必选 参数类型 描述
record_cycle 是 Integer 周期录制时长。
取值范围:[60,10800]。
单位:秒。
record_prefix 否 String 录制文件含路径和文件名的前 缀。
默认{app_id}/{record_format}/
{stream}_{file_start_time}/
{stream}_{file_start_time}
可自定义以下特殊变量:
● {app_id}:应用id
● {record_format}:录制格式
● {stream}:流名
● {file_start_time}:文件生成 时间
record_max_d uration_to_m erge_file
否 Integer 录制MP4拼接时长,如果流中断
超过该时间,则生成新文件。
X-request-Id String 此字段携带请求ID号,以便任务跟踪。
表6-8 响应 Body 参数
参数 参数类型 描述
rule_id String 规则id,由服务端返回。创建或修改规则的时候 不携带
app_id String 应用id
API 参考 6 录制规则管理
参数 参数类型 描述 obs_addr RecordObsFil
eAddr object 保存录制文件所在的桶信息 record_format
s Array of
strings 录制格式:HLS格式或者MP4格式 hls_config HLSRecordCo
nfig object hls格式录制规则管理 mp4_config MP4RecordC
onfig object mp4格式录制规则管理 create_time String 创建时间,形如
“2006-01-02T15:04:05.075Z”,时区为:UTC update_time String 更新时间,形如
“2006-01-02T15:04:05.075Z”,时区为:UTC
表6-9 RecordObsFileAddr
参数 参数类型 描述
location String OBS Bucket所在RegionID project_id String OBS Bucket所在Region的项目ID bucket String OBS的bucket名称
object String OBS对象路径,遵守OBS Object定义。如果为空 则保存到根目录
表6-10 HLSRecordConfig
参数 参数类型 描述
record_cycle Integer 周期录制时长。
取值范围:[60,43200]或者0,如果为0则整个 流录制为一个文件。
单位:秒。
API 参考 6 录制规则管理
参数 参数类型 描述
record_prefix String 录制m3u8文件含路径和文件名的前缀 默认{app_id}/{record_format}/
{stream}_{file_start_time}/
{stream}_{file_start_time}
可自定义以下特殊变量:
● {app_id}:应用id
● {record_format}:录制格式
● {stream}:流名
● {file_start_time}:文件生成时间 record_slice_d
uration Integer 录制HLS时ts的切片时长,非必填。
取值范围:[2,60],缺省为10。
单位:秒。
record_max_d uration_to_m erge_file
Integer 录制HLS文件拼接时长,如果流中断超过该时 间,则生成新文件。
表6-11 MP4RecordConfig
参数 参数类型 描述
record_cycle Integer 周期录制时长。
取值范围:[60,10800]。
单位:秒。
record_prefix String 录制文件含路径和文件名的前缀。
默认{app_id}/{record_format}/
{stream}_{file_start_time}/
{stream}_{file_start_time}
可自定义以下特殊变量:
● {app_id}:应用id
● {record_format}:录制格式
● {stream}:流名
● {file_start_time}:文件生成时间
API 参考 6 录制规则管理
参数 参数类型 描述 record_max_d
uration_to_m erge_file
Integer 录制MP4拼接时长,如果流中断超过该时间,则 生成新文件。
取值范围:[0,300],缺省为0。
单位:秒。
如果为0表示流中断就生成新文件。
状态码: 400
表6-12 响应 Header 参数
参数 参数类型 描述
X-request-Id String 此字段携带请求ID号,以便任务跟踪。
表6-13 响应 Body 参数
参数 参数类型 描述
error_code String 错误码 error_msg String 错误描述
状态码: 404
表6-14 响应 Header 参数
参数 参数类型 描述
X-request-Id String 此字段携带请求ID号,以便任务跟踪。
表6-15 响应 Body 参数
参数 参数类型 描述
error_code String 错误码 error_msg String 错误描述
状态码: 500
API 参考 6 录制规则管理
表6-16 响应 Header 参数
参数 参数类型 描述
X-request-Id String 此字段携带请求ID号,以便任务跟踪。
表6-17 响应 Body 参数
参数 参数类型 描述
error_code String 错误码 error_msg String 错误描述
请求示例
POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-rules { "obs_addr" : {
"bucket" : "obsName", "location" : "cn-north-4", "object" : "Record/",
"project_id" : "ad7456ce8ef89adf567"
}, "record_formats" : [ "MP4" ], "mp4_config" : {
"record_cycle" : 60,
"record_max_duration_to_merge_file" : 0 }}
响应示例
状态码: 201 配置成功
{ "app_id" : "123456abc", "rule_id" : "456789abc",
"create_time" : "2006-01-02T15:04:05.075Z", "obs_addr" : {
"bucket" : "obsName", "location" : "cn-north-4", "object" : "Record/",
"project_id" : "ad7456ce8ef89adf567"
}, "record_formats" : [ "MP4" ], "mp4_config" : {
"record_cycle" : 60,
"record_max_duration_to_merge_file" : 0 }, "update_time" : "2006-01-02T15:04:05.075Z"
}
状态码: 400
配置失败,语义有误,当前请求无法被服务器理解,或参数有误
{
API 参考 6 录制规则管理
"error_msg" : "InvalidParameterValue"
}
状态码: 404
配置失败,应用不存在
{ "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"
}
状态码: 500
配置失败,服务器端错误
{ "error_code" : "RTC.00002xxx", "error_msg" : "InternalError"
}
状态码
状态码 描述
201 配置成功
400 配置失败,语义有误,当前请求无法被服务器理解,或参数有误 404 配置失败,应用不存在
500 配置失败,服务器端错误
错误码
请参见错误码。