MPEG2-TS介绍

一:基本概念

1.ES--Elementary Streams(原始流)是直接从编码器出来的数据流,ES经过PES打包器之后,转换成PES包。

ES仅是包含一种数据内容的数据流,如h.264视频或者aac音频数据。打包之后的PES也是只包含一种的ES,如只含视频ES的PES或者只含音频ES的PES。每个ES都由若干个存取单元(AU)组成,每个视频AU或者音频AU都由头部和编码数据两部分组成,一个AU相当于编码的一幅视频图像或一个音频帧。

2.PES--Packetized Elementary Streams(分组的ES),ES形成的分组成为PES分组,是用来传递ES的一种数据结构。在PES打包器打包ES的过程中完成了将ES流分组,打包,加入包头信息等操作(是对ES流的第一次打包操作)。PES流的基本单位是PES包。PES包由包头和payload组成。

3.TS--Transport Streams(传输流)由定长的TS包组成(188字节),而TS包是对PES的一种重新封装(到这里,ES经过了两层封装)。PES包的包头信息依然存在于TS包中。

二:基本流程

下图是在MPEG-2系统中编码端实现单一码流的详细过程:

1.A/D转换后,通过MPEG-2压缩编码得到ES基本流。该流数据量很大,并且只是I P B帧的取样信息。

2.通过PES打包器,打包并在每个帧中插入PTS/DTS标识,编程PES。原来是流的格式,现在成了数据包的分割形式。

3.PES根据需要打包成PS或者TS包进行存储

三:TS包的结构

包头定义为:

1.sync_byte8bits同步字节

2.transport_error_indicator1bit错误指示信息

3.payload_unit_start_indicator1bit负载单元开始标志

4.transport_priority1bit传输优先级标志

5.PID13bitpacket ID号码,唯一的号码对应不同的包

6.transport_scrambling_control2bit加密标志

7.adaptation_field_control2bit附加区域控制

8.continuity_counter4bit包递增计数器

PID是TS流中包的唯一标志,Packet Data中是什么内容,完全由PID来决定。

PES相关:

PES是打包过的ES,已经插入PTS和DTS,一般一个PES是一帧图像。

PES经过打包成TS或PS流,往往一个PES会分存到多个TS包中。

1.PES包的包起始码:

包起始码前缀是一个固定的码字结构,它的值是0x000001,用于收发两端对PES包进行同步。

2.PES包的长度:

PES包的长度是可变的,PES包长度域有两个字节,共16比特,因此PES包的最大长度是65535字节

3.PES包头:

PES包头的功能根据特定的应用场合有所不同,包括加扰控制,优先级,ES流速率和CRC等,其中有两个重要的工呢过:PTS和DTS。

猜你喜欢

转载自blog.csdn.net/qq_31186123/article/details/81629151