MPEG-TS
MPEG-TS
MPEG-TS 一种标准数据容器格式,传输与存储音视频、节目与系统信息协议数据,应用于数字广播系统,譬如 DVB,ATSC 与 IPTV。传输流在 MPEG-2 第 1 部分系统中规定,正式称为 ISO/IEC 标准 13818-1 或 ITU-T 建议书[1]。MPEG2/DVB 是一种多媒体传输、复用技术,在数字电视广播中可提供数百个节目频道。复用的含义是,可以同时传输多层节目。
注意,DVB 全称为 Digital Video Broadcasting,包括不同的系统,如卫星数字电视广播系统,有线数字电视广播系统,地面开路数字电视广播系统,交互式数字电视广播系统以及数字电视加扰系统。DVB 系统标准是一种全球数字电视技术的标准。如何定义广播中的比特流语法与句法,以实现在比特流中复用数字音频与视频,欧洲的 DVB 采用数字视频压缩 MPEG-2 标准,该标准是定义比特流的语法与句法的一个 ISO/IEC 标准,即 13818-1 标准。DVB 系统的核心技术是采用 MPEG-2 技术进行视频、音频的编码,使用统一的 MPEG-2 传输流(TS 流)。
MPEG-2 system(编号 13818-1)是 MPEG-2 标准的其中一部分,该部分描述了多个视频,音频和数据多种基本流(ES)合成传输流(TS)和节目流(PS)的方式。
TS 介绍
一路 TS 比特流通常由连续的固定字节的 TS 包组成,所包含的内容有:
- 一路或多路视频流(多个 PES 包组成,每个 PES 包的 PID 是一致的,一个 PES 包可能由若干个 TS 包组成)
- 一路或多路音频流(通常为杜比的音频格式)
- 一路或多路字幕
- PSI 表格信息(Program Specific Information,包括 PAT 与 PMT 表,即节目关联表与节目映射表)
- PES: Packetized Elementary Stream,一路基本码流(如 MEPG2 视频流)会在编码器端被打包成 PES 流,由多个 PES 包组成,打包的过程中主要加入了 PTS/DTS 信息。
PAT 描述有多少路节目,每路节目的 PMT 表的 PID 是多少,PMT 则描述了本节目有多少流,每一路流的类型与 PID 是多少,举个例子,你找个一个 TS 包,它的 PID 是 0,说明它的负载内容是 PAT 信息,解析 PAT 信息,你发现节目 1 的 PMT 表的 PID 是 0x10,接着,你在比特流中寻找一个 PID 为 0x10 的 TS 包,它的负载内容是节目 1 的 PMT 表信息,解析该 PMT 信息,你可以发现第一路流是 MPEG2 音频流,PID 号 0x21,第二路流是 MPEG2 视频流,PID 号是 0x22,第三路流是 DVB 字幕流,PID 号是 0x23,解析完毕,凡是比特流中 PID 号为 0x22 的 TS 包,所负载的内容为 MPEG2 视频流,把这些包一个一个找出来,把其中的有效码流一部分一部分的拼接起来,然后送给解码器去解码。
注意,就一般的视频流而言,只要拼接成一个完整的 PES 包,就可以送出去给解码器,然后再继续拼接下一个 PES 包。