MPEG-PS包结构

1、PS与TS联系

ps全名MPEG2-PS,ts全名MPEG-TS,两者由MPEG-2规定,MPEG-2当中定义了两种复合信息流:传送流(TS:TransportStream)和节目流(PS:ProgramStream),TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度的

PS包与TS包在结构上的这种差异,导致了它们对传输误码具有不同的抵抗能力,因而应用的环境也有所不同。TS码流由于采用了固定长度的包结构,当传输误码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。而PS包由于长度是变化的,一旦某一PS包的同步信息丢失,接收机无法确定下一包的同步位置,就会造成失步,导致严重的信息丢失。因此,在信道环境较为恶劣,传输误码较高时,一般采用TS码流;而在信道环境较好,传输误码较低时,一般采用PS码流。
由于TS码流具有较强的抵抗传输误码的能力,因此目前在传输媒体中进行传输的MPEG-2码流基本上都采用了TS码流的包格式。

MPEG2-PS主要应用于存储的具有固定时长的节目,如DVD电影,而MPEG-TS则主要应用于实时传送的节目,比如实时广播的电视节目。这两种格式的主要区别是什么呢?你将DVD上的VOB文件的前面一截剪掉(或者干脆就是数据损坏),那么就会导致整个文件无法解码,而电视节目是你任何时候打开电视机都能解码(收看)的,所以,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。   

2、基本概念

(1)ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。ES流经过PES封装之后,被转换成PES包;

(2)PES是打包了的专用视频、音频和数据、同步信息等,PES包由包头和payload组成;

(3)PES是PS转换为TS或PS转换为TS的中间步骤或桥梁,是MPEG数据流互换的逻辑结构,不允许直接传输PES;

(4)AU是构成ES流的存取单元。1个AU相当于编码的1幅视频图像或1个音频帧,也可以说,每个AU实际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样

3、PS包结构

一个PS文件结构如下:

MPEG-PS包结构_第1张图片

上图中pack指的是PS包,PS包开头码为 0x000 001BA,PS包没有结束码,整个文件的结束码为 0x0000 01B9

包含关键帧数据的 PS包 整体结构如下:

MPEG-PS包结构_第2张图片

注意:
(1)System_Header 仅仅当 PS 包含关键帧数据时才有,对于包含的是非关键帧数据的 PS 包,没有System_Header;
(2)其中PS header是14-21,标准的头为14 bytes,扩展字节多少是由PS header中的stuffing length来决定的(图不是本人画的,这里只是个人的理解)

将h264等压缩后的视频数据打包成PS过程:

MPEG-PS包结构_第3张图片

 注意图中举例的是有关键帧的PS包,所以有System_Header,而且上边说的是没有音频,只有视频的情况,若有音频需要在视频的PES包后加上音频的PES包

下面开始介绍PS_Header、PS System_Header、PES header

3.1、PS_Header

PS_Header结构图:

MPEG-PS包结构_第4张图片

注意 packets 起始码:0x000 001BA,其它各个字段含义可以看:https://blog.csdn.net/jctian000/article/details/80308977

3.2、System_Header

System_Header结构图:

MPEG-PS包结构_第5张图片

System_Header起始码为:0x0000 01BB,字段含义参考:https://blog.csdn.net/jctian000/article/details/80308977

3.3、PES_Header

PES_Header结构图:

MPEG-PS包结构_第6张图片

起始码:0x0000 01 BC,字段含义:https://blog.csdn.net/jctian000/article/details/80308977

具体每个字段含义:https://blog.csdn.net/zhangrui_fslib_org/article/details/52327420

主要参考资料:
https://download.csdn.net/download/zhangbo/3954818
https://download.csdn.net/download/cch809094a/5148599

附上一篇分析的文章:https://www.cnblogs.com/zhumengke/articles/11238778.html

针对GB28181对PS的分析:https://blog.csdn.net/ichenwin/article/details/100086930?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159460309319724811862165%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159460309319724811862165&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-1-100086930.first_rank_ecpm_v3_pc_rank_v2&utm_term=PS%E6%A0%BC%E5%BC%8F
https://www.xilixili.net/2018/05/11/parse-hikvision-camera-ps-stream/

你可能感兴趣的:(音视频)