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