劲浪科技,为您提供一站式会议室通信解决方案

视频会议系统开发如何充分利用开源项目

来源:劲浪科技 更新时间:2018-01-25      

视频会议系统的开发主要涉及到协议规范、数据传输、音视频编解码、界面构建四个主要的方面,而现今国外的开源项目很多,其中不乏非常有参考意义的开源源码和参考代码,我们应该如何利用一些开源的项目来构建视频会议系统呢?首先我们先要了解视频会议系统是一个综合性很强的软件系统,并不是简单的一个点对点的应用程序,如果要达到视频会议系统的要求,须具备有音、视频传输、电子白板、文件共享、屏幕共享等主要功能,因此我们选择开源项目的时候,不能只选择一个开源的项目作为参考,需要多个开源的项目一起作为我们的参考源码,因为一般的开源项目不可能是一个完整的系统。

视频会议系统开发如何充分利用开源项目

1、协议规范

视频会议系统的协议是作为不同的系统之间数据互联互通,如软件视频会议系统和硬件的视频会议系统需要互联互通进行音、视频传输的时候,就必须要双方都要遵循一个协议规范,才能相互识别相应的数据。视频会议的协议一般是指协议栈,主要分为H323协议、SIP协议,H323协议和SIP协议相应都有较为完善的开源项目对应,如OPAL,既兼容SIP协议又兼容H323协议,另外一个开源的协议栈是OpenH323,该开源项目是早的H323开源协议栈,现今很多视频会议系统还是在OpenH323基础上构建的。后一个值得推荐的开源协议栈是OSIP,该协议用法简单、功能较强,是构建SIP协议栈的开源项目。

2、数据传输

视频会议系统是一个实时性非常强的系统,为了适应不同的网络传输条件,我们传输的数据的时候需要建立自己的数据传输方式。通常数据传输的方式有TCP传输和UDP传输,而TCP传输是基于有连接的传输方式,UDP是基于无连接的传输方式,TCP和UDP各有优点和缺点,TCP是可靠的传输方式,但在网络较为拥堵的情况下,传输速度较慢,而UDP是不可靠的传输方式,传输速度较快,但不能保证可靠性,因此我们在选择数据传输方式上可以采用基于UDP的可靠传输方式,既能充分利用无连接的速度优势,又能保证数据的可靠性。在这方面的开源项目很多,我们推荐UDT开源项目,其主要是通过UDP方式来实现可靠的传输,传输速度比TCP快几倍,但能保证相应的数据可靠性。数据传输方式的选择可以参考“视频会议传输模块的开发选择”。

3、音视频编解码

视频会议系统核心功能是音视频对话,因此我们音视频编解码在视频会议系统中的占有非常重要的作用。音视频编解码的开源项目非常多,单是音频的开源项目就有几十种,我们应该如果选择呢?音视频编解码的开源项目很多,但有一个非常重要的开源项目,其包含了几乎所有的开源编码器项目,它就是ffmpeg编码库,ffmpeg编码库是一个编解码库的集合,它加入了几乎所有的开源编码器,如H264编解码、MPEG4编解码、AAC音频编解码等,而且还能自己手动加入相应的编码器,因此在视频会议软件系统的开发当中,我们的音视频编码是ffmpeg开源库。

4、界面构建

视频会议系统是一个综合性很强的应用系统,因此我们设计的界面也要符合使用者的使用习惯,因此选择一些开源的界面库不仅能使我们的界面更符合使用习惯,而且能加快我们的项目的开发进度,达到事半功倍的作用。在界面库的开源项目中,我们可以有非常多的选择,如DirectUI、GUI Libraries等,在这里我们强烈推荐用DirectUI,DirectUI可以界面和代码进行分离,而且用法较为简单,简单地的几十行代码就可以建立复杂的界面。

综上所述,在我们视频会议系统的开发当中,我们可以充分利用一些开源的项目来构建系统的某个模块或者某个功能,如在协议方面,我们可以采用OPAL来构建SIP和Openh323协议;传输协议我们可以采用UDT来实现UDP的可靠传输;音视频编界面我们可以采用ffmpeg开源项目来构建;界面库可以采用DirectUI来搭建。这些开源项目都是比较著名的开源项目,但在实际的项目开发过程中,我们还要根据项目的需要来选择。总之,利用开源的项目来进行视频会议系统的开发,在很多的情况下能达到事半功倍的效果,是一个非常值得推荐的方法。