适用场景

  • 只要有推流就录制。同一条直播流推上来后,要么录制,要么不录制。
  • 事先指定录制的时间段,如果该时间段内有推流,就启动录制。

限制

如果不指定录制周期,录制文件会在每6小时自动生成一个录制文件。

使用流程

  1. 配置自动录制规则
  2. 推流
涉及到的API包括:
API名称 说明
AddLiveAppRecordConfig 配置自动录制规则
DeleteLiveAppRecordConfig 如果不再需要某项规则,可以通过该接口删除。
DescribeLiveRecordConfig 查询所有配置的规则

实践示例

指定某个appname下所有流自动录制

下例是最简单的用法,指定域名为 test.com,appname为 test123下的所有直播流自动录制,录制格式为M3U8,单个录制文件周期默认为1小时,录制到 oss-cn-shanghai.aliyuncs.com名为 test123的bucket中:
  1. 调用AddLiveAppRecordConfig接口,参数如下:
    /?AppName=test123
    &DomainName=test.com
    &OssBucket=test123
    &OssEndpoint=oss-cn-shanghai.aliyuncs.com
    &RecordFormat.1.Format=m3u8
    &<公共请求参数>
  2. 推流

同时录制M3U8和MP4

在上例的基础上,下例设置同时录制M3U8和MP4两种格式,同时设置MP4的切片周期为半小时:
  1. 调用AddLiveAppRecordConfig接口,参数如下:
    /?AppName=live
    &DomainName=test.com
    &OssBucket=test123
    &OssEndpoint=oss-cn-shanghai.aliyuncs.com
    &RecordFormat.1.Format=m3u8
    &RecordFormat.2.Format=mp4
    &RecordFormat.2.CycleDuration=1800
    &<公共请求参数>
  2. 推流
限定自动录制的时间段
说明 限制条件:该功能仅针对流级别的配置生效(即配置中StreamName字段不为空才生效)。

在上例的基础上,下例限定自动录制的时间段为UTC时间(北京时间-8)2019-02-15 09:00:002019-02-15 21:00:00

  1. 调用AddLiveAppRecordConfig接口,参数如下:
    /?AppName=live
    &DomainName=test.com
    &StreamName=teststream
    &OssBucket=test123
    &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
    &<公共请求参数>
  2. 推流

注意事项

  • 修改配置后,新配置对修改之前的直播流不生效,必须重新推流才能生效!
  • 如果指定了时间段,在该时间段内如果没有推流,自然不会录制。限定时间段的配置规则是一次性的,即当指定的时间段过去之后,该规则不会再触发。需要注意的是,StartTime和EndTime字段填的是UTC时间,请注意和本地时区的对应。
  • AddLiveAppRecordConfig接口中的AppName和StreamName可以填为*,表示所有AppName和所有StreamName(即不限制AppName或StreamName)。
  • 可以通过AddLiveAppRecordConfig配置多条规则,规则匹配时存在优先级:
    • 同时指定DomainName、AppName(不为*)、StreamName(不为*)的优先级最高。
    • 同时指定DomainName、AppName(不为*)的优先级次之。
    • 单独指定DomainName,AppName为*(即只限定域名)的优先级最低。
  • 如果想知道自动录制是否生效,或者希望针对每个录制文件做实时处理,可以设置录制回调,详见:录制内容检索与管理
  • 自动录制每隔一定周期(周期时间通过RecordFormat.N.CycleDuration字段配置)会产生一个录制文件。如果在一个录制周期内,直播流发生了断流,但是在3分钟内,该直播流又推上来了,那么仍会在同一个录制文件中继续录制。这就意味着,一条直播流必须断流超过3分钟,才会生成最后一个录制文件。如果您希望修改这个默认的3分钟断流时间,可以提交工单在后台修改。