在软件视频会议的开发过程中,由于需要在不同的系统进行互联互通,特别是和硬件的视频会议系统或者和移动终端进行数据交换,都需要有共同的数据协议规范,因此在视频会议软件的开发的过程应该遵循相应的协议,这些协议可以使得我们的网络视频会议系统能更好地与不同的系统进行连接,从而实现不同的系统、不同的终端都能互联互通。软件视频会议的协议分为几类,第一类是框架协议,第二类是传输控制协议,第三类是编解码协议,第四类是消息传输协议,我们现在把这几类协议做一个详细的解释,并列举其中的一些协议的例子。
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协议,其已经在多个即时通讯系统中得到应用。