关于TS流的解析

关于TS流的解析

ID:42447986

大小:131.73 KB

页数:5页

时间:2019-09-15

关于TS流的解析_第1页
关于TS流的解析_第2页
关于TS流的解析_第3页
关于TS流的解析_第4页
关于TS流的解析_第5页
资源描述:

《关于TS流的解析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、关于TS流的解析TS即是'TransportStream**的缩写。他是分包发送的,每一个包长为188字节。在TS流里可以填入很多类型的数据,如视频、音频、H定义信息等。他的包的结构为,包头为4个字节,负载为184个字节(这184个字节不一定都是有效数据,有一些可能为填充数据)。工作形式:因为在TS流里可以填入很多种东西,所以有必要有一种机制來确定怎么來标浜这些数据。制定TS流标准的机构就规定了一些数据结构來定义。比如:PSI(ProgramSpecificInformation)衣,所以解析起來就像这样:先接收一个负载

2、里为PAT的数据包,在整个数拯包里找到一个PMT包的ID。然后再接收一个含有PMT的数協包,在这个数拯包里找到有关填入数据类型的ID。Z后就在接收到的TS包里找含有这个ID的负载内容,这个内容就是填入的信息。根据填入的数据类烈的ID的不同,在TS流复合多种信息是可行的。关键就是找到标识的ID号。现在以一个例子來说明具体的操作:在开始Z前先给出一片实际•TS流例子:0000f32ch474000170000B00D0001C100000001E0;G@..0000f33ch20A2C32941FFFFFFFFFFFFFFF

3、FFFFFFF;19.)A0000f34chFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f35chFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f36chFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f37chFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f38chFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f39chFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

4、F;0000f3achFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f3bchFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f3cchFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;0000f3dchFFFFFFFFFFFFFFFFFFFFFFFF47402017;G@.0000f3ech0002B01B0001C10000E021F0001BE021;0000f3fch:F0042A027E1F03E022F0005D16BD48;?*.-..?

5、?].紿具体的分析就以这个例子來分析。//AdjustTSpacketheadervoidadjust_TS_packet_header(TS_packet_header*pheader){unsignedcharbuf[4];memcpy(buf,pheader,4);pheader->transport_error_indicator=buf[1]>>7;pheader->payload_unit_start_indicator=buf[1]>>6&0x01;pheader・>transport_priority=b

6、uf[1]>>5&0x01;pheader->PID=(buf[1]&0x1F)<<8

7、buf[2];pheader・>transport_scrambling_control=buf[3]>>6;pheader->adaption_field_control=buf[3]>>4&0x03;pheader->continuity_counter=buf[3]&0x03;}这是一个调整TS流数据包头的两数,这里牵扯到位段调整的问题。现在看一下TS流数据包头的结构的定义://Transportpacketheadertype

8、defstructTS_packet_headerunsignedsync_byte:8;unsignedtransport_error_indicator:1;unsignedpayload_unit_start_indicator:1;unsignedtransport_priority:1;unsignedPID:13;unsignedtransport_scrambling_control:2;unsignedadaption_field_control:2;unsignedcontinuity_counter:

9、4;}TS_packet_header;F面我们来分析,在ISO/IEC13818-1里有说明,PAT(ProgramAssociationlable)的PID值为0x00,TS包的标识(即sync_byte)为0x47,并且为了确保这个TS包里的数据有效,所以我们一开始查找474000这三纽16进制数,为什么这样?

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。