基于EasyNVR二次开发实现自己的摄像机IPC/NVR无插件化直播解决方案
在之前的博客中《基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控》,我们已经比较多的描述EasyNVR所实现的功能,这些也在方案地址:http://www.easydarwin.org/easynvr/,
演示地址:http://easynvr.easydarwin.org:10800/ 中可以直观地看到功能点和适用的场景,在此就不多说了;
我们主要介绍如何能够基于EasyNVR二次开发,实现自己的一套业务流程:
我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源)、视频能力平台(vPaaS)、视频应用平台(vSaaS),视频硬件包括各种IPC、NVR、编码器等视频生成设备,vPaaS视频能力平台部分主要就是对这些不同的硬件进行整合,输出统一接口、统一标准的视频流,vSaaS视频应用层主要就是对视频的增值服务了,这个是跑业务的部分;
EasyNVR的定位和功能,实际就是在中间的vPaaS视频能力平台层,承上启下,接入各个厂家的IPC/NVR设备,再通过统一的RESTful接口输出,为开发者提供稳定、优质的视频及接口服务;
如下主要来大致梳理一下EasyNVR各个视频能力输出的功能点:
能力平台鉴权
EasyNVR提供了一套简单的能力输出认证与授权接口,类似于通常的视频云平台提供的AccessToken和SecretKey作用,只要通过用户名/密码调用EasyNVR提供的Login接口,获得整个session周期使用的一个token,即可用该token获取到EasyNVR平台所提供的所有服务:
- 接口: /api/v1/login?username=xxx&password=xxx
- 参数
| 名称 | 解释 | 含义 |
| Username | 登陆用户名 | - |
| Password | 登陆密码 | 经过MD5加密的字符 |
返回: 200 OK or 401 Unauthorized
{
"EasyDarwin" : {
"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”
这样,只要在后续的接口操作中,http header cookies中携带了token,就可以调用平台所有能力输出接口了,token会有一个过期时间,每调用一次就会刷新一次,超时的话,EasyNVR就会从服务器中将该token移除,那么下次客户端再次拿过期的token来调用接口的时候,EasyNVR服务器就会返回401,要求客户端重新鉴权了;
能力平台视频输出
- 接口:/api/v1/getchannelstream?channel=1&protocol=RTMP
- 参数
| 名称 | 含义 | 备注 |
| Channel | 通道号 | - |
| Protocol | 获取直播的协议 | RTMP/HLS |
返回: 直播流地址URL
{
"EasyDarwin" : {
"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"
}
}
}
通过此接口就可以获取到EasyNVR接入的通道的实时视频,还能输出RTMP/HLS多种视频码流协议,基本上RTMP和HLS就能够支撑全部终端的所有视频播放需求了;
能力平台管理接口
- 接口: /api/v1/getbaseconfig
- 返回: 基础配置信息表
| 名称 | 解释 | 备注 |
| ServiceLanPort | EasyNVR服务监听端口 | ReadOnly |
| ServiceLanIP | EasyNVR服务本地地址 | ReadOnly |
| ChannelSnapInterval | 通道快照间隔 | 单位为分钟 |
| NginxRTMPPort | EasyNVR配套的rtmp服务器端口 | 默认10035 |
报文
{
"EasyDarwin" : {
"Body" : {
"ChannelSnapInterval" : "120",
"NginxRTMPPort" : "10035",
"ServiceLanIP" : "192.168.66.222; 127.0.0.1; ",
"ServiceLanPort" : "10010",
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_BASE_CONFIG_ACK",
"Version" : "v1"
}
}
}
接口:
/api/v1/setbaseconfig?ChannelSnapInterval=120&NginxRTMPPort=10035&ServiceLanPort=10010参数:
返回: 200 OK
{
"EasyDarwin" : {
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_SET_BASE_CONFIG_ACK",
"Version" : "1.0"
}
}
}
通过管理接口的服务可以获取/设置EasyNVR能力平台的配置、接入等等,还能通过api/v1/getserverinfo等接口,获取平台的版本号,运行时长等信息,对于管理者来说,非常好用;
更多接口、EasyNVR在线演示与试用下载
EasyNVR无插件视频接入方案说明:http://www.easydarwin.org/easynvr/
同时可在网站中访问EasyNVR在线演示:
也可以在网站上下载最新版本:
获取更多信息
Copyright © EasyDarwin.org 2012-2017

