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

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

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

    一、问题描述

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

    二、解决方案

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

    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青犀视频,可以联系我们获取演示方案,直观感受,也可自行下载及测试。

     
  • 相关阅读:
    [ARC 102D]All Your Paths are Different Lengths
    [NOI 2016] 优秀的拆分
    [TJOI 2015] 线性代数
    [LUOGU 4717] 快速沃尔什变换
    [NOI 2006] 最大获利
    Javascript继承机制的设计
    必应输入法产品分析
    你不得不知道的HTML5的新型标签
    Mobile Web
    10行代码爬取网页
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13625884.html
Copyright © 2011-2022 走看看