lalmax的gb28181功能为单端口监听(TCP/UDP监听端口可以使用tcp_listen_port和udp_listen_port进行配置),根据INVITE消息中的ssrc来区分具体流名,详细的配置见gb28181_config
目前主要提供的API如下
返回信息格式如下
{
"code": <int64>, // 状态码
"msg": <string>, // 状态码对应的解释
"data": <any> // 具体返回信息
}
其中code和msg的对应关系如下
1000: success
1001: 请求参数错误
1002: 服务繁忙
1003: 设备暂时未注册
1004: 设备停止播放错误
API含义: 获取注册的设备信息
Method: GET
data信息:
"data": {
"device_items": [
{
"device_id": <string>, // 设备ID
"channels": [ // 通道信息
{
"channel_id": <string>, // 通道ID
"name": <string>, // 设备名称
"manufacturer": <string>, // 制造厂商
"owner: <string>, // 设备归属
"civilCode": <string>, // 行政区划编码
"address": <string>, // 地址
"status": <string>, // 设备状态,ON/OFF
"longitude": <string>, // 经度
"latitude": <string> // 纬度
}
]
}
]
}
示例
curl http://127.0.0.1:1290/api/gb/device_infos -X GET
{
"code":1000,
"msg":"success",
"data":{
"device_items":[
{
"device_id":"34020000001320000001",
"channels":[
{
"channel_id":"34020000001320000001",
"name":"Camera 01",
"manufacturer":"Hikvision",
"owner":"Owner",
"civilCode":"3402000000",
"address":"Address",
"status":"ON",
"longitude":"",
"latitude":""
}
]
}
]
}
}
API含义: 更新全部信息
Method: POST
请求body信息: 无
data信息: 无
示例:
curl http://127.0.0.1:1290/api/gb/update_all_notify -X POST
{
"code":1000,
"msg":"success"
}
API含义: 更新某个设备信息
Method: POST
请求body信息
{
"device_id": <string> // 设备ID
}
data信息: 无
示例:
curl "http://127.0.0.1:1290/api/gb/update_notify" -X POST -d '{"device_id": "34020000001320000001"}'
{
"code":1000,
"msg":"success"
}
API含义: 播放某通道
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
"network": <string>, // 传输协议类型, tcp/udp
"stream_name": <string> // 对应的流名,不指定的话就使用channel_id
"single_port": <bool> // 是否单端口
"dump_file_name": <string> // dump文件路径
}
data信息:
{
"stream_name": <string> // 流名
}
示例:
curl "http://127.0.0.1:1290/api/gb/start_play" -X POST -d '{"device_id": "34020000001320000001", "channel_id": "34020000001320000001", "network": "udp", "stream_name": "test001}'
{
"code":1000,
"msg":"success"
"data": {
"stream_name": "test001"
}
}
API含义: 停止播放某通道
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
"stream_name": <string> // ssrc对应的流名,不指定的话就使用channel_id
}
data信息: 无
示例:
curl "http://127.0.0.1:1290/api/gb/stop_play" -X POST -d '{"device_id": "34020000001320000001", "channel_id": "34020000001320000001", "stream_name": "test001}'
{
"code":1000,
"msg":"success"
}
API含义: ptz 方向控制
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
"up": <bool>, // 上
"down": <bool> // 下
"left": <bool> // 左
"right": <bool> // 右
"speed": <int> // 步长,1~8
}
API含义: 镜头变倍
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
"zoom_out": <bool>, // 缩小
"zoom_in": <bool> // 放大
"speed": <int> // 步长,1~8
}
API含义: 光圈控制和聚焦控制
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
"iris_in": <bool>, // 光圈小
"iris_out": <bool> // 光圈大
"focus_near": <bool> // 聚焦近
"focus_far": <bool> // 聚焦远
"speed": <int> // 步长,1~8
}
API含义: 预置位操作
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
"cmd": <int>, // 0:添加,1:删除,2:调用
"point": <int> // 预置点
}
API含义: 停止ptz
Method: POST
请求body信息:
{
"device_id": <string>, // 设备ID
"channel_id": <string>, // 通道ID
}