EasyNVR流媒体服务器接入EasyDSS云视频平台快照上传实现

来源:互联网 发布:python中pyparsing 编辑:程序博客网 时间:2024/06/15 05:57

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

EasyDarwin

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 猪粪流到鱼塘里鱼死了怎么办啊 在基本农田建有机肥厂怎么办 有机肥厂的环评怎么办 织玻璃纤维网布环评怎么办 吃了受潮的奶粉怎么办 喝了受潮的奶粉怎么办 刚买的奶粉受潮怎么办 羊不小心吃了化肥怎么办 阿胶粉结成块了怎么办 半桶奶粉受潮了怎么办 眉粉受潮了结块怎么办 刚买的奶粉结块怎么办 袋装白糖成坨了怎么办 一袋子白糖硬了怎么办 粉饼上有一层油怎么办 葡萄后期氮肥施用过多怎么办 没洗的菜吃了怎么办 闻了汽油味头晕怎么办 碰到绿萝的汁液怎么办 吃了带农药水果怎么办 开槽模切一体机模切时开槽怎么办 柔版印刷走纸歪斜怎么办 美团外卖一天8单怎么办 单位显示器丢了怎么办员工赔 纸板板门起泡了怎么办 卖家要我开出质量问题证明怎么办 闲鱼买到的商品不符合描述怎么办 寄出去的东西碎了怎么办 闲鱼快递损坏了怎么办 寄快递东西坏了怎么办 快递邮寄东西坏了怎么办 快递被别人拆了怎么办 淘宝买的东西包装破损怎么办 寄血液被退回来怎么办 快递被安检扣了怎么办 淘宝原单退回运费怎么办 运输过程中包裹破损怎么办 天猫没收到货签收怎么办 收到的快递坏了怎么办 自寄的快递少了怎么办 邮的东西弄坏了怎么办