视频会议主要是开发音视频、数据的传输的软件,在这些开发过程中,最核心的模块是传输模块,传输模块的性能直接影响到视频会议的最终质量,因此传输模块的选择在视频会议开发当中尤其重要。传输模块在开发过程中,由于考虑到QOS的影响,一般都会使用数据重发的技术,因此传输模块以及成为视频会议底层开发的一个重点,我们开发的传输模块,可以选择用TCP、UDP直接进行开发或者利用开源的传输库,因为一些开源传输库以及比较成熟,直接拿来用就可以,如果自己开发传输模块,估计也是一个巨大工程。现在我们介绍一下传输模块的开发选择。
1. 利用TCP进行开发
使用TCP直接进行传输模块的开发,在传输过程中数据不会丢包,我们可以采用OICP的完成端口来进行通讯,其优点是QOS有保证、支持大容量的数据并非,缺点是开发周期长,数据建立连接比一般UDP要长很多,而且资源占用也比一般UDP传输的要大。
2. 利用UDP进行开发
UPD是一种数据报传输方式,其数据在传输过程中不能保证数据的可靠性,因此用UPD进行传输模块的开发还要加入自己的QOS的丢包处理和自动重发的功能。其优点是数据传输较TCP快,缺点是开发周期长。
3. 利用UDT库进行开发
UDT建于UDP之上,并引入新的拥塞控制和数据可靠性控制机制。UDT是面向连接的双向的应用层协议。它同时支持可靠的数据流传输和部分可靠的数据报传输。UDT的特点是不用进行开发,直接利用库的发送函数就可以实现可靠的数据传输,缺点是模型较简单,没有OICP完成端口支持大容量的数据。
4. 利用Ranknet库进行开发
Raknet也是一个基于UDP网络传输协议的C++网络库,通过库的函数实现高效的网络传输服务。其具体应用在一些游戏领域,Radnet可以实现在两个程序之间每秒传输25,000条信息;其优点是不用进行开发,直接调用函数即可,缺点是大数据量在公网传输会由于网络堵塞而造成的流量控制失败的情况。
综上所述,视频会议的传输模块开发,传输效率最高是用UDP开发,但开发周期较长。用Raknet开发的传输模块不能适应大数据的传输,UDT在大数据量的传输有较好的优势,缺点是支持的并发不是很多。但如果经过修改后,UDT也能进行大容量的并发,因此综合考虑用UDT是视频会议传输模块的最佳选择。
我们选购视频会议的时候,最重要是考察系统的稳定性与音、视频质量等因素,而视频质量与视频会议的什么参数有关呢?首先我们说的视频质量,是我们平时的主观对视频图像的一个看法,不能通过一个具体的数字来体系,因此我们考察视频会议的质量只能通过主观对视频会议的图像的清晰度进行判断,而决定视频会议的清晰度由多种因素来决定,首先最重要的是视频会议的视频分辨率,另外一个是视频会议编码器的视频还原质量,最后一个视频会议的图像后处理技术。
1、视频分辨率
视频会议分辨率就是视频会议的视频采集的图像的分辨率,这个参数在视频会议的清晰度衡量中占用非常重要的作用,视频会议的分辨率可以分QCIF(160*120)、CIF(320*240)、720P(1280*720)、1280P(1920*1280)等分辨率,其分辨率越高,图像显示就越清楚,市场上所说的高清视频会议系统,也就是图像采集分辨率达到720P以上的高清分辨率。但是不是分辨率越高,视频会议的视频质量就越高呢?这个答案是否定。视频会议的分辨率只是图像的采集分辨率,而视频会议系统还需要经过视频的编码、解码、后期视频处理三个环节,因此视频会议分辨率越高不等同于视频会议的视频质量越高,只能说是本地的视频质量随图像采集分辨率的增加而增加。图一是各种分辨率下面的图像。而对于高清摄像头我们也有很大的误区,有的厂商把自己的摄像头标出非常高的像素,大家都认为这款肯定是高清分辨率,但测试的时候发现其分辨率只有640*480,这种摄像头其实并不是高清摄像头,高清摄像头的最基本指标是在720P的分辨率之上。因此高清摄像头决定因素是图像的采集分辨率。
图一
2、视频编码的还原质量