zoukankan      html  css  js  c++  java
  • 安防监控直播中无插件web直播方案中实现快照抓取的功能

    监控直播方案

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

    直播方案中快照抓取

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

    bool 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;
    }
    

    下载

    LiveGBS 就是实现将传统安防摄像机实现在互联网直播、录像、回放,兼容Windows和各移动终端。
    大家可以在 https://gitee.com/liveqing/ReleaseVersion 下载LiveGBS测试。

     

  • 相关阅读:
    mysql 数据库引擎
    dubbo 微服务
    spring 属性文件加载接口---PropertySourceLoader
    Shiro架构
    HTTP状态码
    Shiro 修改权限,刷新权限
    Consul 架构(译)
    Java EE平台介绍(译)
    Java SPI机制
    Otb_000_ElementUI 的 Drawer组件无法上下滚动没有滚动条
  • 原文地址:https://www.cnblogs.com/kumukim/p/11006657.html
Copyright © 2011-2022 走看看