前言
码流传输以及码流封装是贯穿视频监控领域的基本知识。不同的传输形式和封装类型需要使用相应的编解码工具才能实现。技术支持应该具备一定的码流分析能力,有助于快速确定问题责任方以及解决方案。
码流封装格式
PS封装
PS封装可以用于存储和传输,即Progream Stream (程序流)一条PS码流由PS GOP组成(I帧开始的多帧集合),一个PS GOP应包含一个PSH头以及若干PES包。其中I帧的PES数据开始前必须包含PSM头。PS的后缀名是VOB以及EVO等
| PSGOP0 | PSGOP1 | PSGOP2 | PSGOP3 | PSGOP4 | … |~
RTP封装
RTP是Real-time Transport Protocol(实时传输流)的简称,用于传输。RTP码流由多个RTP包组成,每个RTP包包含RTP头标准字段(固定12字节)、RTP头扩展字段、RTP负载、填充字段;每帧的最后一个RTP包,包头的marker bit 必须置为1.
私有数据存放在私有的扩展字段,包括各种描述及各种私有类型数据;私有数据采用2字节类型+2字节长度(以4字节为单位)+私有数据的格式进行打包,PS、TS、和RTP格式的私有数据都应遵循该语法规则
RTP保存成文件是不能播放的,抓包下来的RTP码流中往往含有协议交互数据和冗余数据,所以分析RTP数据是很耗时的。建议以包为单位采用“4字节长度+数据”的格式保存码流,方便分析。