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