更新时间:2024-11-22 GMT+08:00

开停播通知

视频直播提供了直播流开停播通知功能,您可以在直播控制台中为推流域名添加接收直播推流或断流通知的地址,通过HTTP接口向用户服务器发送POST请求,将直播流推送成功或中断的状态实时反馈到用户服务器,用户服务器通过200响应返回接口结果。

注意事项

在“亚太-曼谷”区域,完成开停播通知配置后需提交工单申请配置审核,审核通过后开停播通知配置才生效。

启用开停播通知功能后,直播活动中的每一次推流和断流都将会接收到相应的直播状态通知消息。但在推流和断流时间比较相近的情况下,由于网络传输等原因可能会影响服务端接收到消息的时序,即可能会导致接收到的推流和断流通知消息的先后顺序无法对应上。您需要通过查看通知消息中的推流Unix时间戳参数publish_timestamp,确定推流和断流消息是否属于同一次推流活动(同一次推流活动产生的推流和断流通知消息的时间戳是相同的)。

前提条件

新增开停播通知配置

  1. 登录视频直播控制台
  2. 在左侧导航栏中,选择域名管理,进入域名管理页面。
  3. 在需要配置开停播通知的推流域名行,单击“管理”。
  4. 在左侧导航栏中,选择模板配置 > 开停播通知
  5. 单击“添加”,在界面右侧打开的“开停播通知配置”对话框中,添加接收推流开停播通知的URL,如图1所示。

    参数配置说明,如表1所示。
    图1 开停播通知配置
    表1 参数配置

    参数

    说明

    协议

    推流通知地址支持HTTP/HTTPS协议。HTTP可能存在安全问题,推荐使用HTTPS。

    推流通知地址

    通知地址仅支持HTTP和HTTPS协议。

    鉴权密钥(可选)

    鉴权Key值。若需要使用通知鉴权功能,请配置鉴权密钥,否则,留空即可。

    • 支持自定义设置,长度为32-128个字符。
    • 支持自动生成。

  6. 单击“确定”,完成推流开停播通知的配置。

    开始或结束直播推流时,都将收到相应的直播状态通知消息,生成的具体事件通知消息体请参见回调示例

管理开停播通知配置

推流开停播通知配置完成后,还可以根据实际需要进行如下操作。

  • 修改推流通知配置

    推流通知地址创建完成后,若需要修改通知配置,可以通过单击操作列的“修改”,修改接收推流通知的URL或鉴权密钥。

  • 删除推流通知配置

    推流通知地址创建完成后,若需要删除通知配置,可以通过单击操作列的“删除”,删除接收推流通知的URL或鉴权密钥。

回调示例

直播推流和断流生成事件通知示例如下。通知消息体字段如表2所示。

{
    "domain":"push.example.com",
    "app":"live",
    "stream":"example_stream",
    "user_args":"auth_info=yz1TG0PVN/5isfyrGrRj10gKPCWqSS2X02t6QsRrocH+mEq0gQ0g8k6KhalS84sQ+kDprFyqI0yajbYiFmUO8e45B7ryaS+MpJBlYkhwnuFLnRiKK/IXG7.33436b625354564f6e4d4d434f55&cdn=hw",
    "client_ip":"100.111.*.*",
    "node_ip":"112.11.*.*",
    "publish_timestamp":"1587954134",
    "event":"PUBLISH",
    "auth_timestamp":1587954140,
    "auth_sign":"ff3b2bxxx5cfd56e76d72bed4c4aa2dxxxca8c2e46467d205a6417d4fc"
}
表2 消息体字段说明

字段

描述

domain

推流域名。

app

应用名称。

stream

流名称。

user_args

推流参数。

client_ip

推流客户端IP。

node_ip

接受流的节点IP。

publish_timestamp

推流Unix时间戳,一次推流活动会产生相同时间戳的推流和断流消息。

event

直播推流和断流标识。

取值为:

  • PUBLISH:开播。
  • PUBLISH_DONE:停播。

auth_timestamp

事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。

格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)以来的当前时间秒数。

示例:1592639100(即2020-06-20 15:45)

auth_sign

事件通知签名。当配置了“鉴权密钥”时,携带该字段。

auth_sign = HmacSHA256(event + domain + app + stream + auth_timestamp, key)

其中,key为鉴权密钥值。