调用AddLiveAppRecordConfig配置App级别录制和流级别录制。

使用说明

录制功能包括自动录制、按需录制、手动录制三种方式。无论使用那种录制方式,都需要先用此接口设置录制模版。录制模版可以设置录制文件的输出格式(TS、MP4、FLV)、录制文件时长等信息。您可以同时使用多种录制方式,如App配置自动录制,单路流配置手动录制。单路流仅能使用一种录制方式,即单路流录制的配置优先级高于App级别。如果对某个App下所有流进行自动录制,但是对某些流进行手动录制。实际生效的是手动录制的流(仅配置单路流录制模版,没有调用手动录制的接口,手动录制的流不会被录制)。更多详情,请参见直播录制概述

如果直播录制写入您指定的Bucket权限被意外删除,您需要按照以下方式重新配置:

  • 通过控制台配置。具体操作,请参见配置OSS
  • 通过RAM进行权限配置。具体操作,请参见权限管理概述

QPS限制

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

调试

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

请求参数

名称 类型 是否必选 示例值 描述
Action String AddLiveAppRecordConfig

系统规定参数。取值:AddLiveAppRecordConfig

AppName String testApp

播流所属应用名称。

DomainName String example.com

主播流域名。

OssBucket String testBucket

OSS存储的Bucket名称。

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

OssEndpoint String oss-cn-shanghai.aliyundoc.com

OSS存储的Endpoint名称。

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

RecordFormat.N.Format String m3u8

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

注意 RecordFormat和TranscodeRecordFormat两者至少需要设置一个。
  • m3u8。如果选择m3u8格式,必须同时设置请求参数RecordFormat.N.SliceOssObjectPrefix和RecordFormat.N.SliceDuration。
  • flv。
  • mp4。
RecordFormat.N.OssObjectPrefix String record/{AppName}/{StreamName}/{Sequence}{EscapedStartTime}{EscapedEndTime}

OSS存储的录制文件名。

  • 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。
  • 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。
  • 默认支持1小时周期录制,最小周期时间15分钟,最多6小时。
RecordFormat.N.SliceOssObjectPrefix String record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

TS切片名称。

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

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

说明
  • 如果在一个录制周期内,直播流发生了断流,但是在3分钟内,该直播流又正常推流,那么仍会在同一个录制文件中继续录制。
  • 一条直播流必须断流超过3分钟,才会生成最后一个录制文件。如果您需要修改默认的3分钟断流时间,可以提交工单进行修改。
RecordFormat.N.SliceDuration Integer 30

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

注意 当RecordFormat.N.Format(格式)设为m3u8时,本参数才有效。

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

TranscodeRecordFormat.N.Format String m3u8

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

  • m3u8。如果选择m3u8格式,必须同时设置请求参数RTranscodeRecordFormat.N.SliceOssObjectPrefix和TranscodeRecordFormat.N.SliceDuration。
  • flv。
  • mp4。
TranscodeRecordFormat.N.OssObjectPrefix String record/{AppName}/{StreamName}/{Sequence}{EscapedStartTime}{EscapedEndTime}

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

  • 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。
  • 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。
  • 默认支持1小时周期录制,最小周期时间15分钟,最多6小时。
TranscodeRecordFormat.N.SliceOssObjectPrefix String record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

转码流录制TS切片名称。

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

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

TranscodeRecordFormat.N.SliceDuration Integer 30

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

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

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

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,否则默认不录制。
TranscodeTemplates.N RepeatList 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-CB92E68F4CD8

请求ID。

示例

请求示例

http(s)://live.aliyuncs.com/?Action=AddLiveAppRecordConfig
&AppName=testApp
&DomainName=example.com
&OssBucket=testBucket
&OssEndpoint=oss-cn-shanghai.aliyundoc.com
&<公共请求参数>

正常返回示例

XML格式

<AddLiveAppRecordConfigResponse>
	  <RequestId>16A96B9A-F203-4EC5-8E43-CB92E68F4CD8</RequestId>
</AddLiveAppRecordConfigResponse>

JSON格式

{
    "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. 结束时间错误,请您确认结束时间是否正确。
400 MissingTemplate You must specify Template. 缺少录制模板,请确认填写正确。
400 InvalidSliceDuration.Malformed The specified format of SliceDuration is invalid. 指定参数分片时长错误,请您确认该指定参数是否正确。
400 InvalidTemplate.ForbidRaw Template named raw is forbidden. 录制模板命名错误,不允许输入名称为”raw“的模板。
400 InvalidTemplateLength.Malformed The specified number of record template is invalid. 指定参数录制模板个数错误,请您确认该指定参数个数是否正确。

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

注意事项:

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