視頻會議的屏幕共享功能在眾多的功能里面使用是較為頻繁的功能,不論是遠(yuǎn)程培訓(xùn)和日常會議,屏幕共享都經(jīng)常需要使用。但屏幕共享的傳輸效率一直是視頻會議軟件系統(tǒng)需要提高的,屏幕共享需要傳輸?shù)臄?shù)據(jù)一般比較大,特別是文檔翻頁或者屏幕發(fā)生較大改變的時候,其傳輸?shù)臄?shù)據(jù)是相當(dāng)大的,因此怎樣有效的減少屏幕共享的數(shù)據(jù)而保持屏幕圖像的質(zhì)量,成為視頻會議開發(fā)當(dāng)中最急需解決的問題。在視頻會議的屏幕共享的開發(fā)當(dāng)中,可以有三種實(shí)現(xiàn)的方式:
1、圖片壓縮方式
圖片壓縮方式是把屏幕圖像截圖,然后把圖片進(jìn)行壓縮,壓縮的格式通常是jpg或者gif的格式,其壓縮比一般可以達(dá)到1:20~1:40,因此該方式比直接傳屏幕的圖像更為節(jié)省帶寬,但這種方式實(shí)現(xiàn)的屏幕共享的所需要的帶寬還是非常大,原因是因為我們需要每時每刻都進(jìn)行截取圖像,然后壓縮圖像,最后傳輸圖像,傳輸圖像的冗余性非常大,如我們屏幕不變的時候,這種方式還是傳輸了數(shù)據(jù),不能有效節(jié)省帶寬。
2、改進(jìn)的圖片壓縮方式
該方式對屏幕的圖片進(jìn)行了檢測,如遇到屏幕圖像不改變的時候,不進(jìn)行數(shù)據(jù)傳輸,當(dāng)屏幕圖像改變后,只傳輸改變的地方,那具體我們怎樣只傳改變的地方呢?我們可以把桌面圖片分成若個個方格,如果方格內(nèi)的圖片出現(xiàn)了變動,就把整個方格進(jìn)行傳輸,這樣可以通過局部的傳輸來實(shí)現(xiàn)節(jié)省帶寬的目的。這種方式的缺點(diǎn)是方格的大小決定了屏幕傳輸?shù)男,方格越多傳輸(shù)臄?shù)據(jù)結(jié)構(gòu)就越多,但圖像的冗余性就越低。
3、通過圖像壓縮方式
另外一種方式是直接通過圖像壓縮編碼的方式(如H.264編碼)對屏幕圖像進(jìn)行壓縮和傳輸,這種方式和第二種方式原理上大體一致,都是去除圖像幀與幀之間的冗余,但通過圖像壓縮方式的流量比直接用圖像壓縮的方式會少一些,原因主要是我們采用的圖像壓縮算法都是經(jīng)過圖片的幀內(nèi)、幀外的壓縮,其效率比直接壓縮圖片然后傳相差的部分要高。
4、通過Hook進(jìn)行檢測方式
前面的幾種方式都涉及到需要檢測桌面圖像是否和之前的圖像有區(qū)別,但其檢測的方式并不是最優(yōu),如圖像壓縮方式其分的格子相對較小,傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)會較多,而改進(jìn)的圖片壓縮方式,其格子相對較大,傳輸?shù)娜哂嘁草^多。Hook方式是通過底層的驅(qū)動來獲取桌面的圖像,并能對前后的圖像差別進(jìn)行檢測,使之傳輸更小的數(shù)據(jù)。
綜上所述,在視頻會議的屏幕共享開發(fā)當(dāng)中,我們可以采用Hook方式對圖像進(jìn)行檢測,判斷桌面圖像的變化范圍,然后利用圖片壓縮進(jìn)行壓縮傳輸,另外我們還可以使用直接用圖像壓縮算法進(jìn)行傳輸,但兩種方式,推薦還是用前者,其效果更高,傳輸?shù)膸捀,較適合于公網(wǎng)進(jìn)行傳輸。