zoukankan      html  css  js  c++  java
  • 基于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知识产权

  • 相关阅读:
    Leetcode Plus One
    Leetcode Swap Nodes in Pairs
    Leetcode Remove Nth Node From End of List
    leetcode Remove Duplicates from Sorted Array
    leetcode Remove Element
    leetcode Container With Most Water
    leetcode String to Integer (atoi)
    leetcode Palindrome Number
    leetcode Roman to Integer
    leetcode ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/babosa/p/11124002.html
Copyright © 2011-2022 走看看