文档中心 > 回调配置
回调配置

最近更新时间:2022-04-29

功能介绍

提供推流、断流、录制、截图回调。
操作步骤
  1. 登录管理控制台,“产品与服务”中选择“视频直播”。
  2. 在视频直播控制台左侧导航栏,选择“功能配置”。
  3. 选择"回调配置"
  4. 选择"推流域名",选择"AppName",填写"回调模板名称""回调密钥","推流回调","断流回调","录制回调","截图回调","描述"。

直播系统回调说明:
  • 回调地址: 用户自定义, 注意:必需是有效的公网HTTP(s)协议的url
  • 请求回调方法: POST
  • 请求回调Body格式为json (请求头部Content-Type会显式指定为"application/json")
  • 支持回调密钥,计算请求Body的md5值,确保用户接口可以判断数据是否被篡改。具体过程如下:
    1.将请求Body和用户配置的回调密钥拼接。 如: 请求Body为字符串A="abc", 回调密钥B="secret", 则拼接后的字符串为"abcsecret"。
    2.计算上一步中拼接后的字符串的md5值。如: md5("abcsecret")="33e7cb694fb6fb2f848af6774d9ff138"。
    3.将上一步得到的md5值作为请求头部"Content-MD5"的值。 如: header["Content-MD5"] = "33e7cb694fb6fb2f848af6774d9ff138"。

1. on_publish(推流回调消息)

参数
参数类型
字段说明
action
String
事件类型,推流回调类型为: on_publish
vhost
String
接入的域名
app
String
appname
stream
String
流名称
param
String
请求参数
tcUrl
String
推流的url地址
session_id
String
sessionId
anchor_ip
String
浮动IP
body 示例:
{
    "action""on_publish",
    "vhost""push.lww0915.unicloudcdn.com.cn",
    "app""app1",
    "stream""stream123_highthd7202",
    "param""?vhost=push.lww0915.unicloudcdn.com.cn&请求参数"
    "tcUrl""rtmp://10.0.118.131:1938/app1",
    "session_id""2cd572ad57334c7486bfc81c655b3b17",
    "anchor_ip""10.0.117.5"
}

2. on_unpublish(断流回调消息)

参数
参数类型
字段说明
action
String
事件类型,推流回调类型为: on_unpublish
vhost
String
接入的域名
app
String
appname
stream
String
流名称
param
String
请求参数
tcUrl
String
推流的url地址
session_id
String
sessionId
anchor_ip
String
浮动IP
body示例:
{
    "action""on_unpublish",
    "vhost""push.lww0915.unicloudcdn.com.cn",
    "app""app1",
    "stream""stream123_highthd7202",
    "param""?vhost=push.lww0915.unicloudcdn.com.cn&请求参数",
    "tcUrl""rtmp://10.0.118.131:1938/app1",
    "ip""10.0.118.131",
    "session_id""2cd572ad57334c7486bfc81c655b3b17",
    "anchor_ip""10.0.117.5",
}

3.on_dvr  回调(录制回调消息)

参数
参数类型
字段说明
action
string
事件类型: on_dvr
version
string
版本信息: v2
vhost
string
推流域名, 如果是视频云的业务,vhost为: {customer_id}.ss.univms
app
string
推流app
stream
string
推流流名
group_id
string
视频云空间ID
start_type
string
视频云业务 录制类型 time:计划录制 manu:手动录制
template
string
对应的录制模板名称
format
string
视频格式: mp4/ts/flv/m3u8 等
width
int
视频的宽(ps), 如果没有视频,则为0
height
int
视频的高(ps),如果没有视频,则为0
vcodec
string
视频编码,如: h264, 如果没有视频,则为[none]
acodec
string
音频编码, 如:aac, 如果没有音频,则为[none]
framerate
int
帧率(fps),如果没有视频,则为0
achannels
int
音频声道数,如果没有音频,则为0
asample_rate
int
音频的采样率(hz)
oss_bucket
string
对象存储桶
oss_endpoint
string
对象存储endpoint
files
array[file]
输出文件在对象存储中的路径列表,如果是非m3u8文件,则数组中的元素为1个,如果是m3u8文件,那么第一个为m3u8文件,后续的为该m3u8文件所包含的ts文件列表。
--file
string
在oss中的存储路径
--start_time
long
录制视频的起始时间戳(服务器物理时间)(s)
--end_time
long
录制视频的结束时间戳(服务器物理时间)(s)
--md5
string
文件md5值
--size
int
文件大小
--last_dts
int
最后一个音视频帧的dts时间戳
--duration
int
按照音视频dts计算得到的视频时长,单位(ms)

