基于IPV6的嵌入式視頻監(jiān)控系統(tǒng)
3. 軟件總體結(jié)構(gòu)與設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括服務(wù)器端和客戶端軟件設(shè)計(jì)。服務(wù)器端軟件主要實(shí)現(xiàn)采集音視頻、壓縮編碼、打包發(fā)送到網(wǎng)絡(luò)。客戶端軟件主要實(shí)現(xiàn)接受服務(wù)器發(fā)送過(guò)來(lái)的音視頻壓縮包,然后對(duì)數(shù)據(jù)拼接解碼、播放,如圖 4所示。
3.1MPEG-4視頻流的 RTP組包處理
要通過(guò) RTP傳輸 MPEG-4視頻流,需要對(duì)其進(jìn)行打包 (Packetization)處理。加上時(shí)間、同步等信息。MPEG-4對(duì)每個(gè) voP (voP是 VO在某一時(shí)刻的對(duì)象,即某一幀 vo)獨(dú)立進(jìn)行編 / 解碼。因此以 VOP為單位進(jìn)行打包,既提高了效率又充分利用了 MPEG-4的編碼特性。為了不造成 IP碎片,包長(zhǎng)還須有一個(gè)限制,就是不能超過(guò)該網(wǎng)絡(luò)路徑的 MTU(Maxium Transit Unit)??紤]到傳輸?shù)母咝院蛠G包的魯棒性,我們?nèi)“L(zhǎng)為當(dāng)前 VOP大小與路徑 MTU值的較小值,采用如下組包機(jī)制:
1 VOP能放入單個(gè) RTP包,就把此 VOP單獨(dú)放入一個(gè) RTP包中;
2 VOP分段,放入多個(gè) RTP包,此時(shí)須把 VOP頭部信息復(fù)制到每個(gè) RTP包,以去除包間的相關(guān)性,達(dá)到丟包的魯棒性 :為減小包數(shù),降低開(kāi)銷,一包中能放入多少宏塊就盡可能多地放入多少宏塊,但即使最后一個(gè)包中仍有剩余空間,也小能把另一 VOP中的宏塊放入此包中,算法流程如圖 5所示。
評(píng)論