MPEG-2TS码流分析 mpeg2 ts文件下载

一、TS流概述

ES流(ElementaryStream,基本流):数字电视各组成部分编码后所形成的直接表示基本元素内容的流,包含视频、音频或数据的连续码流。

PES流(Paketized ElementaryStream,打包基本码流):是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。

PS (ProgramStream,节目流):将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述后的码流。PS流是一种多路复用数字音频、视频等的封装容器,它一个或多个具有共同的时间基准的PES流合并成一个整体流,主要用于节目存储。其包长不固定,且较长,一旦失去同步信息,接收机无法确定下一包的同步位置,会造成失步,导致严重的信息丢失。PS流适用于误码小、信道较好的环境,如演播室、家庭环境和存储介质中。

TS流(TransportStream,传输流):是将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述和节目组成信息,并进一步封装成传输包后的码流。TS流是将视频、音频、PSI等数据打包成传输包进行传送。主要用于节目传输。TS的传输包长度固定,一般为188字节。

TS流和PS流是MPEG-2标准中规定的两种输出码流。TS格式中,从视频流的任意一片断开始都可以独立解码,而PS格式不可以。由于TS流具备较强的抵抗传输误码的能力,因此目前在传输媒体中进行传输的MPEG-2码流基本上都采用了TS流的包格式。

TS流的播放:播放前将TS流文件的后缀名该为.mpg或者.mpeg,用可以直接播放MPEG-TS流的播放器(一般的播放器都可以)打开播放即可。

TS流的优点:
1、动态带宽分配:由于TS的传输包长度是固定的,因此可过PID可以将规定的信道总频带在视频、音频和数据信息见进行实时的、灵活的分配。利用这一特性,可在广播付费节目前实时地将解密钥匙插入到TS流中送给广大用户。

2、可分级性:允许一个复用的传输码流与其他视音频基本码流进行二次复用,生产占用频带给宽的更高一级的TS流。
3、可扩展性
4、抗干扰性
5、接收机成本低廉

TS流的形成过程:
1、 压缩【显示单元】产生【进入单元】,连续的【进入单元】组成一个基本码流。
2、 对ES(基本码流)进行打包形成PES。
MPEG-2TS码流分析 mpeg2 ts文件下载
3、 在PES包中加入定时信息(PTS/DTS)。
4、 将PES包内容分配到一系列固定长度的传输包中。
5、 在传输包中加入定时信息(PCR)。
6、 在传输包中加入节目专用信息(PSI) 。
7、 连续输出传输包形成具有恒定比特率的MPEG-TS流。

二、TS流传输包(简称TS包)结构分析
MPEG-2中规定TS传输包的长度为188字节。但通信媒介会为包添加错误校验字节,从而有了不同于188字节的包长。例如:

DVB 规定中,使用204字节作为包长:1、通过调制器时,在每个传输包后增加了16字节的里德所罗门前向纠错码,因而形成了204字节的数据包。调制后总存在204字节的数据包。2、调制之前存复用器插入RS码或虚构
的RS码。

ATSC规定中,使用208字节作为包长:添加20 字节的RS(Reed-Solomon)前向纠错码。与DVB不同,ATSC规定RS码只能出现在调制的TS流中。

所有的TS包都分为包头和净荷部分。TS包中可以填入很多东西(填入的东西都是填入到净荷部分),有:视频、音频、数据(包括PSI、SI以及其它任何形式的数据)。

1、TS包包头

TS包的包头提供关于传输方面的信息:同步、有无差错、有无加扰、PCR(节目参考时钟)等标志。TS包的包头长度不固定,前32比特(4个字节)固定,后面可能跟有自适应字段(适配域)。32个比特(4个字节)是最小包头。包头的结构固定如下:

同步字节

传输错误指示

开始指示

传输优先级

PID

加扰控制

适配域控制

连续性计数器

适配域

8

1

1

1

13

2

2

4

typedef struct TS_packet_header

{

unsigned sync_byte : 8;

unsigned transport_error_indicator :1;

unsigned payload_unit_start_indicator :1;

unsigned transport_priority : 1;

unsigned PID : 13;

unsigned transport_scrambling_control :2;

unsigned adaption_field_control : 2;

unsigned continuity_counter : 4;

} TS_packet_header;

sync_byte (同步字节):固定为0100 0111(0x47);该字节由解码器识别,使包头和有效负载可相互分离。
transport_error_indicator(传输错误指示):‘1’表示在相关的传输包中至少有一个不可纠正的错误位。当被置1后,在错误被纠正之前不能重置为0。
payload_unit_start_indicator(开始指示):为1时,在前4个字节之后会有一个调整字节,其的数值为后面调整字段的长度length。因此有效载荷开始的位置应再偏移1+[length]个字节。

