EasyNVR拥有接入EasyDSS云平台的功能

接入EasyDSS云平台会定时向云平台上传快照数据,这个快照数据用于云平台向客户端提供快照展示

遇到的问题

由于快照上传的间隔提供认为修改的功能,则我们限定最短时间为1分钟

通道的数量会直接影响快照上传

考虑到压力情况,1分钟之内上传上千通道的快照

快照数据经过Base64编码,会比快照真实数据扩大1.33333倍,数据量大

EasyNVR的固定通道设计

解决方案

将所有通道快照上传分散在快照间隔时间内

若遇到通道未启用、通道不在线则跳过,并且减少通道数量,增大间隔时间

实现

virtual SInt64 Run()
{
EventFlags event = this->GetEvents(); if (event & Task::kIdleEvent || event & Task::kUpdateEvent)
{
if (!channels_)
return 0; bool allUploaded = true;
for (int i = 0; i < MAX_CHANNEL_COUNT; i++)
{
if (snapCtrlArray_[i])
{
allUploaded = false;
break;
}
} if (allUploaded)
{
return 0;
} if (snapCtrlArray_[curSnapIndex_])
{
snapCtrlArray_[curSnapIndex_] = false;
int curChannel = curSnapIndex_ + 1;
if (++curSnapIndex_ > MAX_CHANNEL_COUNT - 1)
{
curSnapIndex_ = 0;
}
CameraInfo* cameraInfo = (*channels_)[curChannel]->GetChannelInfo();
if (!cameraInfo->enable || !cameraInfo->online)
{
--postSnapCount_;
return 1;
} postSnap(curChannel);
} //return (std::min)(timeout_ * 60 / MAX_CHANNEL_COUNT, 3) * 1000;
return timeout_ * 60 * 1000 / postSnapCount_;
} if (event & Task::kTimeoutEvent)
{
channels_ = NULL;
QTSS_RoleParams params;
params.easyNVRChannelsConfigParams.inChannels = NULL;
EasyNVRUtil::CallDispatch(Easy_NVRGetChannelsConfig_Role, QTSSModule::kGetChannelsConfigRole, params);
channels_ = static_cast<std::map<int, EasyNVRChannel*>*>(params.easyNVRChannelsConfigParams.inChannels);
postSnapCount_ = MAX_CHANNEL_COUNT;
for (int i = 0; i < MAX_CHANNEL_COUNT; i++)
{
snapCtrlArray_[i] = true;
} this->Signal(Task::kUpdateEvent); timeoutTask_.RefreshTimeout();
} return 0;
}

关于EasyNVR

EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;

详细说明:http://www.easydarwin.org/easynvr/

点击链接加入群【EasyNVR解决方案】:383501345

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

最新文章

  1. codeforces731C Socks
  2. java多线程系列1--线程实现与调度
  3. js:语言精髓笔记8--对象系统
  4. 【spring 7】spring和Hibernate的整合:声明式事务
  5. ttt
  6. IOS开发几何类方法 CGGeometry.h文件
  7. Light OJ 1104 Birthday Pardo(生日悖论)
  8. Mozilla 构建系统(转)
  9. java Log日志规范
  10. 初识ELF格式 ABI,EABI,OABI
  11. Scala编程入门---面向对象编程之对象
  12. Bootstrap方法之--排版、代码
  13. Markdown使用小总结[不定时更新]
  14. 设计图与html 对比
  15. 虚拟机下Linux操作Ubuntu
  16. 【linux】常用命令-端口
  17. Linux入门命令1
  18. .net MVC, webAPI,webForm集成steeltoe+springcloud实现调用服务中心服务的总结
  19. update关联其他表批量更新数据-跨数据库-跨服务器Update时关联表条件更新
  20. 【转】在 XAML 的属性中,转义大括号 {}

热门文章

  1. App Store 审核指南(最新)
  2. IntelliJ IDEA关闭代码自动补全
  3. 解决vagrant不能正常挂载目录的问题
  4. xamarin.android 资源图片问题
  5. UNIX网络编程卷1 server程序设计范式8 预先创建线程,由主线程调用accept
  6. c 数组做为形參时 该參数退化为指针
  7. GIS可视化——热点图
  8. Intellij IDEA 拷贝的项目变为红色名字
  9. 收藏以下linux查看系统信息的命令
  10. AngularJS取得后台Jason数据显示在页面上