Skip to content

Latest commit

 

History

History
290 lines (230 loc) · 5.92 KB

gb28181.md

File metadata and controls

290 lines (230 loc) · 5.92 KB

GB28181

lalmax的gb28181功能为单端口监听(TCP/UDP监听端口可以使用tcp_listen_port和udp_listen_port进行配置),根据INVITE消息中的ssrc来区分具体流名,详细的配置见gb28181_config

GB28181相关HTTP API

目前主要提供的API如下

/api/gb/device_infos

/api/gb/update_all_notify

/api/gb/update_notify

/api/gb/start_play

/api/gb/ptz_direction

/api/gb/ptz_zoom

/api/gb/ptz_fi

/api/gb/ptz_preset

/api/gb/ptz_stop

返回信息格式如下

{
    "code": <int64>,    // 状态码
    "msg": <string>,    // 状态码对应的解释
    "data": <any>       // 具体返回信息
}

其中code和msg的对应关系如下
1000: success
1001: 请求参数错误
1002: 服务繁忙
1003: 设备暂时未注册
1004: 设备停止播放错误

/api/gb/device_infos

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/gb/update_all_notify

API含义: 更新全部信息

Method: POST

请求body信息: 无

data信息: 无

示例:

curl http://127.0.0.1:1290/api/gb/update_all_notify -X POST  

{
    "code":1000,
    "msg":"success"
}

/api/gb/update_notify

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/gb/start_play

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/gb/stop_play

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/gb/ptz_direction

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/gb/ptz_zoom

API含义: 镜头变倍

Method: POST

请求body信息:

{
    "device_id": <string>,      // 设备ID
    "channel_id": <string>,     // 通道ID
    "zoom_out": <bool>,        // 缩小
    "zoom_in": <bool>     // 放大
    "speed": <int>  // 步长,1~8
}

/api/gb/ptz_fi

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/gb/ptz_preset

API含义: 预置位操作

Method: POST

请求body信息:

{
    "device_id": <string>,      // 设备ID
    "channel_id": <string>,     // 通道ID
    "cmd": <int>,        // 0:添加,1:删除,2:调用
    "point": <int>     // 预置点
}

/api/gb/ptz_stop

API含义: 停止ptz

Method: POST

请求body信息:

{
    "device_id": <string>,      // 设备ID
    "channel_id": <string>,     // 通道ID
}

海康设备接入

图片