基于EasyNVR二次开发实现自己的摄像机IPC/NVR无插件化直播解决方案的更多相关文章
- 基于EasyNVR摄像机无插件直播方案二次开发实现自己的摄像机IPC-NVR无插件化直播解决方案
背景介绍 在之前的博客中<基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控>,对EasyNVR所实现的功能我们已经有较多描述,这些也在方案地址:http://ww ...
- 基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控
前言 随着互联网的发展,尤其是移动互联网,基于H5.微信的应用越来越多,企业也更多地想基于H5.微信公众号来快速开发和运营自己的产品,那么传统的安防IPC所输出的各种RTSP.GB28181.SDK视 ...
- 基于EasyNVR摄像机流媒体服务器实现RTSP或Onvif监控摄像头Web无插件化直播监控
前言介绍 随着互联网的发展,尤其是移动互联网基于H5.微信的应用越来越多,企业也更多地想基于H5.微信公众号来快速开发和运营自己的产品,而传统的安防IPC所输出的各种RTSP.GB28181.SDK视 ...
- 基于EasyNVR二次开发实现业务需求:用户、权限、设备管理
许多接触到EasyNVR的用户.开发者都会提出关于EasyNVR设备分组和账户设备关系映射的问题,我们参考目前大部分的视频能力输出平台的做法,EasyNVR目前只做了唯一的用户/密码(类比appkey ...
- 基于EasyNVR二次开发实现业务需求:直接集成EasyNVR播放页面到自身项目
EasyNVR着重点是立足于视频能力层,但是自身也是可以作为一个产品使用的.这就更加方便了应用层的使用. 由于业务需求的缘故,无法使用实体项目展示. 案例描述 该业务系统是国内某大型显示屏生产企业内部 ...
- 基于AndroidPn二次开发的可行性
一.背景 如果要自己搭建,从零开始做或基于开源进行修改扩充,开源的push引擎,90%的博文首推AndroidPN,结合公司现状,最优解决方案就是进行AndroidPN的二次开发了.先看一下这个项目: ...
- EasyNVR摄像机网页Chrome无插件视频播放功能二次开发之通道配置文件上传下载示例代码
背景需求 熟悉EasyNVR产品的朋友们都知道,产品设计初期根据整个直播流程层级,我们将EasyNVR无插件直播系统划分为:硬件层.能力层.应用层,连接硬件与应用之间的桥梁,同时屏蔽各种厂家硬件的不同 ...
- 基于EasyDarwin框架实现EasyNVR H5无插件直播流媒体服务器方案
在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服务器方案架 ...
- 基于EasyDarwin开源流媒体服务器框架实现EasyNVR H5无插件直播流媒体服务器方案
背景分析 在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服 ...
随机推荐
- .NET下XML文件的读写
一.前言: XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了.本文将指导大家如何运用C#语言完成.Net框架下的X ...
- python对象的复制问题,按值传递?引用传递?
这部分这篇博文说的很明白,转了过来 作者:winterTTr (转载请注明)http://blog.csdn.net/winterttr/article/details/2590741#0-tsina ...
- linux挂载新磁盘、分区和开机自动挂载
今天在阿里云虚拟主机里新加了一块磁盘,需要单独挂载到centos7. 挂载过程中遇到了不少问题,记录如下: 查看分区 fdisk -l 其中第一个框和第二个框,是已经分好区的磁盘,第三个硬盘没有分区. ...
- NOIP2016模拟赛三 Problem C: 不虚就是要AK
题目大意 给定一棵带有边权的树, 问你在树上随机选两个点, 它们最短路径上的边权之和为\(4\)的倍数的概率为多少. Solution 树分治. 没什么好讲的. #include <cstdio ...
- HTTP 状态消息 [转]
转自:https://www.cnblogs.com/wuyongyu/p/5745875.html HTTP 状态消息 ...
- dogpile搜索引擎
有发现了一个新的搜索引擎——dogpile,结果还不错.据说是综合了多个搜索引擎的结果,展现了最终的搜索结果. 从百科上介绍说,这是一个[元搜索引擎].不懂,继续百科之,如下: 搜索引擎分为全文搜索引 ...
- VS2010中 报错:error C2146、error C4430 原因一:缺少CvvImage类
今天用vs2010打开vs2008的一个工程,报了好多错: 1>e:\visual studio 2010\projects\imageprojects\morphology\morpholog ...
- 【J2SE高速进阶】——多线程之synchronized
我和老婆去银行取钱 有一天,和老婆打了个赌.如今我的银行账号里共同拥有5000块钱.我们去银行同一时候取钱,看我俩能不能同一时候取出5000来....(PS:打赌的代价是:假设都能取出5000,那这1 ...
- libev和libuv的区别
libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述. 高性能网络编程这个话题已经 ...
- Android 网络编程 记录
简单介绍 看了深入理解Android网络编程感觉不错.今天对Android网络编程进行了要点记录. 内容 Android基于网络技术和编程实践 要点 定义 描写叙述 IP协议 用于报文交换网络的一种面 ...