版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、關(guān)于 關(guān)于 TS 流的解析 流的解析 TS 即是“Transport Stream“的縮寫(xiě)。他是分包發(fā)送的,每一個(gè)包長(zhǎng)為 188 字節(jié)。在 TS 流里可以填入很多類型的數(shù)據(jù), 如視頻、 音頻、 自定義信息等。 他的包的結(jié)構(gòu)為, 包頭為 4 個(gè)字節(jié), 負(fù)載為 184 個(gè)字節(jié) (這184 個(gè)字節(jié)不一定都是有效數(shù)據(jù),有一些可能為填充數(shù)據(jù)) 。 工作形式: 因?yàn)樵?TS 流里可以填入很多種東西, 所以有必要有一種機(jī)制來(lái)確定怎么來(lái)標(biāo)識(shí)這些數(shù)據(jù)。
2、 制定 TS 流標(biāo)準(zhǔn)的機(jī)構(gòu)就規(guī)定了一些數(shù)據(jù)結(jié)構(gòu)來(lái)定義。比如: PSI(Program Specific Information)表,所以解析起來(lái)就像這樣: 先接收一個(gè)負(fù)載里為 PAT 的數(shù)據(jù)包,在整個(gè)數(shù)據(jù)包里找到一個(gè) PMT 包的 ID。然后再接收一個(gè)含有 PMT 的數(shù)據(jù)包,在這個(gè)數(shù)據(jù)包里找到有關(guān)填入數(shù)據(jù)類型的 ID。之后就在接收到的 TS 包里找含有這個(gè) ID 的負(fù)載內(nèi)容,這個(gè)內(nèi)容就是填入的信息。根據(jù)填入的數(shù)據(jù)類型的 ID 的不同,在
3、 TS 流復(fù)合多種信息是可行的。關(guān)鍵就是找到標(biāo)識(shí)的 ID 號(hào)。 現(xiàn)在以一個(gè)例子來(lái)說(shuō)明具體的操作: 在開(kāi)始之前先給出一片實(shí)際 TS 流例子: 0000f32ch: 47 40 00 17 00 00 B0 0D 00 01 C1 00 00 00 01 E0 ; G@....?..?...? 0000f33ch: 20 A2 C3 29 41 FF FF FF FF FF FF FF FF FF FF FF ; ⒚0000f34ch
4、: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f35ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f36ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f37ch: FF FF FF FF FF FF FF FF FF FF FF FF
5、 FF FF FF FF ; 0000f38ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f39ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3ach: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3bch: FF FF FF FF
6、 FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3cch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3dch: FF FF FF FF FF FF FF FF FF FF FF FF 47 40 20 17 ; G@ . 0000f3ech: 00 02 B0 1B 00 01 C1 00 00 E0 21 F0 00 1B
7、E0 21 ; ..?..?.??.? 0000f3fch: F0 04 2A 02 7E 1F 03 E0 22 F0 00 5D 16 BD 48 ; ?*.~..??].紿 具體的分析就以這個(gè)例子來(lái)分析。 // Adjust TS packet header void adjust_TS_packet_header(TS_packet_header* pheader) { unsigned char buf[4]; mem
8、cpy(buf, pheader, 4); pheader->transport_error_indicator = buf[1] >> 7; pheader->payload_unit_start_indicator = buf[1] >> 6 pheader->transport_priority = buf[1] >> 5
9、pheader->PID = (buf[1] pheader->adaption_field_control = buf[3] >> 4 pheader->continuity_counter = buf[3] } 這是一個(gè)調(diào)整 TS 流數(shù)據(jù)包頭的函數(shù), 這里牽扯到位段調(diào)整的問(wèn)題。 現(xiàn)在看一下
10、TS 流數(shù)據(jù)包頭的結(jié)構(gòu)的定義: 再給出 PAT 表字段調(diào)整函數(shù): // Adjust PAT table void adjust_PAT_table ( TS_PAT * packet, char * buffer ) { int n = 0, i = 0; int len = 0; packet->table_id = buffer[0]; packet->section_syntax
11、_indicator = buffer[1] >> 7; packet->zero = buffer[1] >> 6 packet->reserved_1 = buffer[1] >> 4 packet->section_length = (buffer[1]
12、 packet->version_number = buffer[5] >> 1 packet->current_next_indicator = (buffer[5] > 7; packet->section_number = buffer[6]; packet->last_section_number
13、 = buffer[7]; // Get CRC_32 len = 3 + packet->section_length; packet->CRC_32 = (buffer[len-4] n ++ ) { packet->program_number = buffer[8] reserved_3 = buffer
14、[10] >> 5; if ( packet->program_number == 0x0 ) packet->network_PID = (buffer[10] program_map_PID = (buffer[10] << 3) << 5 | buffer[11]; } n += 5; } } 通過(guò)上面的分析,例子中的數(shù)據(jù) 00 B0 0D 00 01 C1 00 00 00
15、 01 E0 20 A2 C3 29 41 就是具體的PAT 表的內(nèi)容,然后根據(jù) PAT 結(jié)構(gòu)體來(lái)具體分析 PAT 表。但是我們需要注意的是在 PAT 表里有program_number、network_PID 的元素不只有一個(gè),這兩個(gè)元素是通過(guò)循環(huán)來(lái)確定的。循環(huán)的次數(shù)通過(guò) section_length 元素的確定。在這個(gè)例子中 program_map_PID 為 20,所以下面來(lái) PMT 分析時(shí),就是查找 47 40 20 的開(kāi)頭的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- TS流無(wú)縫拼接技術(shù)研究.pdf
- 基于TS流的數(shù)字電視信號(hào)切換.pdf
- 數(shù)字電視TS碼流監(jiān)測(cè)的研究分析.pdf
- MPEG-2 TS流監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 多路MEPG2的PS流復(fù)用為一路TS流的研究與實(shí)現(xiàn).pdf
- 基于MPEG-2傳送流TS的分析研究.pdf
- MPEG-2 TS流處理及其網(wǎng)絡(luò)傳輸技術(shù)的研究.pdf
- 基于TS流的數(shù)字電視播出系統(tǒng)的研究與實(shí)現(xiàn).pdf
- 基于ASI接口的高清TS流收錄系統(tǒng)研究與實(shí)現(xiàn).pdf
- MPEG-2 TS碼流檢測(cè)儀的設(shè)計(jì)與研究.pdf
- 基于MPEG_2 TS流的有線傳輸方式的研究與實(shí)現(xiàn).pdf
- 基于NIOSⅡ系統(tǒng)的單片TS流復(fù)用器的研究與開(kāi)發(fā).pdf
- 基于FPGA的TS流復(fù)用器及其接口的設(shè)計(jì)與實(shí)現(xiàn).pdf
- IP封裝TS流DVB再?gòu)?fù)用服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于usb2.0接口的數(shù)字電視ts流接收器設(shè)計(jì)
- 基于FPGA的MPEG-2預(yù)處理TS流復(fù)用設(shè)計(jì)及驗(yàn)證.pdf
- 數(shù)字電視系統(tǒng)TS碼流檢測(cè)儀的設(shè)計(jì)與實(shí)現(xiàn).pdf
- TS流復(fù)用解復(fù)用及DSM-CC特技播放研究.pdf
- 關(guān)于恒星外向流的研究.pdf
- QAM調(diào)制器前端TS流包處理器的設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論