本文介绍自动录制的使用流程、注意事项和实践示例。
使用场景
只要有推流就会进行自动录制。同一条直播流推流,要么录制,要么不录制。
指定录制的时间段,如果该时间段内有推流,就启动自动录制。
使用流程
配置自动录制规则,调用接口请参见AddLiveAppRecordConfig。
进行推流,详细内容请参见推流、拉流与播流。
相关API参见:
API名称 | 说明 |
如果不再需要某项规则,可以通过该接口删除。 | |
查询所有配置的规则 |
注意事项
修改配置后,新配置对修改之前的直播流不生效,必须重新推流才能生效。
如果指定了时间段,在该时间段内如果没有推流,自然不会录制。限定时间段的配置规则是一次性的,即当指定的时间段过去之后,该规则不会再触发。需要注意的是,StartTime和EndTime字段填的是UTC时间,请注意和本地时区的对应。
AddLiveAppRecordConfig接口中的AppName和StreamName可以填为*,表示所有AppName和所有StreamName(即不限制AppName或StreamName)。
如果想知道自动录制是否生效,或者希望针对每个录制文件做实时处理,可以设置录制回调,详见:录制内容检索与管理。
自动录制每隔一定周期(周期时间通过RecordFormat.N.CycleDuration字段配置)会产生一个录制文件。如果在一个录制周期内,直播流发生了断流,但是在3分钟内,该直播流又推上来了,那么仍会在同一个录制文件中继续录制。这就意味着,一条直播流必须断流超过3分钟,才会生成最后一个录制文件。
如果不指定录制周期,录制文件会在每6小时自动生成一个录制文件。
可以通过AddLiveAppRecordConfig配置多条规则,规则匹配时存在优先级:
同时指定DomainName、AppName(不为*)、StreamName(不为*)的优先级最高。
同时指定DomainName、AppName(不为*)的优先级次之。
单独指定DomainName,AppName为*(即只限定域名)的优先级最低。
实践示例
指定某个appname下所有流自动录制
下例是最简单的用法,指定域名为example.com
,appname为liveApp****下的所有直播流自动录制,录制格式为M3U8,单个录制文件周期默认为1小时,录制到oss-cn-shanghai.aliyuncs.com
名为liveBucket****的bucket中:
调用AddLiveAppRecordConfig接口,参数如下:
/?AppName=liveApp**** &DomainName=example.com &OssBucket=liveBucket**** &OssEndpoint=oss-cn-shanghai.aliyuncs.com &RecordFormat.1.Format=m3u8 &<公共请求参数>
推流。
同时录制M3U8和MP4
在上例的基础上,下例设置同时录制M3U8和MP4两种格式,同时设置MP4的切片周期为半小时:
调用AddLiveAppRecordConfig接口,参数如下:
/?AppName=liveApp**** &DomainName=example.com &OssBucket=liveBucket**** &OssEndpoint=oss-cn-shanghai.aliyuncs.com &RecordFormat.1.Format=m3u8 &RecordFormat.2.Format=mp4 &RecordFormat.2.CycleDuration=1800 &<公共请求参数>
推流。
限定自动录制的时间段
限制条件:该功能仅针对流级别的配置生效(即配置中StreamName字段不为空才生效)。
在上例的基础上,下例限定自动录制的时间段为UTC时间(北京时间-8)2019-02-15 09:00:00
到2019-02-15 21:00:00
。
调用AddLiveAppRecordConfig接口,参数如下:
/?AppName=liveApp**** &DomainName=example.com &StreamName=liveStream**** &OssBucket=liveBucket**** &OssEndpoint=oss-cn-shanghai.aliyuncs.com &RecordFormat.1.Format=m3u8 &RecordFormat.2.Format=mp4 &RecordFormat.2.CycleDuration=1800 &StartTime=2019-02-15T01:00:00Z &EndTime=2019-02-15T13:00:00Z &<公共请求参数>
推流。
- 本页导读 (1)