關(guān)于TS流的解析

關(guān)于TS流的解析

ID:42447986

大?。?31.73 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2019-09-15

關(guān)于TS流的解析_第1頁(yè)
關(guān)于TS流的解析_第2頁(yè)
關(guān)于TS流的解析_第3頁(yè)
關(guān)于TS流的解析_第4頁(yè)
關(guān)于TS流的解析_第5頁(yè)
資源描述:

《關(guān)于TS流的解析》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、關(guān)于TS流的解析TS即是'TransportStream**的縮寫(xiě)。他是分包發(fā)送的,每一個(gè)包長(zhǎng)為188字節(jié)。在TS流里可以填入很多類(lèi)型的數(shù)據(jù),如視頻、音頻、H定義信息等。他的包的結(jié)構(gòu)為,包頭為4個(gè)字節(jié),負(fù)載為184個(gè)字節(jié)(這184個(gè)字節(jié)不一定都是有效數(shù)據(jù),有一些可能為填充數(shù)據(jù))。工作形式:因?yàn)樵赥S流里可以填入很多種東西,所以有必要有一種機(jī)制來(lái)確定怎么來(lái)標(biāo)浜這些數(shù)據(jù)。制定TS流標(biāo)準(zhǔn)的機(jī)構(gòu)就規(guī)定了一些數(shù)據(jù)結(jié)構(gòu)來(lái)定義。比如:PSI(ProgramSpecificInformation)衣,所以解析起來(lái)就像這樣:先接收一個(gè)負(fù)載

2、里為PAT的數(shù)據(jù)包,在整個(gè)數(shù)拯包里找到一個(gè)PMT包的ID。然后再接收一個(gè)含有PMT的數(shù)協(xié)包,在這個(gè)數(shù)拯包里找到有關(guān)填入數(shù)據(jù)類(lèi)型的ID。Z后就在接收到的TS包里找含有這個(gè)ID的負(fù)載內(nèi)容,這個(gè)內(nèi)容就是填入的信息。根據(jù)填入的數(shù)據(jù)類(lèi)烈的ID的不同,在TS流復(fù)合多種信息是可行的。關(guān)鍵就是找到標(biāo)識(shí)的ID號(hào)?,F(xiàn)在以一個(gè)例子來(lái)說(shuō)明具體的操作:在開(kāi)始Z前先給出一片實(shí)際?TS流例子:0000f32ch474000170000B00D0001C100000001E0;G@..0000f33ch20A2C32941FFFFFFFFFFFFFFF

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

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

5、?].紿具體的分析就以這個(gè)例子來(lái)分析。//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;}這是一個(gè)調(diào)整TS流數(shù)據(jù)包頭的兩數(shù),這里牽扯到位段調(diào)整的問(wèn)題?,F(xiàn)在看一下TS流數(shù)據(jù)包頭的結(jié)構(gòu)的定義://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面我們來(lái)分析,在ISO/IEC13818-1里有說(shuō)明,PAT(ProgramAssociationlable)的PID值為0x00,TS包的標(biāo)識(shí)(即sync_byte)為0x47,并且為了確保這個(gè)TS包里的數(shù)據(jù)有效,所以我們一開(kāi)始查找474000這三紐16進(jìn)制數(shù),為什么這樣?

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。