視頻會(huì)議系統(tǒng)是一個(gè)實(shí)時(shí)的多媒體應(yīng)用系統(tǒng),其主要功能包括實(shí)時(shí)音視頻、文檔共享、屏幕共享、電子白板、流媒體協(xié)同播放等功能,而在流媒體播放功能中,除了需要之前的音、視頻編解碼、傳輸?shù)茸鳛楸U希残枰獙?duì)傳輸?shù)臄?shù)據(jù)進(jìn)行協(xié)同實(shí)時(shí)播放,因此流媒體協(xié)同播放在視頻會(huì)議系統(tǒng)的開(kāi)發(fā)過(guò)程中,難度要比其他的模塊要大。首先我們先要了解在視頻會(huì)議系統(tǒng)開(kāi)發(fā)當(dāng)中的流媒體協(xié)同播放的整個(gè)過(guò)程。
一般的情況下,流媒體協(xié)同播放是在主席端進(jìn)行控制,如主席打開(kāi)一個(gè)影片共享給其他的客戶端,其他的客戶端可以實(shí)時(shí)收看到主席播放的影片的音視頻,從而實(shí)現(xiàn)主席端協(xié)同播放影片的功能。流媒體數(shù)據(jù)是指一些音、視頻數(shù)據(jù)通過(guò)流式的結(jié)構(gòu)保存到存儲(chǔ)設(shè)備上,這些流媒體數(shù)據(jù)可以通過(guò)我們常用的播放器進(jìn)行播放,如暴風(fēng)影音等,在我們視頻會(huì)議系統(tǒng)的應(yīng)用中,我們還可以把流媒體數(shù)據(jù)進(jìn)行協(xié)同共享,就像我們平時(shí)使用的文檔協(xié)同瀏覽一樣。在視頻會(huì)議系統(tǒng)的流媒體協(xié)同播放功能可以通過(guò)多種方式實(shí)現(xiàn),我們總結(jié)了幾個(gè)常用的方式:重編碼模式、分幀傳輸模式、PIN接口傳輸模式。
1、重編碼模式
一般的情況下,在視頻會(huì)議系統(tǒng)里面不能直接把流媒體數(shù)據(jù)在沒(méi)有進(jìn)行處理情況下,直接對(duì)流媒體數(shù)據(jù)進(jìn)行傳輸。重編碼模式顧名思義就是把流媒體數(shù)據(jù)重新編碼,首先我們要對(duì)流媒體數(shù)據(jù)進(jìn)行解碼,然后對(duì)解碼后的數(shù)據(jù)再按照自己定義的方式進(jìn)行壓縮編碼,然后接收方再進(jìn)行解碼和播放,該方式可以對(duì)不同的流媒體進(jìn)行操作。但該方式需要對(duì)流媒體的數(shù)據(jù)進(jìn)行壓縮和重新的編碼,因此效率不高。
2、數(shù)據(jù)分幀傳輸模式
數(shù)據(jù)分幀傳輸模式是我們流媒體協(xié)同播放開(kāi)發(fā)常見(jiàn)模式,首先我們要對(duì)流媒體數(shù)據(jù)進(jìn)行分析,進(jìn)而把流媒體的數(shù)據(jù)分成不同類(lèi)型的數(shù)據(jù)幀,然后通過(guò)視頻會(huì)議系統(tǒng)的傳輸信道進(jìn)行傳輸,客戶端接收到一幀完整的數(shù)據(jù)后,就可以對(duì)數(shù)據(jù)進(jìn)行解碼處理,從而就可以實(shí)時(shí)的播放流媒體數(shù)據(jù)。該方式的主要難點(diǎn)在怎樣把流媒體數(shù)據(jù)進(jìn)行分幀處理,而不同格式的流媒體數(shù)據(jù)其數(shù)據(jù)格式都不盡相同,因此我們對(duì)不同的數(shù)據(jù)格式的流媒體采用不同的數(shù)據(jù)分幀處理。該方式的優(yōu)點(diǎn)是效率較高,不需要進(jìn)行解碼和重新編碼就可以進(jìn)行實(shí)時(shí)地播放。
3、PIN接口傳輸模式
在視頻會(huì)議系統(tǒng)的播放流媒體的時(shí)候,一般都是通過(guò)DirectShow的PIN接口獲取流媒體的數(shù)據(jù)類(lèi)型及數(shù)據(jù),這些數(shù)據(jù)其實(shí)可以通過(guò)DirectShow的POUT接口進(jìn)行播放,因此我們?cè)赑IN接口獲取這些數(shù)據(jù),然后把這些數(shù)據(jù)傳輸?shù)浇邮辗剑M(jìn)行播放。該方式是目前最完美的流媒體協(xié)同播放的開(kāi)發(fā)的模式,不僅可以支持幾乎全部的流媒體格式,而且不需要進(jìn)行額外的音視頻解碼和編碼,因此處理效率和傳輸效率都非常高。