LiveNVR安防监控直播中无插件web直播方案中实现快照抓取的功能

监控直播方案

越来越多人的开始将普通安防摄像机接入网络流媒体服务器,进行网络直播。但是市面上安防摄像机的品牌、型号比较多,想通过SDK方式接入这些各种摄像机不现实。由于安防摄像机基本都是可以输出rtsp流,因此我们可以用拉取RTSP流的方式来兼容各家的摄像机。LiveNVR就是实现接入普通RTSP/Onvif的安防摄像机,转成RTMP和HLS流,可以在各平台上进行H5 web直播或者app直播。

直播方案中快照抓取

LiveNVR实现了拉取摄像机RTSP流,实现监控直播。直播的过程只是流媒体数据转发的过程,不进行解码,这样对CPU等硬件资源消耗较小。
但是直播时,可能希望定时抓取一张实时图片进行封面展示、数据分析等。这种情况就需要定时获取一帧数据进行解码,抓成jpg或bmp图片。
如下是将视频某一帧数据转成图片的代码:

bool LiveNVRChannel::rawData2Image(char* rawBuf, int bufSize, int codec, int width, int height, const char* jpgpath)
{
	decodeParam.codec = codec;
	decodeParam.width = width;
	decodeParam.height = height;

	if (!decoderHelper_)
	{
		decoderHelper_ = new DecoderHelper;
	}

	decoderHelper_->SetVideoDecoderParam(width, height, codec);

	int ret = decoderHelper_->DecodeVideo(rawBuf, bufSize);
	if (ret < 0)
	{
		return false;
	}

	decoderHelper_->WriteJPEG(jpgpath);

	if (QTSServerInterface::GetServer()->GetThridPartPlatformModule())
	{
		if (!decodeParam.imageData)
			decodeParam.imageData = new char[width * height * 3];
		memset(decodeParam.imageData, 0, width * height * 3);

		FILE* snapFile = ::fopen(jpgpath, "rb");
		if (snapFile)
		{
			// obtain file size:  获得文件大小   
			::fseek(snapFile, 0, SEEK_END); // 指针移到文件末位   
			decodeParam.imageSize = ftell(snapFile);  // 获得文件长度   
			::rewind(snapFile);  // 函数rewind()把文件指针移到由stream(流)指定的开始处, 同时清除和流相关的错误和EOF标记   
			::fread(decodeParam.imageData, 1, decodeParam.imageSize, snapFile);
			::fclose(snapFile);
		}
	}

	return true;
}

在线演示

LiveNVR就是实现将传统安防RTSP摄像机实现在互联网直播、录像、回放,兼容Windows和各移动终端。
大家可以在 http://nvr.liveqing.com

获取更多信息

安防流媒体互联直播-QQ交流群:615081503

国标GB28181无插件LiveGBS-QQ交流群:947137753

邮件:support@liveqing.com

WEB:www.liveqing.com

Tel:189-5515-0114 (同微信)

Copyright © LiveQing.com 2016-2019

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值