NVR硬件录像机web无插件播放方案功能实现之相关接口注意事项说明
该篇博文主要用来说明EasyNVR硬件录像回放版本的相关接口说明和调用的demo;
方便用户的二次开发和集成。
软件根目录会包含接口文档的,因此,本文主要是对一些特定接口的说明和接口实现功能的讲解以及部分demo的展示说明;
对应接口说明;
支持设备类型
由于获取NVR录像机的相关功能是通过SDK来实现功能的,因此,无法想EasyNVR配置摄像机一样,走一个标准的协议去完成相应的全部功能,因此,我们 都是 通过不同的 SDK来实现对应品牌的录像机的接入,我们 无法做到,满足全部的录像机接入,但是可以做到支持市面大多数主流录像机的接入。因此我们 也通过接口返回目前支持的摄像机的类型,方便用户后续的对应的功能的获取;
实现接口
接口:/api/v1/gethwnvrsupportlist
返回:200 OK
{
"EasyDarwin": {
"Body": {
"DeviceCount": "1",
"Devices": [
{
"Id": 1,
"Name": "HIK_IPC_NVR"
}
]
},
"Header": {
"CSeq": "1",
"ErrorNum": "200",
"ErrorString": "Success OK",
"MessageType": "MSG_DS_HWNVR_GET_SUPPORTLIST_ACK",
"Version": "v1"
}
}
}
目前只是支持海康录像机,随着需求的变化,后续会不断增加的;
获取对应时间段录像信息
就接触到的客户反馈而言,大多数的客户都是直接了当的说明,只是希望获取到对应的时间段的录像信息,对于这种明明白白的需求,我们是必须要简简单单的实现的;
实现接口
- 接口:/api/v1/hwrecordplaystart
- 参数:
| 名称 | 含义 | 备注 |
| id | 设备号 | NVR对应的设备号 |
| channel | 通道号 | NVR对应的通道号 |
| starttime | 开始播放时间 | 精确到秒:20180328000000 |
| endtime | 结束播放时间 | 精确到秒:20180328235959 |
返回:
{
"EasyDarwin": {
"Body": {
"HLS": "/hls/nvr1_channel1_98960064/nvr1_channel1_98960064.m3u8",
"Handle": "98960064",
"RTMP": "rtmp://127.0.0.1:10935/hls/nvr1_channel1_98960064"
},
"Header": {
"CSeq": "1",
"ErrorNum": "200",
"ErrorString": "Success OK",
"MessageType": "MSG_DS_HWNVR_START_RECORD_PLAY_ACK",
"Version": "v1"
}
}
- 操作:HLS表示HLS录像视频流,RTMP表示RTMP录像视频流,Handle表示流唯一标识
调用demo
/*
*param:当前播放通道号
*/
function recordPlayer(param){
var rtmpport;//rtmp端口
$.ajax(_url + "/hwrecordplaystart",{
async : false,
data : {
id : deviceId,
channel : param,
starttime:recordDay+"000000",
endtime:recordDay+"235959"
}
}).then(function(data){
var ret = JSON.parse(data);
handle = ret.EasyDarwin.Body.Handle;
if(handle != 0){
$("#playerPrompt").html("当前播放录像文件为:<div><span style='color:green'>通道号</span>:通道"+param+"</br>"+"<span style='color:green'>日 期</span>:"+recordDay+"</div>")
$(".channel-title ul li span").remove();
$(".see"+param).append(" <span style='color:green'><i class='fa fa-eye'></i></span>")
RecordTouch = setInterval(function() {
$.get(_url + "/hwrecordplaytouch", {
id: deviceId,
handle: handle
}, function(data) {
console.log(data);
})
}, 30000);
}
$.ajax({
url:_url + "/getbaseconfig",
async:false,
success : function(data){
var ret = JSON.parse(data);
rtmpport = ret.EasyDarwin.Body.NginxRTMPPort;
}
})
// rtmp://127.0.0.1:10935/hls/nvr1_channel1_123045152//流地址 格式
// /hls/nvr1_channel1_123045152/nvr1_channel1_123045152_live.m3u8//流地址 格式
var IP = location.hostname;
var urlid = "nvr"+deviceId+"_channel"+param+"_"+handle;
var rtmpurl = "rtmp://"+IP+":"+rtmpport+"/hls/"+urlid;//rtmp地址
var hlsurl = location.protocol + "//" + location.host+"/hls/"+urlid+"/"+urlid+"_live.m3u8";//hls地址
playerStream(rtmpurl)
})
}
注意:
成功调用改接口会放回一个RTMP流地址,但是并不完整,我们 需要 根据EasyNVR自身的rtmp端口,拼接出一个完整的RTMP;同时也会生成HLS流地址,根据自身需求,播放对应的地址来达到对应时间端录像的回放;
相信大家也注意到,在调用这个获取录像流地址时,我还一直在循环调用一个 “/api/v1/hwrecordplaytouch”接口,这是我们我来保证我们的流一直有人观看而设置的接口,默认是没30秒调用一次,如果没有调用,设备默认没有用户观看录像,将停止录像播放。这样有效的避免了用户直接关闭网页导致没有发送停止流播放接口而机器一直在输出流的尴尬行为,有效的节省消耗。
备注:
对应其他接口的使用,根据接口文档来就可以,需要注意的在上文也有所说明了;如果有什么具体的疑惑,可以直接联系相关人员;
获取更多:
关于EasyNVR
EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;
点击链接加入群【EasyNVR解决方案】:383501345
NVR硬件录像机web无插件播放方案功能实现之相关接口注意事项说明的更多相关文章
- EasyNVR实现海康、大华NVR硬盘录像机Web无插件播放方案(支持取特定时间段视频流)
本文转自:https://blog.csdn.net/black_3717/article/details/79872725 背景说明: 由于视频自身的直观性和便利性,对于传统安防行业,摄像机的直播和 ...
- [转] web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!
需求 问题:有没有flash播放RTSP的播放器?H5能不能支持RTSP播放? 答案:没见过,以后估计也不会有: 问题:可以自己做浏览器插件播放RTSP吗? 答案:可以的,chrome做ppapi插件 ...
- web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!
本文转自:http://www.cnblogs.com/babosa/p/7355468.html 需求 问题:有没有flash播放RTSP的播放器?H5能不能支持RTSP播放? 答案:没见过,以后估 ...
- 海康、大华NVR网络硬盘录像机录像无插件全平台访问实现—录像回放时间轴功能实现方法
在之前的博文中我们有介绍方案*NVR硬件录像机web无插件播放方案(支持取特定时间段视频流)*:该片博文旨在介绍时间轴功能的实现和相关接口的调用: 时间轴样式展示: 问题分析 对于 时间轴的展示实现需 ...
- Web下无插件播放rtsp视频流的方案及各家优秀内容资源整理
Web下无插件播放rtsp视频流的方案及各家优秀内容资源整理 方案一:服务器端用 websocket 接受 rtsp ,然后,推送至客户端 实现步骤: 方案二:使用 ffmpeg + nginx 把 ...
- 基于EasyNVR摄像机无插件直播方案二次开发实现自己的摄像机IPC-NVR无插件化直播解决方案
背景介绍 在之前的博客中<基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控>,对EasyNVR所实现的功能我们已经有较多描述,这些也在方案地址:http://ww ...
- EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码
背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...
- EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码
不管是基于EasyNVR还是EasyDSS,都是支持无插件直播,这也是未来视频直播的一个趋势.对于传统的浏览器插件播放谁用谁知道: 以上是软件自带播放展示 背景需求 对于EasyNVR和EasyDSS ...
- EasyNVR无插件播放HLS/RTMP网页直播方案前端完善:监听表单变动
在上一篇博客中我们表述完了防止提交成功后多余操作提交的一个过程:其中的精髓在于ajax的触发事件的使用. 而这篇博客主要想说明一下如何实时的判断出表单是否发生变化. 问题表述: 在网页前端的开发过程中 ...
随机推荐
- 解决WCF部署到IIS出现“证书必须具有能够进行密钥交换的私钥,该进程必须具有访问私钥的权限”
访问WCF服务时,出现异常详细信息: System.Security.Cryptography.CryptographicException: 密钥集不存在.ArgumentException: 证书 ...
- AC日记——【模板】普通平衡树(Treap/SBT) 洛谷 P3369
[模板]普通平衡树(Treap/SBT) 思路: 劳资敲了一个多星期: 劳资终于a了: 劳资一直不a是因为一个小错误: 劳资最后看的模板: 劳资现在很愤怒: 劳资不想谈思路!!! 来,上代码: #in ...
- 洛谷——P1977 出租车拼车
题目背景 话说小 x 有一次去参加比赛,虽然学校离比赛地点不太远,但小 x 还是想坐 出租车去.大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人 坐车去,还是一堆人一起,总共需要支付的钱 ...
- An Introduction to Reflection in C++
Apr 13, 2017 Stop me if you’ve heard this one before. You are working on a messaging middleware, a g ...
- Cygwin下vi和vim方向键和Backspace不好用的问题(转)
执行p4 client时vi打开文本,编辑起来恼火,于是找到了这个: 默认的vi(vim)没有配置文件,因此导致了方向键出现ABCD,以及Backspace只会移动光标,字符不消失的问题.cygwin ...
- 开源日历TimesSquare在iOS7下诡异渲染的解决办法
因为没有时间自己写一个日历,所以暂时使用了一个三方的日历https://github.com/square/objc-TimesSquare 但是在iOS7下.突然产生了一个诡异的BUG..如下图: ...
- 【转载】C++11的简单学习
首先在我们的开发机以及线上机器一般都安装了C++11,目录在: /opt/compiler/gcc-4.8.2/ 看了下面这篇文章<[C++11]30分钟了解C++11新特性> http: ...
- SQL Server数据库连接,Web.config的正确配置 [转]
http://database.51cto.com/art/201007/213289.htm 此文章主要介绍的是Web.config正确配置SQL Server数据库连接的实际擦步骤,在图5-6中, ...
- Android Studio中利用JavaDoc生成项目API文档
1. 在Android Studio中的菜单项中点击Generate JavaDoc
- iOS开发数据持久化技术02——plist介绍
有疑问的请加qq交流群:390438081 我的QQ:604886384(注明来意) 微信:niuting823 1. 简单介绍:属性列表是一种xml格式的文件.扩展名.plist: 2. 特性:pl ...