EasyNVR主要功能模块有设备发现与接入、实时直播、摄像机控制、录像与管理、设备快照与状态维护、第三方平台对接,其中设备快照与状态维护主要包括定时检测通道设备的在线状态、定时对通道摄像机进行抓图、经过接口触发,能够抓取到实时的视频快照信息,刷新快照。EasyNVR不只提供快照预览功能,还能提供向EasyNVS云平台上传快照的功能。系统会定时向配置的摄像机抓取快照数据,保存图片用于预览,而且用于快照上传。web
class AVPacketWrapper { public: AVPacketWrapper() : packet_(new AVPacket) { av_init_packet(packet_); packet_->data = NULL; packet_->size = 0; } explicit AVPacketWrapper(size_t size) : packet_(new AVPacket) { av_new_packet(packet_, size); } ~AVPacketWrapper() { if (packet_) { av_packet_unref(packet_); delete packet_; } } AVPacket* getPacket() const { return packet_; } private: AVPacketWrapper(const AVPacketWrapper&); AVPacketWrapper& operator =(const AVPacketWrapper&); AVPacket* packet_; };
int DecoderHelper::DecodeVideo(char* inBuff, int inBuffSize) { if (!inBuff) return -1; if (1 > inBuffSize) return -1; if (!avCodecContext_) { releaseVideoDecoder(); return -2; } AVPacketWrapper packetWrapper; AVPacket* packet = packetWrapper.getPacket(); packet->size = inBuffSize; packet->data = reinterpret_cast<uint8_t*>(inBuff); int ret = avcodec_send_packet(avCodecContext_, packet); if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) { return -3; } ret = avcodec_receive_frame(avCodecContext_, avFrame_); if (ret < 0 && ret != AVERROR_EOF) { return -3; } return 0; }
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网络