前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安防视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列:设备录像流数据进行PS包分割

安防视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列:设备录像流数据进行PS包分割

作者头像
EasyNVR
发布2020-09-08 15:06:40
9280
发布2020-09-08 15:06:40
举报
文章被收录于专栏:EasyNVR

目前TSINGSEE青犀视频的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍、Ehome协议调用流程介绍。

近期我们的研发团队对EasyCVR集成海康EHome协议做了更深层次的挖掘,对EasyCVR的功能有了更多的拓展,本文就讲一下EasyCVR通过对设备录像流数据进行PS包分割,获取云视频裸流数据的过程。

一、问题描述

1、作为对比直播预览的流数据,每次回调接收都是一个完整的pes包,设备录像的回调数据比较随机. 如正常数

二、解决方案

应用层添加缓存,进行ps包分割(0x000001ba),获得一个完整的ps包,然后进行解复用操作,获得音视频裸流数据。

代码语言:javascript
复制
int SplitHKPsStream(unsigned char* pData, unsigned int len){
	if (len < 20){
		return -1;
	}
	int baFinded = 0;//0xba 
	int iIndex = 4;
	int iPos = 0;
	while (iIndex < len)
	{
		if (pData[iIndex + 0] == 0 && pData[iIndex + 1] == 0 && pData[iIndex + 2] == 1 && pData[iIndex + 3] == 0xba){
			baFinded = 1;//查找到0x000001ba
			iPos = iIndex;
 
			iIndex += 4;
			iIndex += 9;
 
			unsigned char* pLengthData = pData + iIndex;
			unsigned char uLenghth = pLengthData[0] & 7;
			iIndex += 1;
			iIndex += (uLenghth);
			
		}
 
		if (baFinded > 0){
			if (pData[iIndex + 0] == 0 && pData[iIndex + 1] == 0 && pData[iIndex + 2] == 1){
				if (pData[iIndex + 3] >= 0xE0 && pData[iIndex + 3] <= 0xEF){
					//
					return iPos;
				}
				else if (pData[iIndex + 3] >= 0xC0 && pData[iIndex + 3] <= 0xDF){
					return iPos;
				}
			}
			else if (pData[iIndex + 0] == 0 && pData[iIndex + 1] == 0 && pData[iIndex + 2] == 1 && pData[iIndex + 3] == 0xbb){
				return iPos;
			}
 
			baFinded = 0;
		}
		if (baFinded == 0){
			iIndex++;
		}
	}
 
	return 0;
}

安防视频云服务平台EasyCVR

安防视频云服务平台EasyCVR不需要对现有监控架构做调整,支持CDN推流,灵活适应原有架构;且按需灵活扩展、收缩资源,免去了插件安装、浏览器限定等条件,实现了无插件、多平台自由观看回放。视频相关解决方案均可访问TSINGSEE青犀视频,可以联系我们获取演示方案,直观感受,也可自行下载及测试。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题描述
  • 二、解决方案
  • 安防视频云服务平台EasyCVR
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档