TS流简介
- 格式:ppt
- 大小:283.50 KB
- 文档页数:15
什么是TS(transport stream)传输流标准?MPEG组织于1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性,MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定。
对应于不同的应用,符合MPEG-2标准的码流又分为传送流和程序流,本文主要讲解了传送流有关的部分数据结构,从实际应用的传送流码流中截取了部分码流做了说明,并给出了部分解析传送流码流的实例程序。
在MPEG-II标准中,为了将一个或更多的音频、视频或其他的基本数据流合成单个或多个数据流,以适应于存储和传送,必须对其重新进行打包编码,在码流中还需插入各种时间标记、系统控制等信息,最后送到信道编码与调制器。
这样可以形成两种数据流——传送流(TS)和程序流(PS),分别适用于不同的应用,图1给出了单路节目的视音频数据流的复用框图。
传送流(Transport Stream)简称TS流,它是根据ITU-T Rec.H.222.0|ISO/IEC 13818-2 和ISO/IEC 13818-3协议而定义的一种数据流,其目的是为了在有可能发生严重错误的情况下进行一道或多道程序编码数据的传送和存储。
这种错误表现为比特值错误或分组丢失。
传送流由一道或多道节目组成,每道节目由一个或多个原始流和一些其他流复合在一起,包括视频流、音频流、节目特殊信息流(PSI)和其他数据包。
其中PSI表有4种类型:节目关联表(PAT)、节目映射表(PMT)、网络信息表和条件访问表。
传送流应用比较广泛,如视音频资料的保存、电视节目的非线性编辑系统及其网络等。
在开发机顶盒以及视频设备时有时需要对码流的编码知识有比较清楚地了解,这样才能在遇到问题时做出全面的分析。
TS流结构分析如图2所示,TS包的长度是固定的,为188字节。
包括同步字节(sync_byte)0x47和数据包识别号PID等。
PID为13位字段,指示存储于分组有效负载中数据的类型,PID值0x0000为程序关联表保留,而0x0001为条件访问表保留,0x1FFF为空分组保留。
视频知识基础:什么是TS、PS流?在MPEG-2系统中,信息复合/分离的过程称为系统复接/分接,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流(TS:TransportStream)。
据传输媒体的质量不同,MPEG-2中定义了两种复合信息流:传送流(TS)和节目流(PS:ProgramStream)TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度的。
PS包与TS包在结构上的这种差异,导致了它们对传输误码具有不同的抵抗能力,因而应用的环境也有所不同。
TS码流由于采用了固定长度的包结构,当传输误码破坏了某一TS 包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。
而PS包由于长度是变化的,一旦某一PS包的同步信息丢失,接收机无法确定下一包的同步位置,就会造成失步,导致严重的信息丢失。
因此,在信道环境较为恶劣,传输误码较高时,一般采用TS码流;而在信道环境较好,传输误码较低时,一般采用PS 码流如DVD等等。
由于TS码流具有较强的抵抗传输误码的能力,因此目前在传输媒体中进行传输的MPEG-2码流基本上都采用了TS码流。
TS/PES是MPEG定义的标准格式,无论是MPEG1还是MPEG2都给出了包含比特流句法在内的定义,我们所说的TS/PS都是在这里定义的。
因此谈到TS/PS时仍然离不了MPEG,虽然A VS及IP的数据也可以封装在TS中,因为MPEG中给TS/PES的定义中允许封装其他数据。
虽然也许可以不经改变的将不同编码格式的码流经由TS/PS传送,但这事实上这是对MPEG的利用或扩充。
通常情况下,封装不同类型数据的时候我们需要在TS/PES添加标准的(如果有的话)或自定义的描述,并且在有些情况下原则上必须使用MPEG已经定义的特殊描述,TS/PES并非总是透明的。
简单说就是ps流(主要用在DVD上)如是中间丢了一断码流,后面的都没法播了;而TS流(DVB-T,DMB-TH等)如果断了码流,后面的随时可以再开始解码怎么看都行。
【精品博文】TS流(1)——TS流概述1, TS流的作用最近在进行一项h264编解码的工作,h264的码流编出来后自然就涉及到码流的传输了,这时候就需要利用到TS流(Transport Stream)了。
如下图,视频/音频数据就是246编码器或者MPEG2编码器编码出来的原始码流,成为ES流(Elementary Stream)。
ES流经过分组器被打包成PES流(Packetized Elementary Stream)。
而后PES流有两种打包方式,一种是打包成PS流(Program Stream),主要用于存储,如DVD;另一种是打包成TS流,主要用于传输,如广播电视。
两者的主要差别在于PS流是不固定长度,其对数据的完整性要求很高。
而TS流是固定长度的,其最大的优势在于有很强的抵抗传输误码的能力,且从TS流的任一片段开始都可以独立解码。
这里我们只讨论TS流。
2, TS流基本信息前面提到,TS流在广播电视传输中有着广泛应用,那我们就先来了解下广播电视的接收原理,进行了解TS的基本信息。
如下图,假设我要看CCTV5,而其频道号为1。
机顶盒在接收到遥控器的指示后,会进行如下操作:(1) 搜索PID=0x0000的TS包,这种类型的包称为PAT。
所谓PID即Packet ID,类似一张身份证,标示TS包的类型。
从PAT中可以获取到频道号为1的PMT的PID为0x001f。
(2) 机顶盒开始搜索PID=0x001f的TS包——CCTV5的PMT。
从PMT中又可以获取到2个重要信息:CCTV5的视频包的PID为0x0021,音频包为0x0028。
(3) 接着机顶盒抓取这2种PID的TS包,从中提取出PES。
再从PES中提取出ES,送入相应的解码器。
最后播放出来就形成了我们看到的精彩纷呈的电视节目。
由上面的描述,我们可以知道,TS流中关键包有PAT,PMT,PES。
除此之外,还需要PCR来进行时钟同步。
PTS,DTS信息来控制解码以及播放顺序。
一、TS流概述一、TS流概述ES流(Elementary Stream,基本流):数字电视各组成部分编码后所形成的直接表示基本元素内容的流,包含视频、音频或数据的连续码流。
PES流(Paketized Elementary Stream,打包基本码流):是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。
PS (Program Stream,节目流):将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述后的码流。
PS流是一种多路复用数字音频、视频等的封装容器,它一个或多个具有共同的时间基准的PES流合并成一个整体流,主要用于节目存储。
其包长不固定,且较长,一旦失去同步信息,接收机无法确定下一包的同步位置,会造成失步,导致严重的信息丢失。
PS流适用于误码小、信道较好的环境,如演播室、家庭环境和存储介质中。
TS流(Transport Stream,传输流):是将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述和节目组成信息,并进一步封装成传输包后的码流。
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流中送给广大用户。
ts流标准
TS流(Transport Stream)是一种在数字视频广播和存储中广
泛使用的、用于传输和处理音视频数据的标准。
它是MPEG-2
标准中定义的一种容器格式,主要用于将音视频数据打包和传输到接收端。
TS流采用分段的方式将音视频数据进行打包,并将每个分段
称为Packet。
每个Packet由一个特定长度的字节组成,其中
包含了音视频数据以及相关的控制信息。
传输过程中,这些Packet按照一定的顺序依次发送,并在接收端进行解析和播放。
TS流的主要特点包括:
1. 支持多路复用:TS流可以将多个音视频数据流复用在同一
个传输流中,从而实现多路数据的同时传输。
2. 容错性强:TS流通过在数据中添加冗余信息来保证数据传
输的可靠性,从而提高对传输异常的容错能力。
3. 灵活性高:TS流可以提供多种音视频编码方式的支持,同
时还可以加入私有的扩展信息和自定义的元数据。
4. 支持多种传输方式:TS流可以通过各种传输方式进行传输,包括广播、卫星传输、以太网传输等。
TS流广泛应用于数字电视、视频点播、IPTV以及视频监控等
领域,成为目前最主流的音视频传输格式之一。
1)ES- Elementary Streams (原始流),对视频、音频信号及其他数据进行编码压缩后的数据流称为原始流。
原始流包括访问单元,比如视频原始流的访问单元就是一副图像的编码数据。
(2) PES- Packetized Elementary Streams (分组的原始流),原始流形成的分组称为PES分组,是用来传递原始流的一种数据结构(3)节目是节目元素的集合。
节目元素可能是原始流,这些原始流有共同的时间基点,用来做同步显示。
(4)传输流和节目流TS-Transport Stream 翻译为“传输流”PS-Program Stream 翻译为“节目流”PS用来传输和保存一道节目的编码数据或其他数据。
PS的组成单位是PES分组。
TS用来传输和保存多道节目的编码数据或其他数据,TS的组成单位是节目。
PS适用于不容易发生错误的环境,以及涉及到软件处理的应用,典型应用如DVD光盘的文件存储TS适用于容易发生错误的环境,典型应用就是数字电视信号的传输。
TS和PS是可以互相转换的,比如从TS中抽取一道节目的内容并产生有效的PS是可能。
(5)传输流分组和PES分组原始流分成很多PES分组,保持串行顺序,一个PES分组只包含一个原始流的编码数据。
PES分组长度很大,最大可为64K字节。
PES分组分为“分组首部(header)”和“有效负载(payload)”。
“有效负载”指跟随在首部字节之后的字节。
首部的前4个字节构成分组的起始码,标识了该分组所属原始流的类型和ID号。
TS分组也就是传输流数据形成的数据包。
每个TS分组长度为188字节,包括“分组首部”和“有效负载,前4个字节是分组首部,包含了这个分组的一些信息。
有些情况下需要更多的信息时,需在后面添加“调整字段(adaption field)”。
两者之间的关系:PES分组是插入到TS分组中的,每个PES分组首部的第一字节就是TS分组有效负载的第一字节。
节目流、传输流(PS、TS)
2011-09-30 | 新闻来源:电科网
节目流(Program Stream)简称PS。
传输流(Transport Stream)简称TS。
节目流(PS)与传输流(TS)是数字视频系统中的两类数据码流,由MPEG-2系统层定义,H.264采用与MPEG-2相同的系统层,因而也采用PS/TS两类码流。
在多媒体信息与通信系统中,通常视音频数据经信源编码之后,须与辅助数据一起进行节目复用,形成基本码流(ES, Elementary Stream)。
基本码流(ES)经打包处理后形成打包的基本码流(PES, Packetized Elementary Stream)。
随后代表不同视音频信号的PES被送入传输复用器进行系统复用,它们在PS复用器中被组合成节目流(PS),或在TS复用器中被组合成传输流(TS),如图15所示。
图15 节目流(PS)与传输流(TS)
节目流(PS)由打包的基本码流(PES)组合而成,即一组视频、音频和数据基本分量,它们具有共同的相对时间关系,其分组长度可变,且相对较长,一般用于传输、存储及本地播放等误码相对较少的环境;传输流(TS)是节目流(PS)或基本码流(ES)的集合,它们可以以非特定关系复接到一起,其分组长度为188字节,通常用于网络传输等误码相对较多的环境。
HLS, Http Live Streaming 是由Apple公司定义的用于实时流传输的协议, HLS基于HTTP协议实现, 传输内容涉及两部分, 一是M3U8描述文献, 二是TS媒体文献。
1.M3U8文献用文本方式对媒体文献进行描述, 由一系列标签组成。
#EXTM3U#EXT-X-TARGETDURATION:5#EXTINF:5,./0.ts#EXTINF:5,./1.ts#EXTM3U: 每个M3U8文献第一行必须是这个tag。
#EXT-X-TARGETDURATION: 指定最大的媒体段时间长度(秒), #EXTINF中指定的时间长度必须小于或等于这个最大值。
该值只能出现一次。
#EXTINF:描述单个媒体文献的长度。
后面为媒体文献, 如./0.ts2.ts文献ts文献为传输流文献, 视频编码重要格式h264/mpeg4, 音频为acc/MP3。
ts文献分为三层:ts层Transport Stream、pes层 Packet Elemental Stream、es层 Elementary Stream.es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层就是在pes层加入数据流的辨认和传输必须的信息注: 详解如下(1)ts层 ts包大小固定为188字节, ts层分为三个部分:ts header、adaptation field、payload。
ts header固定4个字节;adaptation field也许存在也也许不存在, 重要作用是给局限性188字节的数据做填充;payload是pes数据。
ts headersync_byte 8b同步字节, 固定为0x47transport_error_indicator 1b 传输错误指示符, 表白在ts头的adapt域后由一个无用字节, 通常都为0, 这个字节算在adapt域长度内payload_unit_start_indicator 1b 负载单元起始标示符, 一个完整的数据包开始时标记为1• ts层的内容是通过PID值来标记的, 重要内容涉及: PAT表、PMT表、音频流、视频流。