transport_priority(传输优先级):‘1’表明优先级比其他具有相同PID但此位没有被置‘1’的分组高。
PID:指示存储与分组有效负载中数据的类型。PID 值 0x0000—0x000F保留。其中0x0000为PAT保留;0x0001为CAT保留;0x1fff为分组保留,即空包。

transport_scrambling_control(加扰控制):表示TS流分组有效负载的加密模式。空包为‘00’,如果传输包包头中包括调整字段,不应被加密。
adaptation_field_control(适配域控制):表示包头是否有调整字段或有效负载。‘00’为ISO/IEC未来使用保留;‘01’仅含有效载荷,无调整字段;‘10’无有效载荷,仅含调整字段;‘11’调整字段后为有效载荷,调整字段中的前一个字节表示调整字段的长度length,有效载荷开始的位置应再偏移[length]个字节。空包应为‘10’。
continuity_counter(连续性计数器):随着每一个具有相同PID的TS流分组而增加,当它达到最大值后又回复到0。范围为0~15。

适配域:

2、TS包净荷部分

TS包中净荷所传输的信息包括两种类型:

1、视频、音频的PES包以及辅助数据;

2、节目专用信息PSI。

当然,TS包也可以是空包。空包用来填充TS流,可能在重新进行多路复用时被插入或删除。

在系统复用时,视频、音频的ES流需进行打包形成视频、音频的PES流,辅助数据(如图文电视信息)不需要打成PES包。PES包非定长,音频的PES包小于等于64K,视频的一般为一帧一个PES包。一帧图象的PES包通常要由许多个TS包来传输。MPEG-2中规定,一个PES包必须由整数个TS包来传输。如果承载一个PES包的最后一个TS包没能装满,则用填充字节来填满;当下一个新的PES包形成时,需用新的TS包来开始传输。

节目专用信息PSI(Program SpecificInformation)

了管理各种类型的TS数据包,需要有些特殊的TS包来确立各个TS数据包之间的关系。这些特殊的TS包里所包含的信息就是节目专用信息。在不同的标准中它有不同的名字:

• MPEG-2中称为PSI;

• DVB标准根据实际需要,对PSI扩展,称为SI信息;

• ATSC标准中为PSIP信息

MPEG-2中,规定的对PSI信息的描述方法有以下几种:

• 1、表Table: 节目信息的结构性的描述;

–节目关联表Program Association Table (PAT) 0x0000

–节目映射表Program Map Tables (PMT)

–条件接收表Conditional Access Table (CAT) 0x0001

–网络信息表Network Information Table(NIT) 0x0010

–传送流描述表Transport Stream Description Table (TSDT)

• 2、节Section: 将表格的内容映射到TS流中;

专用段 Private_ section

•3、描述符Descriptor:提供有关节目构成(视频流、音频流、语言、层次、系统时钟和码率等多方面)的信息;

ITU-T Rec.H.222.0|ISO /IEC 13818-1 中定义的PSI表可被分成一段或多段置于传输流分组中。一段就是一个语法结构,用来将 ITU-T Rec.H.222.0|ISO /IEC13818-1 中定义的 PSI表映射到传输流分组中。

PAT:

TS流中包含一个或者多个PAT表。PAT表由PID为0x0000的TS包传送,其作用是为复用的每一路传送流提供出所包含的节目和节目编号,以及对应节目的PMT的位置即PMT的TS包的PID值,同时还提供NIT的位置,即NIT的TS包的PID的值。

Table ID

Section syntax indicator

0

Section length

Transport stream ID

Version

number

Current next indicator

Section

Number

Last section number

N loop

8

1

1

2

12

16

2

5

1

8

8

N loop中为:

Program number0

Network PID

……

Program number1

Program map PID-1

……

CRC 32

16

3

13

16

3

13

32

table_id:固定为0x00,标志该表是PAT表。

section_syntax_indicator:段语法标志位,固定为1。

section_length:表示这个字节后面有用的字节数,包括CRC32。节目套数:(sectionlength-9)/4

transport_stream_id:16位字段,表示该TS流的ID,区别于同一个网络中其它多路复用流。

version_number:表示PAT的版本号。

current_next_indicator:表示发送的PAT表是当前有效还是下一个PAT有效。

section_number:表示分段的号码。PAT可能分为多段传输,第一段为0,以后每个分段加1,最多可能有256个分段。

