一旦推流就启动录制,一旦断流就停止录制。您可以对某个域名下,所有流、某个appname下所有流、或者单独某条流开启自动录制。
适用场景:
1. 只要有推流就录制。同一条直播推流上来后,要么录制,要么不录制。
2. 事先指定录制的时间段,如果该时间段内有推流,就启动录制。
限制:
如果不指定录制周期,录制文件会在每6个小时自动生成一个录制文件。
使用流程:
1. 配置自动录制规则
2. 推流
API:
1. 配置录制规则,调用AddLiveAppRecordConfig配置APP录制,输出内容保存到OSS中。
前提要求:允许直播服务写入用户OSS
说明
修改配置后,新配置对修改之前的直播流不生效,必须重新推流才能生效!
如果指定了时间段,在该时间段内如果没有推流,自然不会录制。限定时间段的配置规则是一次性的,即当指定的时间段过去之后,该规则不会再触发。需要注意的是,StartTime和EndTime字段填的是UTC时间,请注意和本地时区的对应。
AddLiveAppRecordConfig接口中的AppName和StreamName可以填为*,表示所有AppName和所有StreamName(即不限制AppName或StreamName)。
可以通过AddLiveAppRecordConfig配置多条规则,规则匹配时存在优先级:如果想知道自动录制是否生效,或者希望针对每个录制文件做实时处理,可以设置录制回调,详见:录制内容检索与管理。
同时指定DomainName、AppName(不为*)、StreamName(不为*)的优先级最高。
同时指定DomainName、AppName(不为*)的优先级次之。
单独指定DomainName,AppName为*(即只限定域名)的优先级最低。
自动录制每隔一定周期(周期时间通过RecordFormat.N.CycleDuration字段配置)会产生一个录制文件。如果在一个录制周期内,直播流发生了断流,但是在3分钟内,该直播流又推上来了,那么仍会在同一个录制文件中继续录制。这就意味着,一条直播流必须断流超过3分钟,才会生成最后一个录制文件。如果您希望修改这个默认的3分钟断流时间,可以提交工单在后台修改。
请求参数 名称类型是否必选示例值描述
Action String 是 AddLiveAppRecordConfig
系统规定参数,取值:AddLiveAppRecordConfig。
AppName String 是 testApp
直播流所属应用名称。
支持通配符(*),代表该域名下所有的AppName。
DomainName String 是 test.com
加速域名,指播放域名。
OssBucket String 是 testBucket
OssBucket名称。
OssEndpoint String 是 oss-cn-shanghai.aliyuncs.com
OssEndpoint域名。
RecordFormat.N.Format String 否 m3u8
格式。目前支持m3u8、flv或mp4。
RecordFormat.N.OssObjectPrefix String 否 record/{AppName}/{StreamName}/{Sequence}{EscapedStartTime}{EscapedEndTime}
OSS存储的录制文件名,小于256 byte,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}变量。默认支持1小时周期录制,最小周期时间15分钟,最多6小时。
例如:record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}。
<note>{StartTime}/{EndTime}格式为:2006-01-02-15:04:05,{EscapedStartTime}/{EscapedEndTime}格式为:2006-01-02-15-04-05,推荐使用 Escaped 格式,避免特殊字符在URL中带来的一些问题。</note>
RecordFormat.N.SliceOssObjectPrefix String 否 record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}
当format格式是m3u8录制,则需要配置,表示ts切片名称。默认30秒一片,小于256byte,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。