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網絡