• EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案中使用Onvif协议获取视频设备快照


    存储网络行业协会SNIA(StorageNetworking Industry Association)快照的定义:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。需要注意的是:快照是完全可用的拷贝,但不是一份完整的拷贝。EasyNVR可以获取快照信息以及如何抓取快照的相关问题,我们已经在前文进行详细说明,本篇博文为大家介绍另一种快照抓取的方法。

    流程

    1、获取设备能力Capabilities

    获取设备的能力,并且可以获取到Media和PTZ的URI,使用Media的URI,可以进行快照的抓取

    
        _tds__GetCapabilities* capabilities = soap_new__tds__GetCapabilities(proxyDevice, -1);
        tt__CapabilityCategory* category = new tt__CapabilityCategory;
        capabilities->Category = category;
        *(capabilities->Category) = tt__CapabilityCategory__All;
        _tds__GetCapabilitiesResponse* response = soap_new__tds__GetCapabilitiesResponse(proxyDevice, -1);
        if (SOAP_OK == proxyDevice->GetCapabilities(capabilities, response))
        {
            if (response->Capabilities)
            {
                //Media URI: response->Capabilities->Media->XAddr;
                //PTZ URI: response->Capabilities->PTZ->XAddr;
            }
        }
    

    2、获取Media Profile

    获取Profile token可以获取对应的快照

    
        _trt__GetProfiles* getProfiles = soap_new__trt__GetProfiles(proxyMedia, -1);
        _trt__GetProfilesResponse* response = soap_new__trt__GetProfilesResponse(proxyMedia, -1);
        if (SOAP_OK == proxyMedia->GetProfiles(getProfiles, response))
        {
            int size = response->__sizeProfiles;
            for (int i = 0; i < size; ++i)
            {
                if (response->Profiles[i])
                {
                    //Media Profile Token: response->Profiles[i]->token;
                    //一般设备包含多个Profile Token,包含主码流、子码流、第三码流
                }
            }
        }
    

    3、获取快照访问地址

    快照访问地址通常为HTTP地址,可以通过这个HTTP地址GET到快照文件

    
          MediaBindingProxy* mediaProxy = new MediaBindingProxy;
          mediaProxy->soap_endpoint = mediaUrl.c_str();
    
          if (!security(mediaProxy, username, password))
          {
              delete mediaProxy;
              return result;
          }
    
          _trt__GetSnapshotUri* snap = soap_new__trt__GetSnapshotUri(mediaProxy, -1);
          _trt__GetSnapshotUriResponse* response = soap_new__trt__GetSnapshotUriResponse(mediaProxy, -1);
          snap->ProfileToken = const_cast<char*>(profile.c_str());
    
          if (SOAP_OK == mediaProxy->GetSnapshotUri(snap, response))
          {
              if (response->MediaUri && response->MediaUri->Uri)
              {
                  //response->MediaUri->Uri
                  //快照地址
              }
          }
    
          if (response)
              soap_delete__trt__GetSnapshotUriResponse(mediaProxy, response);
    
          if (snap)
              soap_delete__trt__GetSnapshotUri(mediaProxy, snap);
    
          return result;
    

    EasyNVR硬件设备

    EasyNVR智能云终端硬件设备,填补了互联网直播行业设备空白,软硬一体,云端运维。体积小,方便放置部署;7*24小时不间断运行,低功耗;省去自建视频服务器高额费用;专属视频服务,免除了与其他硬件的相互影响,通电联网即可成功运行,部署操作简单。
    EasyNVR硬件

    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

  • 相关阅读:
    SQL Server-数据库架构和对象、定义数据完整性(二)
    SQL Server-语句类别、数据库范式、系统数据库组成(一)
    ASP.NET WebAPi之断点续传下载(下)
    ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?
    ASP.NET WebAPi之断点续传下载(中)
    ASP.NET WebAPi之断点续传下载(上)
    ASP.NET WebAPi(selfhost)之文件同步或异步上传
    JSTL fn:contains()函数
    用jstl标签判断一个字符串是否包含了另一个字符串
    fn:replace()函数
  • 原文地址:https://www.cnblogs.com/babosa/p/11123964.html
Copyright © 2020-2023  润新知