LiveNVR传统安防摄像机互联网直播-二次开发相关的API接口
LiveNVR安防流媒体服务,支持RTSP稳定拉流接入,支持Onvif协议接入,支持RTMP/HLS/HTTP-FLV分发,将传统安防监控设备互联化,无插件直播等。
LiveNVR相关二次开发-API接口
概述
API采用Restful风格的Http协议,全部请求都使用Get方式,字符不区分大小写。基本结构如下:
http://<IP>:<Port>/api/<Version>/<Action>?<Param1>=<value>&<Param2>=<Value>&.....
参数
| 参数名称 | 定义 | 说明 |
| IP | Platform Address | IP地址 |
| Port | Platform Port | 通讯端口 |
| Version | API Version | API版本 |
| Action | Action | 执行的操作 |
| Param | Action Parameter | 操作所使用的参数,可以有多个参数,每个参数对应一个Value。 |
| Value | Parameter Value | 参数值,如果Value的字符串中出现&等特殊字符,则必须用””包住Value。 |
返回值
调用API会返回Json字符串,代表操作返回的结果
{
"LiveQing" : {
"Body" : {
……
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_API_ACK",
"Version" : "1.0"
}
}
}
接口列表
1. 登录LiveNVR
- 接口: /api/v1/login?username=xxx&password=xxx
- 参数
| 名称 | 解释 | 含义 |
| Username | 登陆用户名 | - |
| Password | 登陆密码 | 经过MD5加密的32位字符 |
返回: 200 OK or 401 Unauthorized
{
"LiveQing" : {
"Body" : {
"Token" : "a19cb5f6e7d2449d8d24c8a0fc554ca7"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_LOGIN_ACK",
"Version" : "1.0"
}
}
}
操作: 登录,登陆后会返回token,以后调用接口需要在cookie中携带token信息“token=a19cb5f6e7d2449d8d24c8a0fc554ca7”
2. 注销登陆
接口: /api/v1/logout
返回: 200 OK 401 Unauthorized
{
"LiveQing" : {
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_LOGOUT_ACK",
"Version" : "1.0"
}
}
}
操作: 再次请求接口需要重新登陆
3. 修改密码
接口: /api/v1/modifypassword?oldpassword=xxx&newpassword=xxx
参数
| 名称 | 含义 | 备注 |
| Oldpassword | 旧密码 | 经过MD5加密的字符 |
| Newpassword | 新密码 | 经过MD5加密的字符 |
返回: 200 OK or 401
{
"LiveQing" : {
"Body" : {
"Token" : "8b65982a99664d19bcccc35ff8d2acaf"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_MODIFY_PASSWORD_ACK",
"Version" : "1.0"
}
}
}
操作: 修改密码成功会返回新的token
4. 获取LiveNVR服务信息
- 接口:/api/v1/getserverinfo
- 返回
| 名称 | 含义 | 备注 |
| Server | 服务器软件版本信息 | - |
| RunningTime | 服务器累计运行时长信息 | - |
| Hardware | 服务器硬件版本信息 | - |
| InterfaceVersion | 接口服务版本信息 | - |
报文
{
"LiveQing" : {
"Body" : {
"Hardware" : "x86",
"InterfaceVersion" : "v1",
"RunningTime" : "30 Days 0 Hours 1 Mins 40 Secs",
"Server" : "LiveNVR/1.1 (Build/16.1020; Platform/Win32; State/Development; )"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_INFO_ACK",
"Version" : "1.0"
}
}
}
操作: 显示
5. 【视频广场】显示所有在线通道预览
- 接口:/api/v1/getchannels[?channel=1]
- 参数
| 名称 | 含义 | 备注 |
| channel | 查询指定通道号的信息 | 可选参数。不带channel参数或者channel小于0查看全部通道信息 |
- 返回: 1. 所有设备列表信息,在线&不在线 通道(包含快照信息) 1. 通道名称、通道号、通道快照、通道是否在线
| 名称 | 含义 | 备注 |
| Channel | 通道号 | 通道号 |
| Name | 通道名称 | 通道名称 |
| Online | 是否在线 | 1在线/0离线 |
| SnapURL | 快照地址 | 返回为快照的相对网络地址 |
报文
{
"LiveQing" : {
"Body" : {
"ChannelCount" : "2",
"Channels" : [
{
"Channel" : 1,
"Name" : "channel1",
"Online" : 1,
"SnapURL" : "/snap/1/2016-10-24/20161024125212.jpg"
},
{
"Channel" : 2,
"Name" : "channel2",
"Online" : 0,
"SnapURL" : ""
}
]
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_GET_CHANNELS_ACK",
"Version" : "1.0"
}
}
}
操作: H5列表显示
6. 播放单个通道直播
- 接口:/api/v1/getchannelstream?channel=1&protocol=RTMP
- 参数
| 名称 | 含义 | 备注 |
| Channel | 通道号 | - |
| Protocol | 获取直播的协议 | RTMP/HLS |
返回: 直播流地址URL
{
"LiveQing" : {
"Body" : {
"ChannelName" : "通道名"
"URL" : "rtmp://{host}:10035/hls/stream_1"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"Version" : "1.0"
}
}
}
注:返回的URL中带有{host}占位符,{host}即为api接口请求中的IP字段,如果返回的URL为hls地址,那么直接为/hls/stream_1.m3u8地址,需要前端自动拼接成LiveNVR HTTP播放地址,比如LiveNVR的web访问地址为:http://192.168.66.189:10800/,那么返回的hls应该拼接为http://192.168.66.189:10800/hls/stream_1.m3u8,rtmp地址应该拼接为:rtmp://192.168.66.189:10035/hls/stream_1;
- 操作:调用播放器进行播放
7. 视频播放心跳
接口: /api/v1/touchchannelstream?channel=1&line=local&protocol=rtmp
参数: 同接口6
返回: 直播流地址
{
"LiveQing" : {
"Body" : {
"ChannelName" : "通道名"
"URL" : "rtmp://{host}:10035/hls/stream_1"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_TOUCH_CHANNEL_STREAM_ACK",
"Version" : "1.0"
}
}
}
操作:播放视频心跳,60秒内发送一次,否则自动停止推流
8. 获取LiveNVR基本配置信息
- 接口: /api/v1/getbaseconfig
- 返回: 基础配置信息表
| 名称 | 解释 | 备注 |
| ServiceLanPort | LiveNVR服务监听端口 | ReadOnly |
| ServiceLanIP | LiveNVR服务本地地址 | ReadOnly |
| ServiceWanIP | LiveNVR服务公网端口 | 暂时不启作用 |
| ServiceWanPort | LiveNVR服务公网地址 | 暂时不启作用 |
| ChannelSnapInterval | 通道快照间隔 | 单位为分钟 |
| NginxRTMPPort | LiveNVR配套的rtmp服务器端口 | 默认10035 |
报文
{
"LiveQing" : {
"Body" : {
"ChannelSnapInterval" : "120",
"NginxRTMPPort" : "10035",
"ServiceLanIP" : "192.168.66.222; 127.0.0.1; ",
"ServiceLanPort" : "10010",
"ServiceWanIP" : "none-config",
"ServiceWanPort" : "10010"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_BASE_CONFIG_ACK",
"Version" : "v1"
}
}
}
操作:显示
9. 设置LiveNVR基本配置信息
接口: /api/v1/setbaseconfig?ChannelSnapInterval=120&NginxRTMPPort=10035&ServiceLanPort=10010&ServiceWanIP=“none-config”&ServiceWanPort=10010
参数:
返回: 200 OK
{
"LiveQing" : {
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_SET_BASE_CONFIG_ACK",
"Version" : "1.0"
}
}
}
操作:显示配置成功,重启后生效
10. 发现Onvif设备
接口: /api/v1/discoverdevices
返回: 200 OK
{
"LiveQing" : {
"Body" : {
"ChannelCount" : "1",
"Channels" : [
{
"IP" : "192.168.66.222",
"Onvif" : "/onvif/devices",
"Port" : 8080
}
]
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_DISCOVER_DEVICES_ACK",
"Version" : "1.0"
}
}
}
11. 探测设备信息
接口: /api/v1/probedevice?ip=192.168.66.222&username=admin&password=admin
参数:
| 名称 | 含义 | 备注 |
| Username | 登陆用户名 | 设备用户名 |
| Password | 登陆密码 | 设备密码(明文) |
返回:200 OK
{
"LiveQing" : {
"Body" : {
"IP" : "192.168.66.222",
"Onvif" : "/onvif/devices",
"Password" : "admin",
"Port" : "8080",
"Rtsp" : "rtsp://192.168.66.222:554/11",
"UserName" : "admin"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_PROBE_DEVICE_ACK",
"Version" : "1.0"
}
}
}
12. Onvif云台控制
- 接口:/api/v1/ptzcontrol?channel=1&actiontype=continuous&command=down&speed=5&protocol=onvif
- 参数:
| 名称 | 含义 | 备注 |
| channel | 通道ID | 例:1 |
| actiontype | 动作类型 | continuous或者single |
| command | 动作命令 | stop停止、up向上移动、down向下移动、left向左移动、right向右移动、zoomin、zoomout、focusin、focusout、aperturein、apertureout |
| speed | 动作速度 | 例如:5 |
| protocol | 摄像机接入的协议 | 暂时仅支持ONVIF接入的摄像机 |
| reserve | 保留 | 暂未使用 |
只有Onvif类型接入的设备才能支持云台控制功能,同时,设备必须有云台,他才会转动;
13. 单个通道配置
接口: /api/v1/setchannelconfig?Cdn=&Channel=2&Enable=0&IP=192.168.66.22&Name=channel2&Onvif=”/device/service”&Password=admin&Port=8080&Protocol=RTSP&Rtsp=”rtsp//192.168.66.22/22”&UserName=admin&OnDemand=1&Audio=1&Reserve2=0
参数
| 名称 | 含义 | 备注 |
| Channel | 设置的通道号 | 例如:1 |
| Enable | 通道是否启用 | 1启用、0禁用 |
| IP | 摄像机IP地址 | 例如:192.168.66.222 |
| Name | 摄像机名称 | 例如:测试通道 |
| Port | 摄像端口 | 例如:554、8080 |
| Protocol | 摄像机接入的协议 | ONVIF、RTSP |
| Username | 摄像机登陆用户名 | 例如:admin |
| Password | 摄像机登陆密码 | 例如:admin |
| RTSP | 摄像机的RTSP地址 | 例如:rtsp://192.168.66.222/11 |
| ONVIF | 摄像机的Onvif地址 | /onvif/devices |
| TransProtocol | 传输协议 | 选项:TCP、UDP |
| Cdn | 推送的CDN地址 | rtmp://rtmp.aliyun.com/live/209?sign=faefabe&tm=20161005190329 |
| OnDemand | 是否按需直播 | 1启用、0不启用 |
| Audio | 是否启用音频输入 | 1启用、0不启用 |
| Reserve2 | 保留参数2 | 1启用、0不启用 |
返回: 200 OK
{
"LiveQing" : {
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_SET_CHANNEL_CONFIG_ACK",
"Version" : "1.0"
}
}
}
操作:显示配置成功,即时生效!
14. 获取LiveNVR所有通道信息
接口: /api/v1/getchannelsconfig
返回: 通道列表数组信息
{
"LiveQing" : {
"Body" : {
"ChannelCount" : "16",
"Channels" : [
{
"Cdn" : "",
"Channel" : 1,
"Enable" : 1,
"IP" : "192.168.66.222",
"Name" : "channel1",
"OnDemand" : 1,
"Online" : 1,
"Onvif" : "/onvif/devices",
"Password" : "admin",
"Port" : 8080,
"Protocol" : "RTSP",
"Rtsp" : "rtsp://192.168.66.222/11",
"UserName" : "admin",
"Audio" : 0
"Reserve2" : 0
},
{
"Cdn" : "",
"Channel" : 2,
"Enable" : 0,
"IP" : "192.168.66.22",
"Name" : "channel2",
"OnDemand" : 1,
"Online" : 0,
"Onvif" : "/onvif/devices",
"Password" : "admin",
"Port" : 8080,
"Protocol" : "RTSP",
"Rtsp" : "rtsp://192.168.66.22/22",
"UserName" : "admin",
"Audio" : 1
},
……
]
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_GET_CHANNELS_CONFIG_ACK",
"Version" : "1.0"
}
}
}
操作:显示,单个通道可禁用/启用/修改配置
15. 抓取图片
接口:/api/v1/getsnap?channel=1
参数:
| 名称 | 含义 | 备注 |
| channel | 通道号 | - |
- 返回:image/jpeg格式,http body为图片数据
16. 开始录像
接口:/api/v1/startrecord?channel=1&duration=3600
参数:
| 名称 | 含义 | 备注 |
| channel | 通道号 | - |
| duration | 录像时长,单位秒 | 缺省或者为0时,一直录像,直到执行stoprecord接口 |
返回:200 OK
{
"LiveQing" : {
"Header" : {
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_START_RECORD_ACK",
"Version" : "1.0"
}
}
}
17. 停止录像
接口:/api/v1/stoprecord?channel=1
参数:
| 名称 | 含义 | 备注 |
| channel | 通道号 | - |
返回:200 OK
{
"LiveQing" : {
"Header" : {
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_STOP_RECORD_ACK",
"Version" : "1.0"
}
}
}
18. 获取第三方平台配置
接口:/api/v1/getthirdplatformconfig
返回:
第三方平台类型枚举,例如:LiveQing云端流媒体(LiveQing),QQ互联云平台(QQConnect),海康萤石云平台(EZVIZ)
平台地址和端口
平台验证信息,例如:用户名、密码、AppKey、SecretKey
{
"LiveQing" : {
"Body" : {
"ThridPlatform" : "LiveQing",
"ThridPlatformAliveInterval" : "90",
"ThridPlatformCustomize" : "dev",
"ThridPlatformIP" : "www.liveqing.com",
"ThridPlatformPort" : "10000",
"ThridPlatformToken" : "123456",
"ThridPlatformUID" : "NVR00000002"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_GET_THRID_PART_PLATFORM_ACK",
"Version" : "1.0"
}
}
}
操作:显示
19. 设置第三方平台配置
接口: /api/v1/setthirdplatformconfig?ThridPlatform=LiveQing&ThridPlatformIP=www.liveqing.com&ThridPlatformPort=10000&ThridPlatformUID=NVR00000002&ThridPlatformAliveInterval=90&ThridPlatformCustomize=dev
返回: 200 OK
{
"LiveQing" : {
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_SET_THRID_PART_PLATFORM_ACK",
"Version" : "1.0"
}
}
}
操作:显示配置成功,重启后生效!
20. 重启接口
- 接口: /api/v1/restart
- 返回: 200 OK
- 操作: 显示成功
LiveNVR传统安防摄像机互联网直播-二次开发相关的API接口的更多相关文章
- EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码
随着多媒体技术和网络通信技术的迅速发展,视频监控技术在电力系统.电信行业.工业监控.工地.城市交通.水利系统.社区安防等领域得到越来越广泛的应用.摄像头直播视频监控通过网络直接连接,可达到的世界任何角 ...
- 通用安防摄像机通过RTSP转RTMP推流进行H5(RTMP/HLS)直播的方案
EasyNVR摄像机无插件直播方案 随着互联网的发展,尤其是移动互联网的普及,基于H5.微信的应用越来越多,企业也更多地想基于H5.微信公众号来快速开发和运营自己的视频及视频相关性产品,那么传统的安防 ...
- RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播
方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒 ...
- EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码
背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...
- EasyNVR网页Chrome无插件播放安防摄像机视频流是怎么做到web浏览器延时一秒内
背景说明 由于互联网的飞速发展,传统安防摄像头的视频监控直播与互联网直播相结合是大势所趋.传统安防的直播大多在一个局域网内,在播放的客户端上也是有所限制,一般都需要OCX Web插件进行直播.对于安防 ...
- 摄像机互联网直播之EasyCloud云平台与EasyNVS云端管控的全局对比
背景分析 近期,Easy系列推出了EasyNVS,在功能上也是可以满足将内网的视频直播转发到公网,再由公网进行视频流的分发. 听起来和EasyCloud功能上是冲突的,其实两者之间的差别还是存在的,本 ...
- 基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面
之前的"网页直播.微信直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的easynvr"有介绍一些功能.由于客户需求,我们定制一下功能.给该套方案添 ...
- 腾讯RTX二次开发相关的一些注意事项
http://www.cnblogs.com/netWild/p/4241650.html —————————————————————————————————————————————————————— ...
- [原创] 腾讯RTX二次开发相关的一些注意事项
在企业即时通信方面,腾讯的RTX在国内的占有率应该是很高的 所以,就避免不了要与其他系统进行消息集成 腾讯为此提供了二次开发的工具包,支持JAVA.C#.VB等多种开发语言 但是,目前为止,腾讯官方提 ...
- 文字在线转图片二维码的公用API接口
在线生成网址二维码的API接口: 1.百度网盘(可使用https) http://pan.baidu.com/share/qrcode?w=150&h=150&url=ht ...
随机推荐
- 5-Dataloader使用
1. Dataloader使用 ① Dataset只是去告诉我们程序,我们的数据集在什么位置,数据集第一个数据给它一个索引0,它对应的是哪一个数据. ② Dataloader就是把数据加载到神经网络当 ...
- IT技术人的职业发展能力全景图
大家好,我是Edison. 最近在学习一门偏职业发展的课程<程序员的职业发展规划手册>,里面提到了一个IT技术人的职业发展能力全景图,觉得画的十分好,我自己这几年其实也在不断实践整理自己的 ...
- C# WinForm 控件设置双缓存
DataGridView.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instan ...
- vue常用配置
修改titlevue.config.js chainWebpack: config =>{ config.plugin('html') .tap(args => { args[0].tit ...
- Atcoders [AGC049D] Convex Sequence 题解
AT_agc049_d [AGC049D] Convex Sequence 限制 \(1\) 不好满足,先不管它.限制 \(2\) 移项可得 \(a_{i}-a_{i-1}\le a_{i+1}-a_ ...
- Educational Codeforces Round 97 ABCD 题解
A. Marketing Scheme 题意:对于一个x,如果\({\lfloor{x\over 2}\rfloor}\)<= \(x\) \(mod\) \(a\),则满足题意.现在问你能否选 ...
- vscode 回退
简介 配置 Go Back / Go Forward 个人必须配置这两个否则会十分不爽.
- ABC397
最热泪盈眶的一次,中间被 D 卡了半小时,最后极限过 EF 翻盘. 不过 D 好像就是暴力,只是因为我没开 __int128?( rk.562. A - Thermometer 按照题意模拟即可. 点 ...
- Maui 实践:不要把 DataPackagePropertySetView 看作一层皮
-- 再论为控件动态扩展 DragDrop 能力 夏群林 原创 2025.7.18 一.Drag / Drop 之间传递的参数 前文提到,拖放的实现需要 DragGestureRecognizer 与 ...
- SciTech-Mathmatics-Proba. & Stats.: {先验概率, 联合概率, 条件概率, 全概率, 似然度, 后验概率}
SciTech-Mathmatics-Proba. & Stats.: P(AB) VS P(B|A) VS P(A|B) 先给结论: 联合概率讨论的是"不相关事件"的概率 ...