• 阿里云视频直播录制--按需录制


    按需录制,在自动录制的基础上,您可以动态决定具体某条流是否需要录制。

    适用场景:

      在自动录制的场景下,根据事先设定的配置,一条直播流要么录制,要么不录制,不可以动态修改录制行为。如果您想动态地控制录制的行为,可以使用按需录制的功能。

    原理:

      按需录制的原理是当直播流推流上来之后,直播录制服务会发送一条HTTP回调给您事先设定的后台服务,通过该回调的返回内容决定是否录制这条直播流,并且可以动态的修改录制格式和录制周期。

           

    LIVE代表阿里云视频服务中心,APP业务服务代表你的应用服务

    在这里,您需要开发上图中的APP业务服务,接收HTTP回调,并根据您自身的业务逻辑决定是否录制。

    使用流程:

    1. 和自动录制一样,调用AddLiveAppRecordConfig接口。其中OnDemand字段填1,表示通过HTTP回调开启按需录制。
    2. 调用AddLiveRecordNotifyConfig接口,设置OnDemandUrl字段。
    3. 推流
    4. APP业务服务接收到该推流的按需录制回调,根据自身业务决定是否录制,返回内容。
    5. 直播录制服务根据按需录制回调返回的结果,启动录制或不启动录制。

    注意事项:

      如果没有设置OnDemandUrl,就不会有按需录制回调,默认行为是不录制。

    涉及到的API包括:

     
    API名称说明
    AddLiveAppRecordConfig 配置自动录制规则
    DeleteLiveAppRecordConfig 如果不再需要某项规则,可以通过该接口删除。
    DescribeLiveRecordConfig 查询所有配置的规则
    AddLiveRecordNotifyConfig 配置某个域名下的录制回调,包括事件回调和按需录制回调。
    DeleteLiveRecordNotifyConfig 如果不再需要某个域名的录制回调,可以通过该接口删除。
    DescribeLiveRecordNotifyConfig 查询某个域名的录制回调
    UpdateLiveRecordNotifyConfig 更新某个域名的录制回调
    按需录制回调 按需录制回调给您的HTTP消息定义

    接口详情:

      1. 配置自动录制规则 (详情请参见:https://www.cnblogs.com/wmzll/p/14089927.html

      2. 删除自动录制配置(详情请参见:https://www.cnblogs.com/wmzll/p/14089927.html

      3. 查询所有配置规则 (详情请参见:https://www.cnblogs.com/wmzll/p/14089927.html

      4. 配置某个域名下的录制回调,包括事件回调和按需录制回调。调用AddLiveRecordNotifyConfig添加域名级别录制回调配置。

    请求参数

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

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

    DomainName String www.yourdomain.com

    您的加速域名。

    NotifyUrl String http://www.yourdomain.cn/examplecallback.action

    录制回调(包括录制事件和状态回调) url 地址。

    • 必须以http://或者https://开头。
    OnDemandUrl String http://www.yourdomain.cn/ondemandcallback.action

    按需录制回调 url 地址。

    NeedStatusNotify Boolean false

    是否需要录制任务状态回调,可取值:true | false。

    默认值:false。

    返回数据

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

    请求ID。

     

        5. 删除录制回调,调用DeleteLiveRecordNotifyConfig删除域名级别录制回调配置。

    请求参数

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

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

    DomainName String www.yourdomain.com

    您的加速域名。

    返回数据

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

    请求ID。

        6. 查询某个域名的录制回调,调用DescribeLiveRecordNotifyConfig查询域名级别录制回调配置。

    请求参数

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

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

    DomainName String www.yourdomain.com

    您的加速域名。

    返回数据

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

    请求ID。

    LiveRecordNotifyConfig    

    域名录制回调配置。

    DomainName String test.com

    流所属加速域名。

    NotifyUrl String http://www.yourdomain.cn/examplecallback.action

    录制回调地址。

    NeedStatusNotify Boolean false

    是否需要录制任务状态回调。

    OnDemandUrl String http://www.yourdomain.cn/ondemandcallback.action

    按需录制回调url地址。

        7. 更新某个域名的录制回调, 调用UpdateLiveRecordNotifyConfig更新域名级别录制回调配置。

    请求参数

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

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

    DomainName String test.com

    加速域名。

    NotifyUrl String http://www.yourdomain.cn/examplecallback.action

    录制回调(包括事件回调和状态回调)url地址。

    • 必须以http://https://开头。
    • 需要做url encode。
    OnDemandUrl String http://www.yourdomain.cn/ondemandcallback.action

    按需回调url地址。

    • 必须以http://https://开头。
    • 需要做url encode。
    NeedStatusNotify Boolean false

    是否需要录制任务状态回调,可取值:true | false。

    默认值:false。

    返回数据

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

    请求ID

          添加域名级别录制回调配置时,您可以添加以下内容:

        • 录制回调(包括录制文件生成事件回调、录制任务状态回调)URL地址,详见 录制事件回调
        • 按需录制回调URL地址 按需录制回调
        • 是否需要录制任务状态回调。

            录制事件回调

              指在你推流成功并且开始录制的时候,阿里云视频服务中心,回调你配置的回调接口,并且会携带一些参数。参数如下:

            

    {
      "domain": "qt01.alivecdn.com",
      "app": "mp4flvtest_flv",
      "stream": "callback_test",
      "uri": "mp4flvtest_flv/callback_test/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
      "duration": 69.403,
      "start_time": 1488985786,
      "stop_time": 1488985840
    }
    其中,domain、app、stream分别为录制域名、应用名和流名,uri 为目标录制文件在用户录制 OSS Bucket 下的路径,duration、start_time、stop_time 分别为目标录制文件录制内容时长和起止时间。

      

    录制状态回调示例,当 NeedStatusNotify=true 时产生

     1. 录制开始事件回调, 表示录制已经成功开始。

    {
    "domain": "gs_domain",
    "app": "gs_app",
    "stream": "gs_stream",
    "event": "record_started"
    }
    其中,domain, app, stream分别为录制域名,应用名和流名,event为事件名,可以为record_started/record_paused/record_resumed。

      2. 录制暂停事件回调, 表示录制已经成功暂停。

    {
    "domain": "gs_domain",
    "app": "gs_app",
    "stream": "gs_stream",
    "event": "record_paused"
    }
    

      3. 录制继续事件回调, 表示录制已经成功恢复。

    {
    "domain": "gs_domain",
    "app": "gs_app",
    "stream": "gs_stream",
    "event": "record_resumed"
    }
    

          按需录制回调

            进行录制配置之后,您可以选择是否按需录制。

            目前,按需录制包括两种方式:

          • 通过推流参数(暂不支持)

          • 通过HTTP回调

            HTTP回调指用户指定一个回调地址,并设置一个domain、app或stream级别的录制为按需录制,当录制服务收到匹配domain、app或stream名称的流时向用户的回调地址发送请求(请求包含5个参数),来询问用户是否需要录制这路流。请您继续阅读以下内容了解 HTTP回调。

            

                  请求参数
     
    参数类型描述
    domain String 域名。
    app String 应用名称。
    stream String 流名称。
    codec String 编码方式。
    • 取值:h264、h265。
    • 如果未传递,默认为:h264。
    vbitrate String 视频码率。
    • 单位:Kbps。
    • 例如:2000表示2M码率。
                  返回参数
     
    参数类型是否必选描述
    ApiVersion String

    API版本。

    默认:1.0版本。

    NeedRecord Bool 是否需要录制。
    Interval Json Object 具体格式的录制周期变化。
    • 取值范围:5-21600。
    • 单位:秒。
    Format Array 录制格式,支持MP4、FLV、M3U8。
  • 相关阅读:
    原代码,反码,解释和具体的补充 Java在>>和>>>差异
    开源 自由 java CMS
    Socket方法LAN多线程文件传输
    《》猿从程序书评项目经理-猿自办节目
    今年,我开始在路上
    mysql 拒绝访问的解决办法
    Mysql连接错误:Mysql Host is blocked because of many connection errors
    基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码
    【转】URL编码(encodeURIComponent和decodeURIComponent)
    oracle sql日期比较
  • 原文地址:https://www.cnblogs.com/wmzll/p/14090105.html
Copyright © 2020-2023  润新知