网络协议之ts---ts 流分析详解
名词缩写翻译:
es:elements stream 基本流
pes:packet elements stream 打包流
pts:presentation time stamp 显示时间戳
dts:decoding time stamp 解码时间戳
pcr:program clock referrence 节目时钟参考
pat:program association table节目关联表
pmt:program map table 节目映射表
sdt:service description section 服务描述段
vbv:video buffer verifer 视频缓冲验证
psi:节目专用信息PSI(Program Specific Information)
std:PTS表示显示单元出现在系统目标解码器(STD: system target decoder)的时间
SCR:(system clock reference) 系统时钟参考 for es sync
STC:(system time clock) 系统时间时钟 for es sync
AVI / PS(Program Stream)/ TS(Transport Stream)/ MKV(Matroska)
(0)264 转换成ts
(1)ts packet 打包发送
(2)ts demux 解析
--------------------------------------------author:pkf
----------------------------------------------------time:2014-5-4
----------------------------------------------------------qq:1327706646
(0)264 转换成ts
264->es->pes->ts
(1)ts packet 打包发送
1, MPEG-2 TS中的PSI
PSI信息主要包括以下的表:
PAT(Program Association Table):节目群丛表,该表的PID是固定的0x0000,它的主要作用是指出该传输流ID,以及该路传输流中所对应的几路节目流的 MAP 表和网络信息表的PID。
PMT(Program Map Table):节目映射表,该表的PID是由PAT提供给出的。通过该表可以得到一路节目中包含的信息,例如,该路节目由哪些流构成和这些流的类型(视频,音频,数据),指定节目中各流对应的PID,以及该节目的PCR所对应的PID。
NIT(Network Information Table):网络信息表,该表的PID是由PAT提供给出的。NIT的作用主要是对多路传输流的识别,NIT提供多路传输流,物理网络及网络传输的相关的一些信息,如用于调谐的频率信息以及编码方式。调制方式等参数方面的信息。
CAT(Conditional Access Table):条件访问表,PID - 0x0001。
除了上述的几种表外,mpeg-2还提供了私有字段,用于实现对MPEG-2的扩充。
2, DVB中的SI
Mpeg-2的PSI中提供了不少的相关节目组成和相互关系的信息,从而使得在接收端可以正确的对多路传输流进行分解。但是这些信息在实际使用时仍显得不够,为此在DVB中采用SI对PSI信息进行了进一步的扩展。
除了在PSI中的信息之外,DVB还定义了一些其他的一些表。
SI的主要用途有:
a、根据NIT,PAT,PMT等信息可以进行自动的频道调谐;
b、更方便的对节目进行选择和定位;
c、实现电子节目指南EPG(Electronic Program Guide),等等。
PSI中的信息基本上都是与当前码流相关的,即它们所涉及的内容都与当前码流中的部分信息相关。与PSI不同的是,SI的信息可以包括不在当前码流中的一些服务和事件,允许用户进行更多的选择和了解更多的其他服务信息。
DVB规定携带SI信息的传输包必须用指定的PID,指定的PID如下表:
TABLE TYPE | PID Value |
PAT | 0X0000 |
CAT | 0X0001 |
TSDT | 0X0002 |
RESERVED | 0X0003 TO 0X000F |
NIT,ST | 0X0010 |
SDT,BAT,ST | 0X0011 |
EIT,ST | 0X0012 |
RST,ST | 0X0013 |
TDT,TOT,ST | 0X0014 |
Network Synchroniztion | 0X0015 |
Reserved for future use | 0X0016 TO 0X001B |
Inband signaling | 0X001C |
Measurement | 0X001D |
DIT | 0X001E |
SIT | 0X001F |
在该表中可以看到同一个PID可以对应不同的表,要把这样的表区分开来,需要进一步找到TableID 进行识别。TableID表如下:
Value Description
0x00 Program_association_section
0x01 Conditional_access_section
0x02 Program_map_section
0x03 Transport_stream_description_section
0x04 TO 0x3F Reserved
0x40 Network_information_section-actual_network
0x41 Network_information_section-other_network
0x42 Service_description_section-actual_transport_stream
0x43 TO 0x45 Reserved for future use
0x46 Service_description_section-other_transport_stream
0x47 TO 0x49 Reserved for future use
0x4A Bouquet_association_section
0x4B TO 0x4D Reserved for future use
0x4E Event_information_section-actual_transport_stream,P/F
0x4F Event_information_section-other_transport_stream,P/F
0x50 TO 0x5F Event_information_section-actual_transport_stream,schedule
0x60 TO 0x6F Event_information_section-other_transport_stream,schedule
0x70 Time_data_section
0x71 Running_status_section
0x72 Stuffing_section
0x73 Time_offset_section
0x74 TO 0x7D Reserved for future use
0x7E Discontinuity_information_section
0x7F Selection_information_section
0x80 TO 0xFE User defined
0xFF Reserved
有了这两个ID我们可以在码流中找到我们想要的任何一张表。
SI主要包括以下一些信息表:
NIT(Network Information Table):NIT的作用主要是对多路传输流的识别,NIT
提供多路传输流,物理网络及网络传输的相关的一些信息,如用于调谐的频率信息以
及编码方式。调制方式等参数方面的信息。根据此信息设置IRD(Integrated Receiver
Decoder)可以进行多路传输流之间的切换。
SDT(Service Description Table):用于描述系统中各路节目的名称,该节目的提
供者,是否有相应的时间描述表等方面的信息。该表可以描述当前传输流,也可以描
述其他的传输流,这由TableID进行区分。
EIT(Event Information Table):该表示对某一路节目的更进一步的描述。它提供
事件的的名称,开始时间,时间长度,运行状态等。
TDT(Time and Data Table):该表提供当前的时间信息,该表用来对IRD的解码
时钟进行更新
BAT(Bouquet Association Table):该表提供一系列类似节目的集合。这些节目
可以不在同一个传输流中,利用该表可以很方便的进行相关节目或某一类节目的浏览
和选择。
RST(Running Status Table):该表提供某一具体事件的的运行状态,可用于按时
自动的切换到指定的事件
TOT(Time Offset Table):该表提供当地时间与TDT之间的关系,该表与TDT
配合使用。
TSDT(Transport Stream Description Table):由PID0x0002标识,提供传输流的一
些参数.
ST(Stuffing Table):该表表明其内容是无效的,只是作为填充字节。
send ts
http://blog.csdn.net/xsckernel/article/details/39671025 打包流
(2)ts demux
http://blog.csdn.net/zxh821112/article/details/17587215 ts流格式
http://blog.chinaunix.net/uid-9688646-id-1998407.html ts解码过程
http://www.360doc.com/content/11/0727/11/7399771_136097761.shtml pts dts
http://blog.csdn.net/heanyu/article/details/6229724 概念缩写
http://ttxk.blog.163.com/blog/static/16335079200975115823959
http://blog.csdn.net/haomcu/article/details/7162012 dvb si psi
http://news.cnblogs.com/n/520273/ 酷炫动画
http://www.matrix67.com/ m67
http://i.m67.blog.163.com/blog/#m=0 关于青春淡淡的稀里哗啦
http://blog.163.com/laorenyuhai126@126/blog/static/19350779201045080528/