该篇博文主要用来说明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'>日&nbsp;&nbsp;&nbsp;&nbsp;期</span>:"+recordDay+"</div>")
$(".channel-title ul li span").remove();
$(".see"+param).append("&nbsp;&nbsp;&nbsp;<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网络,实现互联网级别的直播分发;

详细说明:http://www.easynvr.com

点击链接加入群【EasyNVR解决方案】:383501345

NVR硬件录像机web无插件播放方案功能实现之相关接口注意事项说明的更多相关文章

  1. EasyNVR实现海康、大华NVR硬盘录像机Web无插件播放方案(支持取特定时间段视频流)

    本文转自:https://blog.csdn.net/black_3717/article/details/79872725 背景说明: 由于视频自身的直观性和便利性,对于传统安防行业,摄像机的直播和 ...

  2. [转] web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!

    需求 问题:有没有flash播放RTSP的播放器?H5能不能支持RTSP播放? 答案:没见过,以后估计也不会有: 问题:可以自己做浏览器插件播放RTSP吗? 答案:可以的,chrome做ppapi插件 ...

  3. web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!

    本文转自:http://www.cnblogs.com/babosa/p/7355468.html 需求 问题:有没有flash播放RTSP的播放器?H5能不能支持RTSP播放? 答案:没见过,以后估 ...

  4. 海康、大华NVR网络硬盘录像机录像无插件全平台访问实现—录像回放时间轴功能实现方法

    在之前的博文中我们有介绍方案*NVR硬件录像机web无插件播放方案(支持取特定时间段视频流)*:该片博文旨在介绍时间轴功能的实现和相关接口的调用: 时间轴样式展示: 问题分析 对于 时间轴的展示实现需 ...

  5. Web下无插件播放rtsp视频流的方案及各家优秀内容资源整理

    Web下无插件播放rtsp视频流的方案及各家优秀内容资源整理 方案一:服务器端用 websocket 接受 rtsp ,然后,推送至客户端 实现步骤: 方案二:使用 ffmpeg + nginx 把 ...

  6. 基于EasyNVR摄像机无插件直播方案二次开发实现自己的摄像机IPC-NVR无插件化直播解决方案

    背景介绍 在之前的博客中<基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控>,对EasyNVR所实现的功能我们已经有较多描述,这些也在方案地址:http://ww ...

  7. EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码

    背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...

  8. EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码

    不管是基于EasyNVR还是EasyDSS,都是支持无插件直播,这也是未来视频直播的一个趋势.对于传统的浏览器插件播放谁用谁知道: 以上是软件自带播放展示 背景需求 对于EasyNVR和EasyDSS ...

  9. EasyNVR无插件播放HLS/RTMP网页直播方案前端完善:监听表单变动

    在上一篇博客中我们表述完了防止提交成功后多余操作提交的一个过程:其中的精髓在于ajax的触发事件的使用. 而这篇博客主要想说明一下如何实时的判断出表单是否发生变化. 问题表述: 在网页前端的开发过程中 ...

随机推荐

  1. Smpt命令顺序不正确。 服务器响应为: Error: need EHLO and AUTH first !

    刚发现以前做的QQ邮箱发送邮件不能用了,查找了下原因:未加( EnableSsl  SSL加密连接 )导致的,顿时觉得很坑,以前QQ邮箱也没有这个限制啊,可能是最近加的. 好吧不多说直接从头走起,照顾 ...

  2. grep的简单理解

    概述: grep最早由肯·汤普逊写成.原先是ed下的一个应用程序,名称来自于g/re/p(globally search a regular expression and print,以正则进行全域查 ...

  3. usaco-Subset Sums

    题意: 给出一个1-n的数列,求把它分为两组数使得两组数的和相等的方案数. 分析: 如果可能分成两组,那么(n+1)n/2一定为偶数,且n%4=2或3.可以设dp[i][j]表示从1-i中的数拼出的方 ...

  4. dede实战系统:更换成kindEditor编辑器

    最近由于项目需要,在搞dedeCMS,发现dede自带的ckEditor在word粘贴这方面做得不是很好,从word上面直接ctrl+V的内容跟wrod上面的表现样式相差很大,客户很不爽(因为是编辑的 ...

  5. 各种优化方法总结比較(sgd/momentum/Nesterov/adagrad/adadelta)

    前言 这里讨论的优化问题指的是,给定目标函数f(x),我们须要找到一组參数x.使得f(x)的值最小. 本文下面内容如果读者已经了解机器学习基本知识,和梯度下降的原理. SGD SGD指stochast ...

  6. Apache OFBIZ高速上手(三)--文件夹&amp;&amp;配置文件介绍

    1.OFBiz简单介绍,什么是OFBiz           OFBiz is an Apache Software Foundation top level project.           A ...

  7. 2016.10.19 intelliJ的基本操作

    参考大部分来自:IntelliJ IDEA 13试用手记(附详细截图) 用eclipse实在用的有点心累了.所以准备转战intelliJ.   一.下载安装 官网地址:http://www.jetbr ...

  8. KVO(1)

    #import "ViewController.h" @interface ViewController () @property(nonatomic, strong)UIButt ...

  9. 如何使用优化代码段替代WordPress插件

    每一个WordPress网站,都可以通过使用插件来获得更多的功能.但是太多的插件,会拖慢站点的运行速度,并且让站点看上去臃肿不堪. 一些插件的功能让你舍不得卸载,但是其实你可以使用简单的PHP代码来替 ...

  10. Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental……

    Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to th ...