添加录制配置

配置APP录制,输出内容保存到OSS中。

直播录制功能,可以将直播内容进行录制,保存至您指定的位置,在您需要回看直播内容时可以进行回看。存储至OSS的录制内容,支持多种保存格式(TS、MP4、FLV、CMAF),支持自定义录制策略(自动录制、按需录制、手动录制),调用此接口可进行录制模版设置。更多直播录制功能使用可参见直播录制说明文档。

QPS限制

本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String AddLiveAppRecordConfig

系统规定参数。取值:AddLiveAppRecordConfig

DomainName String example.com

主播流域名。

AppName String liveApp****

播流所属应用名称。

OssEndpoint String learn.developer.aliyundoc.com

OSS存储的Endpoint名称。

直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见配置OSS

OssBucket String liveBucket****

OSS存储的Bucket名称。

直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见配置OSS

StreamName String teststream

播流名称。

StartTime String 2018-04-10T09:57:21Z

录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。

说明 设置的时间必须是实际推流时间开始7天之内,只在流级别录制(StreamName不为空)有效。
EndTime String 2018-04-16T09:57:21Z

录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。

说明 EndTime与StartTime相差不应超过7天,超过7天将按照7天计算。只在流级别录制(StreamName不为空)有效。
OnDemand Integer 1

按需录制。取值:

  • 0:关闭。
  • 1:通过HTTP回调方式。
  • 2:解析推流参数按需录制。
  • 7:默认不录制,可以通过RealTimeRecordCommand接口手动控制录制开启或停止。
说明 当OnDemand取值为1时,需要先通过AddLiveRecordNotifyConfig接口配置OnDemandUrl,否则默认不录制。
DelayTime Integer 180

断流拼接时长。

直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。

RecordFormat.N.SliceDuration Integer 30

单个切片时长。单位:秒。

重要 当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才有效。

不填则默认为30秒。取值范围:5s~30s。

RecordFormat.N.SliceOssObjectPrefix String record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

切片名称。

重要 当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才需要配置。
  • 默认30秒一片,小于256字节,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。
  • 参数值必须包含{UnixTimestamp}和{Sequence}变量。
RecordFormat.N.CycleDuration Integer 1

周期录制时长。单位:秒。不填则默认为6小时。

说明
  • 如果在一个录制周期内,直播流发生了断流,但是在断流拼接时长内,该直播流又正常推流,那么仍会在同一个录制文件中继续录制。
  • 一条直播流必须断流超过断流拼接时长,才会生成录制文件。
RecordFormat.N.OssObjectPrefix String record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}

OSS存储的录制文件名。

  • 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。
  • 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。
RecordFormat.N.Format String m3u8

格式。目前支持M3U8、FLV、MP4、CMAF。取值:

重要 RecordFormat和TranscodeRecordFormat两者至少需要设置一个。如果选择m3u8或cmaf格式,必须同时设置请求参数RecordFormat.N.SliceOssObjectPrefix和RecordFormat.N.SliceDuration。
  • m3u8。
  • flv。
  • mp4。
  • cmaf。
TranscodeRecordFormat.N.SliceDuration Integer 30

转码流录制单个切片时长,单位:秒。

重要 当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才生效。

不填则默认为30秒。取值范围:5s~30s。

TranscodeRecordFormat.N.SliceOssObjectPrefix String record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

转码流录制切片名称。

重要 当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才需要配置。
  • 默认30秒一片,小于256字节,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。
  • 参数值必须包含{UnixTimestamp}和{Sequence}变量。
TranscodeRecordFormat.N.CycleDuration Integer 21600

转码流录制周期录制时长。单位:秒。不填则默认为6小时。

TranscodeRecordFormat.N.OssObjectPrefix String record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}

转码流录制OSS存储的录制文件名。

  • 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。
  • 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。
TranscodeRecordFormat.N.Format String m3u8

转码流录制格式。目前支持M3U8、FLV、MP4、CMAF。取值:

重要 如果选择m3u8或cmaf格式,必须同时设置请求参数TranscodeRecordFormat.N.SliceOssObjectPrefix和TranscodeRecordFormat.N.SliceDuration。
  • m3u8。
  • flv。
  • mp4。
  • cmaf。
TranscodeTemplates.N String sd
  • 转码流录制的转码模板,可进行多个设置,最多为10个。
  • 当设置TranscodeRecordFormat.N.xxx配置时,至少需要设置一个TranscodeTemplates。
  • 如需录制多个或全部的转码流,可设置TranscodeTemplates.1为*即可。

    说明

    TranscodeTemplates不允许传入raw,属于保留标识。

    RepeatList表示为TranscodeTemplates.N中的N,可理解为递增进行多个设置,如:TranscodeTemplates.1=sd,TranscodeTemplates.2=hd。

返回数据

名称

类型

示例值

描述

RequestId String 16A96B9A-F203-4EC5-8E43-CB92E68F****

请求ID。

示例

请求示例

http(s)://live.aliyuncs.com/?Action=AddLiveAppRecordConfig
&AppName=liveApp****
&DomainName=example.com
&OssBucket=liveBucket****
&OssEndpoint=learn.developer.aliyundoc.com
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<?xml version="1.0" encoding="UTF-8" ?>
<AddLiveAppRecordConfigResponse>
	<RequestId>16A96B9A-F203-4EC5-8E43-CB92E68F4CD8</RequestId>
</AddLiveAppRecordConfigResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "AddLiveAppRecordConfigResponse" : {
    "RequestId" : "16A96B9A-F203-4EC5-8E43-CB92E68F4CD8"
  }
}

错误码

HttpCode

错误码

错误信息

描述

400 InvalidOssBucket.Malformed Specified parameter OssBucket is not valid. OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。
400 InvalidOssBucket.NotFound The parameter OssBucket does not exist. OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。
400 InvalidFormat.Malformed Specified parameter Format is not valid. Format参数错误,请您确认该Format参数是否正确。
400 InvalidCycleDuration.Malformed Specified CycleDuration Format is not valid. CycleDuration参数格式错误,请您确认该CycleDuration参数格式是否正确。
400 MissingOssObjectPrefix OssObjectPrefix is mandatory for this action. 缺少OssObjectPrefix值,请您确认OssObjectPrefix值是否正确。
400 InvalidOssObjectPrefix.Malformed Specified parameter OssObjectPrefix is not valid. OSSObjectPrefix参数错误,请您确认该OSSObjectPrefix参数是否正确。
400 InvalidSliceOssObjectPrefix.Malformed Specified parameter SliceOssObjectPrefix is not valid. SliceOssObjectPrefix参数错误,请您确认该SliceOssObjectPrefix参数是否正确。
400 ConfigAlreadyExists Config has already exist. 配置已添加。
400 InvalidStartTime.Malformed Specified StartTime is malformed. StartTime参数错误,请您确认该StartTime参数是否正确。
400 InvalidEndTime.Malformed Specified EndTime is malformed. 结束时间错误,请您确认结束时间是否正确。

访问错误中心查看更多错误码。

注意事项:

  • 视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。