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


    背景介绍

    在之前的博客中《基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控》,对EasyNVR所实现的功能我们已经有较多描述,这些也在方案地址:http://www.easynvr.com/
    演示地址:http://demo.easynvr.com:10800/#/index/icons中可以直观地看到功能点和适用的场景,在此就不多说了;

    本文主要介绍如何基于EasyNVR二次开发,实现自己的一套业务流程:

    我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源)、视频能力平台(vPaaS)、视频应用平台(vSaaS),视频硬件包括各种IPC、NVR、编码器等视频生成设备,vPaaS视频能力平台部分主要就是对这些不同的硬件进行整合,输出统一接口、统一标准的视频流,vSaaS视频应用层主要就是对视频的增值服务了,这个是跑业务的部分;

    EasyVPaaS

    EasyNVR的定位和功能,实际就是在中间的vPaaS视频能力平台层,承上启下,接入各个厂家的IPC/NVR设备,再通过统一的RESTful接口输出,为开发者提供稳定、优质的视频及接口服务;
    如下主要来大致梳理一下EasyNVR各个视频能力输出的功能点:

    能力平台鉴权

    1.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”

    2.这样,只要在后续的接口操作中,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
    • 返回: 基础配置信息表
    名称解释备注
    ServiceLanPortEasyNVR服务监听端口ReadOnly
    ServiceLanIPEasyNVR服务本地地址ReadOnly
    ChannelSnapInterval通道快照间隔单位为分钟
    NginxRTMPPortEasyNVR配套的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在线演示与试用下载

    EasyNVR无插件视频接入方案说明:http://www.easynvr.com/
    同时可在网站中访问EasyNVR在线演示:
    EasyNVR
    也可以在网站上下载最新版本:
    EasyNVR H5

    EasyNVR应用场景

    EasyNVR可以说已经成为国内视频互联网化基础建设的排头兵,几乎各个民生行业都已经有了EasyNVR视频能力输出的身影,EasyNVR多年服务于各行各业视频基础建设,EasyNVR的可靠性、完整性、稳定性已经受到了业界的广泛认可!
    EasyNVR稳定可靠
    EasyNVR场景一

    智慧校园

    EasyNVR场景二

    平安厂区

    EasyNVR场景三

    智慧家居

    EasyNVR安防摄像机网页流媒体服务

    EasyNVR是一款拥有完整、自主、可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP、Onvif协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发。详情可访问EasyNVR官网:http://www.easynvr.com
    EasyNVR知识产权

  • 相关阅读:
    Gitblit 的安装使用
    PLSQL 美化规则文件详解
    SQL Server Agent的作用
    使用C#创建Widows服务
    关于VS编译DevExpress默认产生几个多余的语言包的问题解决
    (转)查询A、B表中,A表中存在B表不存在的数据
    子类构造、析构时调用父类的构造、析构函数顺序
    ACCDB与MDB的读取区别
    vue中如何动态添加readonly属性
    windows下生成文件夹目录结构
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/10847323.html
Copyright © 2020-2023  润新知