阿里云视频直播录制--自动录制

  一旦推流就启动录制,一旦断流就停止录制。您可以对某个域名下,所有流、某个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}。

例如:record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence},参数值必须包含{UnixTimestamp}和{Sequence}变量。

RecordFormat.N.CycleDuration Integer 1

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

StreamName String teststream

流名称。

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

录制开始时间。格式:UTC时间。

设置的时间必须是实际推流时间(这条流计划推流录制的时间)开始7天之内的时间,只在流级别录制(StreamName不为空)有效。

EndTime String 2018-04-16T09:57:21Z

录制结束时间。格式:UTC时间。

设置的时间必须大于StartTime,且与StartTime相差不应超过7天,超过7天将按照7天计算,只在流级别录制(StreamName不为空)有效。

OnDemand Integer 1

按需录制。

  • 0表示关闭。
  • 1表示通过HTTP回调方式。
  • 2表示解析推流参数按需录制
  • 7表示默认不录制,通过RealTimeRecordCommand接口手动控制录制启停。
 
说明 使用1方式时候需要先通过AddLiveRecordNotifyConfig接口设置OnDemandUrl,否则默认不录制。

返回数据

 
名称类型示例值描述
RequestId String 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8

请求ID

    2. 删除自动录制配置,调用DeleteLiveAppRecordConfig解除录制配置。

    通过AddLiveAppRecordConfig添加的配置,可以使用该接口删除。会删除DomainName、AppName、StreamName对应的配置。

    

请求参数

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

系统规定参数。取值:DeleteLiveAppRecordConfig。

AppName String testApp

直播流所属应用名称。

DomainName String www.yourdomain.com

您的加速域名。

StreamName String teststream

流名称。

返回数据

 
名称类型示例值描述
RequestId String 6EBD1AC4-C34D-4AE1-963E-B688A228BE31

请求ID

    3. 查询所有配置,调用DescribeLiveRecordConfig查询域名下所有App录制配置。

    根据DomainName、AppName、StreamName匹配查询,以列表形式返回(可能有多条配置)。支持分页和排序。

    

请求参数

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

系统规定参数。取值:DescribeLiveRecordConfig。

DomainName String www.yourdomain.com

您的加速域名。

AppName String testApp

直播流所属应用名称。

Order String asc

排序。取值:

  • asc(默认值):升序
  • desc:降序
PageNum Integer 1

当前页码。默认值:1。

PageSize Integer 5

每页大小。默认值:10,取值范围:5~30。

StreamName String myStreamName

直播流名称。

返回数据

 
名称类型示例值描述
RequestId String 5056369B-D337-499E-B8B7-B761BD37B08A

请求ID。

LiveAppRecordList    

录制配置。

DomainName String test.com

流所属加速域名。

AppName String testApp

流所属应用名称。

OssEndpoint String oss-cn-shanghai.aliyuncs.com

OSS endpoint。

OssBucket String test123

OSS存储bucket名称。

CreateTime String 2016-05-20T09:33:38Z

创建时间。

RecordFormatList    

格式列表。

Format String xxx

格式名称。

OssObjectPrefix String xxx

OSS存储文件名。

SliceOssObjectPrefix String xxx

存储分片的OSS文件名。

CycleDuration Integer 3600

周期录制时间,单位:秒。

EndTime String 2018-11-08T03:49:18Z

计划录制结束时间,UTC时间。

OnDemond Integer 0

按需录制。可取值:0 | 1 | 2。0表示关闭,1表示通过HTTP回调方式,2表示通过推流参数方式。

使用1方式时候需要设置OnDemandCallback, 否则默认不录制。

StartTime String 2018-11-08T02:49:18Z

计划录制开始时间,UTC时间。

StreamName String myStreamName

流名称。

PageNum Integer 5

分页的页码。

PageSize Integer 10

每页大小。

Order String desc

排序。

TotalPage Integer 20

总页数。

TotalNum Integer 12

符合条件的总个数。

原文地址:https://www.cnblogs.com/wmzll/p/14089927.html