· 数据库设计
· API 文档
swagger 地址:http://127.0.0.1:5200/swagger/index.html
api/gb28181/list
功能:获取gb28181设备及通道信息
范例:
http://127.0.0.1:5200/api/gb28181/list
参数: 无
响应:
{
"data": [
{
"deviceDto": {
"id": 1,
"deviceId": "34020000001320000013",
"ip": "192.168.0.13",
"port": 5060,
"hearTime": "2022/6/26 6:38:34",
"offTime": null,
"status": "REGIST",
"channelCount": 1,
"channelDto": [
{
"id": 1,
"deviceId": "34020000001320000013",
"channelId": "34020000001320000013",
"name": "IPdome",
"manufacturer": "Hikvision",
"address": "Address",
"status": "ON",
"rtspUrl_Live": "rtsp://192.168.0.46:554/rtp/2D165855",
"flvUrl_Live": "http://192.168.0.46:80/rtp/2D165855.live.flv",
"ssrc_Live": "2D165855",
"rtspUrl_History": null,
"flvUrl_History": null,
"ssrc_History": null,
"type": "EQUIP"
}
]
}
}
],
"code": 0,
"msg": "操作成功"
}
api/gb28181/control
功能:PTZ控制
范例:
http://localhost:5200/api/gb28181/control?deviceId=34020000001320000013&channelId=34020000001320000013&cmd=7&speed=8&preset=0
参数:
参数名 | 必传 | 含义 |
deviceId | 是 | 设备号 |
channelId | 是 | 通道号 |
cmd | 是 | 操作类型 0:停止; 1:上; 2:左上; 3:右上; 4:下; 5:左下; 6:右下; 7:左; 8:右; 9:变焦+; 10:变焦-; 11:变倍+; 12:变倍-; 13:光圈+; 14:光圈-; 15:设置预置位; 16:请往预置点; 17:删除预置位 |
speed | 是 | 速度 |
preset | 是 | 预置点 |
响应:
{"data":true,"code":0,"msg":"操作成功"}
api/gb28181/control
功能:PTZ控制
范例:
http://localhost:5200/api/gb28181/control?deviceId=34020000001320000013&channelId=34020000001320000013&cmd=7&speed=8&preset=0
参数:
参数名 | 必传 | 含义 |
deviceId | 是 | 设备号 |
channelId | 是 | 通道号 |
cmd | 是 | 操作类型 0:停止; 1:上; 2:左上; 3:右上; 4:下; 5:左下; 6:右下; 7:左; 8:右; 9:变焦+; 10:变焦-; 11:变倍+; 12:变倍-; 13:光圈+; 14:光圈-; 15:设置预置位; 16:请往预置点; 17:删除预置位 |
speed | 是 | 速度 |
preset | 是 | 预置点 |
api/gb28181/live
功能:在线直播
范例:
http://localhost:5200/api/gb28181/live?deviceId=34020000001320000013&channelId=34020000001320000013
参数:
参数名 | 必传 | 含义 |
deviceId | 是 | 设备号 |
channelId | 是 | 通道号 |
响应
{
"data": {
"taskNote": "34020000001320000013-34020000001320000013-在线直播",
"taskResult": "执行成功",
"isExcuted": true,
"error": null,
"rtspUrl": "rtsp://192.168.0.46:554/rtp/3A012A3E",
"flvUrl": "http://192.168.0.46:80/rtp/3A012A3E.live.flv",
"ssrc": "3A012A3E",
"autioRtpIp": "",
"autioRtpPort": 0,
"lstRecordItem": null
},
"code": 0,
"msg": "操作成功"
}
api/gb28181/history
功能:录像点播
范例:
http://localhost:5200/api/gb28181/history?deviceId=34020000001320000013&channelId=34020000001320000013&startTime=1656172800&endTime=1655406000
参数:
参数名 | 必传 | 含义 |
deviceId | 是 | 设备号 |
channelId | 是 | 通道号 |
startTime | 是 | 起始时间戳 |
endTime | 是 | 结束时间戳 |
响应
{
"data": {
"taskNote": "34020000001320000013-34020000001320000013-录像点播",
"taskResult": "执行成功",
"isExcuted": true,
"error": null,
"rtspUrl": "rtsp://192.168.0.46:554/rtp/3A012A3E",
"flvUrl": "http://192.168.0.46:80/rtp/3A012A3E.live.flv",
"ssrc": "3A012A3E",
"autioRtpIp": "",
"autioRtpPort": 0,
"lstRecordItem": null
},
"code": 0,
"msg": "操作成功"
}
{
"data": {
"taskNote": "34020000001320000013-34020000001320000013-录像点播",
"taskResult": "执行失败:任务34020000001320000013-34020000001320000013-录像点播,执行超时",
"isExcuted": false,
"error": "任务34020000001320000013-34020000001320000013-录像点播,执行超时",
"rtspUrl": null,
"flvUrl": null,
"ssrc": null,
"autioRtpIp": "",
"autioRtpPort": 0,
"lstRecordItem": null
},
"code": 0,
"msg": "操作成功"
}
· 程序目录结构
· 设计架构:前后端分离(前端layui + 后端netcore)
抓包文件
// 语音广播通知
// 对讲流程:https://blog.csdn.net/wgg_126/article/details/115373068
// 海康实现:https://blog.csdn.net/qq_38795209/article/details/110953058)
// 摄像头 -> GB28181Server 正常
// 摄像头 -> NVR -> GB28181Server 异常
// 摄像头 -> 下级平台 -> GB28181Server 异常
g711 文件制作
ffmpeg -i warn.wav -acodec pcm_alaw -f alaw -ac 1 -ar 8000 -vn warn.g711a
ffplay -i out1_8k.g711a -f alaw -ac 1 -ar 8000
qq:505645074