重慶視頻會(huì)議傳輸模塊的開(kāi)發(fā)選擇
來(lái)源:勁浪科技 更新時(shí)間:2018-05-23 ?? ??瀏覽次數(shù):
視頻會(huì)議主要是開(kāi)發(fā)音視頻、數(shù)據(jù)的傳輸?shù)能浖谶@些開(kāi)發(fā)過(guò)程中,最核心的模塊是傳輸模塊,傳輸模塊的性能直接影響到視頻會(huì)議的最終質(zhì)量,因此傳輸模塊的選擇在視頻會(huì)議開(kāi)發(fā)當(dāng)中尤其重要。傳輸模塊在開(kāi)發(fā)過(guò)程中,由于考慮到QOS的影響,一般都會(huì)使用數(shù)據(jù)重發(fā)的技術(shù),因此傳輸模塊以及成為視頻會(huì)議底層開(kāi)發(fā)的一個(gè)重點(diǎn),我們開(kāi)發(fā)的傳輸模塊,可以選擇用TCP、UDP直接進(jìn)行開(kāi)發(fā)或者利用開(kāi)源的傳輸庫(kù),因?yàn)橐恍╅_(kāi)源傳輸庫(kù)以及比較成熟,直接拿來(lái)用就可以,如果自己開(kāi)發(fā)傳輸模塊,估計(jì)也是一個(gè)巨大工程。現(xiàn)在我們介紹一下傳輸模塊的開(kāi)發(fā)選擇。

1. 利用TCP進(jìn)行開(kāi)發(fā)
使用TCP直接進(jìn)行傳輸模塊的開(kāi)發(fā),在傳輸過(guò)程中數(shù)據(jù)不會(huì)丟包,我們可以采用OICP的完成端口來(lái)進(jìn)行通訊,其優(yōu)點(diǎn)是QOS有保證、支持大容量的數(shù)據(jù)并非,缺點(diǎn)是開(kāi)發(fā)周期長(zhǎng),數(shù)據(jù)建立連接比一般UDP要長(zhǎng)很多,而且資源占用也比一般UDP傳輸?shù)囊蟆?/p>
2. 利用UDP進(jìn)行開(kāi)發(fā)
UPD是一種數(shù)據(jù)報(bào)傳輸方式,其數(shù)據(jù)在傳輸過(guò)程中不能保證數(shù)據(jù)的可靠性,因此用UPD進(jìn)行傳輸模塊的開(kāi)發(fā)還要加入自己的QOS的丟包處理和自動(dòng)重發(fā)的功能。其優(yōu)點(diǎn)是數(shù)據(jù)傳輸較TCP快,缺點(diǎn)是開(kāi)發(fā)周期長(zhǎng)。
3. 利用UDT庫(kù)進(jìn)行開(kāi)發(fā)
UDT建于UDP之上,并引入新的擁塞控制和數(shù)據(jù)可靠性控制機(jī)制。UDT是面向連接的雙向的應(yīng)用層協(xié)議。它同時(shí)支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報(bào)傳輸。UDT的特點(diǎn)是不用進(jìn)行開(kāi)發(fā),直接利用庫(kù)的發(fā)送函數(shù)就可以實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸,缺點(diǎn)是模型較簡(jiǎn)單,沒(méi)有OICP完成端口支持大容量的數(shù)據(jù)。
4. 利用Ranknet庫(kù)進(jìn)行開(kāi)發(fā)
Raknet也是一個(gè)基于UDP網(wǎng)絡(luò)傳輸協(xié)議的C++網(wǎng)絡(luò)庫(kù),通過(guò)庫(kù)的函數(shù)實(shí)現(xiàn)高效的網(wǎng)絡(luò)傳輸服務(wù)。其具體應(yīng)用在一些游戲領(lǐng)域,Radnet可以實(shí)現(xiàn)在兩個(gè)程序之間每秒傳輸25,000條信息;其優(yōu)點(diǎn)是不用進(jìn)行開(kāi)發(fā),直接調(diào)用函數(shù)即可,缺點(diǎn)是大數(shù)據(jù)量在公網(wǎng)傳輸會(huì)由于網(wǎng)絡(luò)堵塞而造成的流量控制失敗的情況。

綜上所述,視頻會(huì)議的傳輸模塊開(kāi)發(fā),傳輸效率最高是用UDP開(kāi)發(fā),但開(kāi)發(fā)周期較長(zhǎng)。用Raknet開(kāi)發(fā)的傳輸模塊不能適應(yīng)大數(shù)據(jù)的傳輸,UDT在大數(shù)據(jù)量的傳輸有較好的優(yōu)勢(shì),缺點(diǎn)是支持的并發(fā)不是很多。但如果經(jīng)過(guò)修改后,UDT也能進(jìn)行大容量的并發(fā),因此綜合考慮用UDT是視頻會(huì)議傳輸模塊的最佳選擇。



官方微博