EasyNVR網頁攝像機無插件H五、谷歌Chrome直播方案之使用ffmpeg保存快照數據方法與代碼

背景分析

EasyNVR主要功能模塊有設備發現與接入、實時直播、攝像機控制、錄像與管理、設備快照與狀態維護、第三方平臺對接,其中設備快照與狀態維護主要包括定時檢測通道設備的在線狀態、定時對通道攝像機進行抓圖、經過接口觸發,能夠抓取到實時的視頻快照信息,刷新快照。EasyNVR不只提供快照預覽功能,還能提供向EasyNVS雲平臺上傳快照的功能。系統會定時向配置的攝像機抓取快照數據,保存圖片用於預覽,而且用於快照上傳。web

原理

  • EasyNVR可將從攝像機取出來的I幀數據編碼成jpeg圖片數據,保存後上傳。

實現

  • AVPacket管理,使用wrapper管理AVPacket的資源
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的可靠性、完整性、穩定性已經受到了業界的普遍承認!
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網絡

相關文章
相關標籤/搜索