zoukankan      html  css  js  c++  java
  • 阿里云视频直播录制--自动录制

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

    符合条件的总个数。

  • 相关阅读:
    Javascript本质第二篇:执行上下文
    Javascript本质第一篇:核心概念
    跨线程委托执行
    .NET中STAThread和MTAThread
    用管道实现流的分支
    Async和Await异步编程的原理
    在.NET中使用管道将输出流转换为输入流
    致木兄的一封信
    完整打造一个多功能音乐播放器项目(初步设想跟酷狗类似)
    新冠疫情下各大网站的变化
  • 原文地址:https://www.cnblogs.com/wmzll/p/14089927.html
Copyright © 2011-2022 走看看