更新时间:2022-04-15 GMT+08:00
分享

创建录制规则

功能介绍

创建录制规则接口,录制规则对新推送的流生效,对已经推送中的流不生效

调试

您可以在API Explorer中调试该接口。

URI

POST /v1/{project_id}/record/rules

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参考获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token,使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

publish_domain

String

直播推流域名

app

String

应用名,如需匹配任意应用则填写*。录制规则匹配的时候,优先精确app匹配,如果匹配不到,则匹配*

stream

String

录制的流名,如需匹配任流名则填写*。录制规则匹配的时候,优先精确stream匹配,如果匹配不到,则匹配*

record_type

String

录制类型,包括:CONTINUOUS_RECORD,COMMAND_RECORD。默认CONTINUOUS_RECORD。

  • CONTINUOUS_RECORD:持续录制,在该规则类型配置后,只要有流到推送到录制系统,就触发录制。

  • COMMAND_RECORD:命令录制,在该规则类型配置后,在流推送到录制系统后,租户需要通过命令控制该流的录制开始和结束。

default_record_config

DefaultRecordConfig object

默认录制规则配置

表4 DefaultRecordConfig

参数

是否必选

参数类型

描述

record_format

Array of strings

录制格式,当前支持:FLV,HLS,MP4三种格式,设置格式时必须使用大写字母

obs_addr

RecordObsFileAddr object

录制保存的租户的桶信息

hls_config

HLSRecordConfig object

HLS配置规则

flv_config

FLVRecordConfig object

FLV配置规则

mp4_config

MP4RecordConfig object

MP4配置规则

表5 RecordObsFileAddr

参数

是否必选

参数类型

描述

bucket

String

OBS的bucket名称

location

String

OBS Bucket所在RegionID

object

String

OBS对象路径,遵守OBS Object定义。如果为空则保存到根目录

表6 HLSRecordConfig

参数

是否必选

参数类型

描述

record_cycle

Integer

单位为秒,周期录制时长,最小1分钟(60秒),最大12小时。如果为0,则整个流录制一个文件(录制文件时长超过10天会强制创建新文件)。

record_prefix

String

录制m3u8文件,含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}{file_start_time}/{stream}{file_start_time}

record_ts_prefix

String

录制ts文件名的前缀, 默认{file_start_time_unix}{file_end_time_unix}{ts_sequence_number}

record_slice_duration

Integer

录制HLS时ts的切片时长,非必须,缺省为10,单位秒,最小2,最大60

record_max_duration_to_merge_file

Integer

录制HLS文件拼接时长,如果流中断超过该时间,则生成新文件。单位秒。如果为0表示流中断就生成新文件,如果为-1则表示相同的流中断恢复后,继续在30天内的前一个文件保存。默认为0。

表7 FLVRecordConfig

参数

是否必选

参数类型

描述

record_cycle

Integer

单位为秒,周期录制时长,最小1分钟,最大12小时。

record_prefix

String

录制FLV文件,含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time}

record_max_duration_to_merge_file

Integer

录制flv拼接时长,如果流中断超过该时间,则生成新文件。单位秒。如果为0表示流中断就生成新文件。默认为0。

表8 MP4RecordConfig

参数

是否必选

参数类型

描述

record_cycle

Integer

单位为秒,周期录制时长,最小1分钟,最大12小时。

record_prefix

String

录制文件含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time}

record_max_duration_to_merge_file

Integer

录制mp4拼接时长,如果流中断超过该时间,则生成新文件。单位秒。如果为0表示流中断就生成新文件。默认为0。

响应参数

状态码: 201

表9 响应Header参数

参数

参数类型

描述

X-request-id

String

此字段携带请求ID号,以便任务跟踪。格式为:request_id-timestamp-hostname(request_id在服务器端生成UUID,timestamp为当前时间戳,hostname为处理当前接口的服务器名称)

表10 响应Body参数

参数

参数类型

描述

id

String

规则id,由服务端返回。创建或修改的时候不携带

publish_domain

String

直播推流域名

app

String

应用名,如果需要匹配任意应用则需填写*。录制规则匹配的时候,优先精确app匹配,如果匹配不到,则匹配*

stream

String

录制的流名,如果需要匹配任意流名则需填写*。录制规则匹配的时候,优先精确stream匹配,如果匹配不到,则匹配*

record_type

String

