在軟件視頻會議的開發過程中,由于需要在不同的系統進行互聯互通,特別是和硬件的視頻會議系統或者和移動終端進行數據交換,都需要有共同的數據協議規范,因此在視頻會議軟件的開發的過程應該遵循相應的協議,這些協議可以使得我們的網絡視頻會議系統能更好地與不同的系統進行連接,從而實現不同的系統、不同的終端都能互聯互通。軟件視頻會議的協議分為幾類,第一類是框架協議,第二類是傳輸控制協議,第三類是編解碼協議,第四類是消息傳輸協議,我們現在把這幾類協議做一個詳細的解釋,并列舉其中的一些協議的例子。
1、框架協議
軟件視頻會議的框架協議是整個視頻會議系統的基礎框架,現在主流是視頻會議框架協議有SIP和H323及MGCP三種,SIP協議主要特點是簡單易用,比較適合輕量級的軟件視頻會議使用,開源的項目是Osip、OPAL;H323協議主要特點是功能較強,包含有很多協議族,其中包括H.239、T.120等,由于其協議包含的內容較多,因此開發較為復雜,一般我們可以采用開源的Openh323、OPAL協議棧來加快開發H323協議的視頻會議系統;MGCP協議是多媒體網關協議,MGCP協議一般用在MCU服務器中,主要是為了與一些軟交換的設備進行數據交換的用途。H323、SIP及MGCP協議之間的區別,我們可以參考“視頻會議SIP MGCP和H323的區別”。由于這幾種協議都有許多視頻會議系統使用,為了與之互聯互通,現在的視頻會議軟件產品都會同時支持SIP和H.323協議。
2、傳輸控制協議
在視頻會議領域的傳輸控制協議主要是TCP協議、UDP協議、RUDP協議、RTP協議,TCP協議和UDP協議是傳輸層的控制協議,在視頻會議軟件中,TCP是有連接的控制協議,但由于需要進行三次握手,因此實時傳輸數據會比較慢,而UDP是建立在無連接的信道,因此數據傳輸不能保證可靠性。我們在視頻會議系統中,一般采用RUDP協議,也就是可靠的UDP傳輸協議,它是在UDP協議的基礎上加入了控制協議,既能保證數據的實時性,有能保證數據的可靠性。RUDP是視頻會議領域較為常用的協議。最后一個是RTP協議,RTP協議是實時傳輸協議,它也是通過在UDP協議的基礎上加入了控制域,這樣可以判斷數據是否丟包,但RTP協議不能保證數據的可靠性,而傳輸效率比RUDP高。因此RTP協議是網絡視頻會議系統中傳輸大流量實時數據(如視頻)的最好傳輸協議。
3、編解碼協議
視頻會議的編解碼協議主要是指視頻編解碼協議,H.264、MPEG4、H.265、H.263、H261協議都是常用的編解碼協議。H.264是現在主流的編解碼協議,在開發當中我們可以參考的H.264協議的開源庫是x264、t264。MPEG4協議是前幾年用得最多的視頻編解碼器,但由于其壓縮率比H.264要低,因此這幾年已被H.264所替代,但在高清視頻會議中,由于高清視頻對于H.264意味著需要更多的cpu消耗,因此MPEG4協議在高清視頻中還是有相當的應用價值。而H.263、H261都是比較舊的協議,其壓縮率較低,因此這兩種協議一般現在用得較少。H.265協議是最新的視頻編解碼協議,它的壓縮率比H.264更高,在同等的帶寬下,視頻質量比H.264更好,其被認為是H.264的接班人,但由于現今的硬件水平還沒有達到H.265協議的復雜運算的要求,因此H.265協議只是在實驗階段,還沒有進行實際應用。
4、消息傳輸協議
視頻會議系統的消息傳輸協議,主要是用于消息數據的交換, xmpp協議是通過xml語言來進行系統的數據交換,由于xml語言可以嵌入不同的數據結構,因此xmpp協議具有超強的擴張性。xmpp協議最典型的應用是即時通訊系統,由于即時通訊和視頻會議系統在信息交換上有很多相同點,因此xmpp協議非常適合用視頻會議軟件使用。xmpp協議主要的開源項目有jabberXMPP協議,其已經在多個即時通訊系統中得到應用。