另:直播2.0 录制回调字段 参考: 直播回调消息格式

4.on_screenshot 回调(截图回调消息)

参数
参数类型
字段说明
action
string
事件类型: on_snapshot
version
string
版本信息: v2
vhost
string
推流域名, 如果是视频云的业务,vhost为: {customer_id}.ss.univms
app
string
推流app
stream
string
推流流名
group_id
string
视频云空间ID, 如果是视频云的业务
start_typestring视频云业务 录制类型 time:计划截图 manu:手动截图
template
string
对应的截图模板名称
format
string
图片文件格式,如:png/jpg/gif 等
width
int
图像宽度(ps)
height
int
图像高度(ps)
oss_bucket
string
对象存储桶
oss_endpoint
string
对象存储endpoint
files
array[File]
输出文件在对象存储中的路径
-- file
string
在oss 中的存储路径
--create_time
int
文件截图时间戳
--md5
string
文件md5值
--size
int
文件大小
另:直播2.0 截图回调字段 参考:直播回调消息格式

5.截图|录制任务启动 回调消息

参数
参数类型
字段说明
action
string事件类型: on_{dvr|snapshot}_start
versionstring版本信息: v2
vhoststring推流域名, 如果是视频云的业务,vhost为: {customer_id}.ss.univms
appstring推流app
streamstring推流流名
group_idstring视频云空间ID:如果是视频云的业务
templatestring对应的录制模板名称
task_idstring任务ID

6. 截图|录制任务结束 回调消息

参数
参数类型
字段说明
action
string事件类型: on_{dvr|snapshot}_end
versionstring版本信息: v2
vhoststring推流域名, 如果是视频云的业务,vhost为: {customer_id}.ss.univms
appstring推流app
streamstring推流流名
group_idstring视频云空间ID,如果是视频云的业务
templatestring对应的录制模板名称
task_idstring任务ID

7.on_publish_heartbeat回调(推流心跳回调)(官网文档不需要)

body示例:
{"action":"on_publish_heartbeat",                                # 事件类型
"client_id":746,                                                 # SRS客户端ID
"ip":"10.0.117.9",                                               # 客户端IP地址
"vhost":"www.unicloud.com",                                      # 接入的域名
"app":"cctbn",                                                   # appname
"tcUrl":"rtmp://10.0.118.7:1935/cctbn",                          # 推流的url地址
"stream":"1111",                                                 # 流名称
"bitrate":717.00,                                                # 推流码率(kbps)
"bytes":5383125,                                                 # 已经推流的字节数(bytes)
"duration":60000,                                                # 在线时长
"has_video":true,                                                # 是否包含视频帧
"frames":1772,                                                   # 已经推流的视频帧数量
"width":1280,                                                    # 视频的宽
"height":720,                                                    # 视频的高
"vcodec":"H264",                                                 # 视频的编码
"vprofile":"3.1",                                                # h264编码的profile level
"has_audio":true,                                                # 是否包含音频帧
"acodec":"AAC",                                                  # 音频编码
"samplerate":"44100",                                            # 音频采样率
"channels":2,                                                    # 音频的声道数
"aprofile":"LC" }                                                # aac编码的profile level