lalserver作为流媒体服务器,可将内部的一些事件通过HTTP POST的方式,传递给业务方。
业务方结合lalserver的HTTP Notify和HTTP API,可以更好的搭建专属自己的直播系统。
业务方的URL地址在配置文件中http_notify
块中配置,具体见:lal配置文件说明
HTTP Notify列表
1 2 3 4 5 6 7
| 1. on_update // 定时汇报所有group、session的信息 2. on_pub_start // 别人推流到当前节点 3. on_pub_stop // 推流停止 4. on_sub_start // 别人从当前节点拉流 5. on_sub_stop // 拉流停止 6. on_rtmp_connect // 收到rtmp connect message信令 7. on_server_start // 服务启动时
|
名词pub,sub
含义见: 《流媒体传输连接类型之session client, server, pub, sub, push, pull》
示例
所有接口使用HTTP POST方式,下面是on_pub_start
的一个示例:
1 2 3 4 5 6 7
| Host: 127.0.0.1:10101 User-Agent: Go-http-client/1.1 Content-Length: 207 Content-Type: application/json Accept-Encoding: gzip
{"server_id":"1","protocol":"RTMP","app_name":"live","stream_name":"test110","url_param":"token=1111","session_id":"RTMPPUBSUB1","remote_addr":"127.0.0.1:52157","has_in_session":true,"has_out_session":false}
|
接口详情
1. on_update
定时汇报所有group、session的信息
1 2 3 4
| { "server_id": "1", // 配置文件中配置。当有多个lalserver向同一个业务系统地址notify时,通过该字段区分不同lalserver节点 groups: [] // 见HTTP API中/api/stat/all_group接口的data/groups字段 }
|
2. on_pub_start
比如使用如下命令向lalserver推送rtmp流时,on_pub_start
的字段如下:
$ffmpeg -re -i wontcry.flv -c:a copy -c:v copy -f flv "rtmp://127.0.0.1:19350/live/test110?token=1111"
1 2 3 4 5 6 7 8 9 10 11
| { "server_id": "1", // 配置文件中配置。当有多个lalserver向同一个业务系统notify时,方便区分不同的lalserver "protocol": "RTMP", // 目前只支持RTMP "app_name": "live", // RTMP url中的app name "stream_name": "test110", // 流名称 "url_param": "token=1111", // RTMP url中的参数 "session_id": "RTMPPUBSUB5", // 连接唯一ID "remotet_addr": "127.0.0.1:52010" // 连接对端地址 "has_in_session": true, // 对应的group中,是否存在输入音视频数据的流 "has_out_session": false // 对应的group中,是否存在输出音视频数据的流 }
|
3. on_pub_stop
字段同on_pub_start
4. on_sub_start
字段同on_pub_start
5. on_sub_stop
字段同on_pub_start
6. on_rtmp_connect
1 2 3 4 5 6 7 8
| { "server_id":"1", "session_id":"RTMPPUBSUB1", "remote_addr":"127.0.0.1:53834", "app":"live", "flashVer":"FMLE/3.0 (compatible; Lavf57.83.100)", "tcUrl":"rtmp://127.0.0.1:19350/live" }
|
7. on_server_start
字段同HTTP API中/api/stat/lal_info
中的data字段。
其他
1 2 3 4 5 6 7
| 本文档基于版本: lal tag: v0.17.0 tag之后的commit id: 3ca25a22d2b6553ff3ef76199c6ce7a2e3c4e842 [doc] fix demo chart http api version: v0.1.3 http notify version: v0.0.5
文档最后修改时间:20201213
|
本文完,作者yoko,尊重劳动人民成果,转载请注明原文出处: https://pengrl.com/p/20101/