Q:新版直播状态回调在哪里设置?
在域名管理找到RTMP推流域名进行设置,目前只支持RTMP的推流域名的设置
Q:我服务端有什么办法可以知道客户端或者推流端已经在开始推流或者结束了?
您可以在七牛PORTAL的直播产品下的域名配置页面中的进行相关配置
开播回调
当有新的推流连接时,会触发开播回调
断播回调
当推流连接断开时,会触发断播回调
断播回调延迟
为了避免在快速的断开重连场景,触发较多的回调,可以配置断播回调延迟。如果流断开后在这个延迟时间内重新推上来的话,则这次重连不会触发任何回调
回调参数
支持三种类型参数,静态参数、系统内置参数和推流URL中的参数。
系统内置参数
参数
解释
$(title)
流名
$(remoteIP)
推流客户端IP
$(domain)
推流域名
$(timestamp)
回调的时间戳(秒)
推流URL中的参数以$(_param)表示
回调格式
当前支持如下三种格式
FORM: HTTP的POST请求,参数以application/x-www-form-urlencoded格式在BODY里
GET: HTTP的GET请求,参数在请求URL中
JSON: HTTP的POST参数,参数application/json格式在BODY里
示例
配置的开播回调地址为http://foo.com/callback,回调格式FORM,回调参数如下
参数名
参数
title
$(title)
ip
$(remoteIP)
status
connected
extra
$(_extra)
推流URL为 rtmp://domain/hub/stream1?extra=foo
则回调请求为
POST /callback HTTP/1.1
User-Agent: Go-http-client/1.1
Content-Length: 58
Authorization: Qiniu lfRUng2iBkokHegPMoQuyPaD-l725db2v1GruqD3:4qqs8YOcyJpi_LWXYQvUZe901Rk=
Content-Type: application/x-www-form-urlencoded
X-Reqid: iRMAAGs6zku79-EU
Accept-Encoding: gzip
Host: foo.com
Cache-Control: max-age=259200
Connection: keep-alive
extra=foo&ip=22.73.202.226&status=connected&title=stream1
Q:头信息中 Authentication 字段也可以进行验证吗?
Authentication 字段和客户端签算的 QiniuToken 是一样的,这个也可以用于回调验证
直播回调验证 QiniuToken java 生成方法:
https://github.com/pili-engineering/pili-sdk-java/blob/master/src/main/java/com/qiniu/pili/Mac.java#L23
public String signRequest(URL url, String method, byte[] body, String contentType)
参数解释:
url :客户回调服务器的 url
method :POST
body : 我们回调给客户的 body,一个 json 文件
contentType : application/json