last_section_number:表示PAT最后一个分段的号码。

Program number:节目号

network_ PID:网络信息表(NIT)的PID,节目号为0时对应ID为network_PID。

Program mapPID:节目映射表(PMT)的PID号,节目号为大于等于1时,对应的ID为program_map_PID。一个PAT中可以有多个program_map_PID。

CRC_32:32位字段,CRC32校验码Cyclic RedundancyCheck。

PMT:

PMT在传送流中用于指示组成某一套节目的视频、音频和数据在传送流中的位置,即对应的TS包的PID值,以及每路节目的节目时钟参考(PCR)字段的位置。

Table id

Section syntax indicator

0

Section

length

Transport stream id

Version

number

Current next indicator

Section number

Last section number

PCR PID

Program info length

N loop descriptors

N loop

CRC 32

8

1

1

2

12

16

2

5

1

8

8

3

13

4

N loop中为:

Stream type

Elementary PID

ES info length

N loop descriptors

8

3

13

4

12

Table id:固定为0x02,标志该表是PMT表。
Section syntaxindicator:对于PMT表,设置为1。
Sectionlength:表示这个字节后面有用的字节数,包括CRC32。
Programnumber:它指出该节目对应于可应用的Program map PID。
Versionnumber:指出PMT的版本号。
Current nextindicator:当该位置’1’时,当前传送的Program mapsection可用;当该位置’0’时,指示当前传送的Program map section不可用,下一个TS流的Programmapsection有效。
Sectionnumber:总是置为0x00(因为PMT表里表示一个service的信息,一个section的长度足够)。
Last sectionnumber:该域的值总是0x00。
PCRPID:节目中包含有效PCR字段的传送流中PID。
Program infolength:12bit域,前两位为00。该域指出跟随其后对节目信息的描述的byte数。
Streamtype:8bit域,指示特定PID的节目元素包的类型。该处PID由elementaryPID指定。下表所示为对应原始流的类型。

原始流的类型

描述

0x00

ITU-T|ISO/IEC保留

0x01

ISO/IEC 11172视频

0x02

ITU-T Rec.H.262|ISO/IEC 13818-2视频

0x03

ISO/IEC 11172音频

0x04

ISO/IEC 13818-3音频

0x05

ITU-T Rec.H.222.0|ISO/IEC 13818-1私用分段

0x06

含有私用数据的ITU-T Rec.H.222.0|ISO/IEC13818-1分组

0x07

ISO/IEC 13522 MHEG

0x08

ITU-T Rec.H.222.0|ISO/IEC 13818-1 DSMCC

0x09

ITU-T Rec.H.222.0|ISO/IEC13818-1/11172-1

0x10 ~ 0x7F

ITU-T Rec.H.222.0|ISO/IEC 13818-1保留

0x80 ~ 0xFF

用户私用

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/232362.html

更多阅读

BT文件下载文件名中包含违规内容怎么办? 文件名包含违规

BT文件下载文件名中包含违规内容怎么办?——简介最近在网上找到一些种子想用同学给我的VIP迅雷号来下载,可是老是提示“文件名中包含违规内容...”,怎么办呢?我这就教你怎么解决。BT文件下载文件名中包含违规内容怎么办?——工具/原料

安装迅雷后,如何不用迅雷下载软件或文件 下载文件时不用迅雷

安装迅雷后,如何不用迅雷下载软件或文件迅雷是一款专门的下载工具,用它下载比普通下载快很多,所以很多人都选择了迅雷来下载软件或文件,尤其是在网上下载很大的东西,迅雷的下载速度就体现出来了,能节省很多时间。当我们安装完迅雷后,它

MPEG-4视频编解码知识点 mpeg4视频下载

最近在泰瑞达找到工作,以后也不做嵌入式的东西了。现在把研究生几年来写的东西一点一点贴上来,留给有需要的人。对于有着巨大信息量的视频处理来说,需要研究出更高压缩比、更低码率、更清晰画质的编解码算法。到目前为止,视频编解码的

“徽”字解析!HSQZ h264码流解析

大家好!新黄山------古徽州“徽”的原意是绑缚,后人意愿指为美好,徽美也!让一个“徽”子让您快速地了解黄山市,了解徽州,了解徽州文化,黄山市建市是1987年11月18日,她的前身是徽州地区,徽州这个名字来源于宋徽宗宣和三年(公元

声明:《MPEG-2TS码流分析 mpeg2 ts文件下载》为网友赋词半阙分享!如侵犯到您的合法权益请联系我们删除