该篇博文主要用来说明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. nodejs Centos环境搭建

    使用二进制文件安装: node 环境下载 https://nodejs.org/en/download/ 下载里面的windows 安装包 和 linux 安装包 1)windows安装 window ...

  2. 2016北京集训测试赛(十六)Problem B: river

    Solution 这题实际上并不是构造题, 而是一道网络流. 我们考虑题目要求的一条路径应该是什么样子的: 它是一个环, 并且满足每个点有且仅有一条出边, 一条入边, 同时这两条边的权值还必须不一样. ...

  3. Ubuntu 16.04安装深度的Wine(deepin-wine 1.9.0)

    说明: 1.使用的Wine版本是深度出品(Deepin),已经精简了很多没用的配置,使启动能非常快,占用资源小. 2.提取自QQ和迅雷安装包,如果安装了这个Wine不成功,可能是依赖问题,再试多几次, ...

  4. Maven项目导入到Eclipse时Build出现the user operation is waiting for building workspace to complete的问题解决

    解决办法如下: 1.选择菜单栏的[Project],然后把菜单栏中[Build Automatically]前面的对钩去掉.

  5. JVM中的内存分区简介

    1.JVM的内存区域划分: 大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) ...

  6. Scut游戏服务器引擎5.6.3.5发布

    版本:5.6.3.5 (2013-11-25) 1. 优化实体ChangeKey队列,减少写库IO(默认为5分钟写入一次数据库) 2. 优化Protobuf序列化启用自动GZip压缩,减少Redis内 ...

  7. Java的日志模块

    目前主流的是是logback和log4j2,它们底层实现用的都是slf4j,通过slf4j-api调用 使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类如:Logger logge ...

  8. VS2010 MFC中 单独添加ODBC数据库记录集类(CRecordset)方法

    基于VS2010 MFC的项目是之前建好的,后来需要添加数据库. 方法分享于此. 1.  打开自己的项目,项目->添加类. 2. 选MFC ODBC使用者,点右下角的添加. 3. 点数据源. / ...

  9. 【Todo】Python中文及Java中文问题及解决方法总结 & 及各种字符编码问题跟踪贴

    Python中文编码问题看这里吧:http://www.cnblogs.com/charlesblc/p/6159109.html Mysql中文编码问题可以看这篇:http://www.cnblog ...

  10. 【音乐App】—— Vue-music 项目学习笔记:歌手页面开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 一.歌手页面布局与设计 需 ...