录制类型,包括:CONTINUOUS_RECORD,COMMAND_RECORD。默认CONTINUOUS_RECORD。

  • CONTINUOUS_RECORD:持续录制,在该规则类型配置后,只要有流到推送到录制系统,就触发录制。

  • COMMAND_RECORD:命令录制,在该规则类型配置后,在流推送到录制系统后,租户需要通过命令控制该流的录制开始和结束。

default_record_config

DefaultRecordConfig object

默认录制规则配置

create_time

String

创建时间,格式:yyyy-mm-ddThh:mm:ssZ,UTC时间。 在查询的时候返回

update_time

String

修改时间,格式:yyyy-mm-ddThh:mm:ssZ,UTC时间。 在查询的时候返回

表11 DefaultRecordConfig

参数

参数类型

描述

record_format

Array of strings

录制格式,当前支持:FLV,HLS,MP4三种格式,设置格式时必须使用大写字母

obs_addr

RecordObsFileAddr object

录制保存的租户的桶信息

hls_config

HLSRecordConfig object

HLS配置规则

flv_config

FLVRecordConfig object

FLV配置规则

mp4_config

MP4RecordConfig object

MP4配置规则

表12 RecordObsFileAddr

参数

参数类型

描述

bucket

String

OBS的bucket名称

location

String

OBS Bucket所在RegionID

object

String

OBS对象路径,遵守OBS Object定义。如果为空则保存到根目录

表13 HLSRecordConfig

参数

参数类型

描述

record_cycle

Integer

单位为秒,周期录制时长,最小1分钟(60秒),最大12小时。如果为0,则整个流录制一个文件(录制文件时长超过10天会强制创建新文件)。

record_prefix

String

录制m3u8文件,含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}{file_start_time}/{stream}{file_start_time}

record_ts_prefix

String

录制ts文件名的前缀, 默认{file_start_time_unix}{file_end_time_unix}{ts_sequence_number}

record_slice_duration

Integer

录制HLS时ts的切片时长,非必须,缺省为10,单位秒,最小2,最大60

record_max_duration_to_merge_file

Integer

录制HLS文件拼接时长,如果流中断超过该时间,则生成新文件。单位秒。如果为0表示流中断就生成新文件,如果为-1则表示相同的流中断恢复后,继续在30天内的前一个文件保存。默认为0。

表14 FLVRecordConfig

参数

参数类型

描述

record_cycle

Integer

单位为秒,周期录制时长,最小1分钟,最大12小时。

record_prefix

String

录制FLV文件,含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time}

record_max_duration_to_merge_file

Integer

录制flv拼接时长,如果流中断超过该时间,则生成新文件。单位秒。如果为0表示流中断就生成新文件。默认为0。

表15 MP4RecordConfig

参数

参数类型

描述

record_cycle

Integer

单位为秒,周期录制时长,最小1分钟,最大12小时。

record_prefix

String

录制文件含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time}

record_max_duration_to_merge_file

Integer

录制mp4拼接时长,如果流中断超过该时间,则生成新文件。单位秒。如果为0表示流中断就生成新文件。默认为0。

状态码: 400

表16 响应Header参数

参数

参数类型

描述

X-request-id

String

此字段携带请求ID号,以便任务跟踪。格式为:request_id-timestamp-hostname(request_id在服务器端生成UUID,timestamp为当前时间戳,hostname为处理当前接口的服务器名称)

表17 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

POST https://{endpoint}/v1/{project_id}/record/rules

{
  "publish_domain" : "publish.xxx.com",
  "app" : "live",
  "stream" : "*",
  "record_type" : "CONTINUOUS_RECORD",
  "default_record_config" : {
    "record_format" : [ "HLS", "FLV" ],
    "hls_config" : {
      "record_cycle" : 3600,
      "record_prefix" : "Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time}",
      "record_ts_prefix" : "{file_start_time_unix}-{file_end_time_unix}-{ts_sequence_number}",
      "record_slice_duration" : 10,
      "record_max_duration_to_merge_file" : 0
    },
    "flv_config" : {
      "record_cycle" : 9000,
      "record_prefix" : "Record/{publish_domain}/{app}/{record_format}/{stream}_{file_start_time}/{file_start_time}",
      "record_max_duration_to_merge_file" : 0
    },
    "obs_addr" : {
      "bucket" : "mybucket",
      "location" : "cn-north-4",
      "object" : "record/"
    }
  }
}

响应示例

状态码: 400

创建录制规则操作失败

{
  "error_code" : "LIVE.100011001",
  "error_msg" : "Request Illegal"
}

状态码

状态码

描述

201

创建录制规则操作成功

400

创建录制规则操作失败

错误码

请参见错误码

分享:

    相关文档

    相关产品

close