作为.NET平台上的开发人员,要开发出一个像样视频聊天系统,非常艰难,这不仅仅是因为.NET对多媒体的支持比较有限,还因为网络语音视频这块涉及到了很多专业方面的技术,而.NET在这些方面的沉淀更是稀少。OMCS的出现将使得这一状况完全改观,它把所有底层的、复杂的、繁琐的细节都封装在了内部,提供给您一个易用而又强大的接口。

OMCS 语音视频框架是集成了语音、视频、远程桌面、电子白板等多种媒体于一身的网络多媒体框架。您只要连接到OMCS服务器,就可以随时访问任何一个在线的多媒体设备。基于OMCS,您可以快速地开发类似视频会议系统、网络监控系统、远程协助系统、远程教育系统等等基于多媒体的应用系统。

一.OMCS功能简介

1.Owner与Guest

任何一个OMCS的Client都有两种身份:Owner和Guest。

当一个Client作为Owner时,它提供本地的摄像头、话筒、桌面、电子白板等多媒体设备供其它的Client访问。

而当一个Client访问其它Client提供的多媒体设备时,则该Client就是以Guest的身份出现。

2.N对N的关系

一个Client可以同时访问多个在线Client的多媒体设备;而一个Client提供的某个多媒体设备,也可以同时被多个其它的Client同时访问。

3.访问控制

Client应用程序通过实现IMultimidiaGateway接口来控制guest对本地多媒体设备的访问。当有guest要连接本地的某个多媒体设备时,OMCS会根据调用IMultimidiaGateway接口的结果来控制是否允许本次连接。

4.P2P通道

当两个Client之间相互通信时,OMCS底层会自动尝试P2P连接,如果P2P通道能创建成功,该两个客户端之间的后续通信都经过P2P通道进行。即使P2P通道是基于UDP的,OMCS也会保证P2P通信的可靠性。

5.超简单的编程模型

当基于OMCS进行开发时,如果要访问其它客户端提供的多媒体设备,我们只需要从工具箱中拖拽对应的连接器控件/组件到UI上,然后调用其Connect方法连接到目标设备即可。Connect方法会返回连接的结果,如果连接成功,则该连接器控件/组件将会正常工作(比如,CameraConnector控件将会显示目标摄像头捕捉到的视频)。

另外,我们已经提供了完整的OMCS服务端程序,即OMCS.Server.exe,在使用时,只要部署该程序并启动它即可。

6.与应用集成

OMCS解决的仅仅是多媒体设备的管理、连接、显示/播放、控制等问题,并没有掺杂具体的业务逻辑。所以,当与具体的应用集成时,通常OMCS的服务端是独立的,而OMCS的客户端dll将被嵌入到具体应用的客户端程序中,就像下面一样:

OMCS 语音视频框架_视频

二.OMCS技术特点

1.视频

(1)支持160*120、320*240、480*360、640*480、720p、1080p等多种采集分辨率。可在运行时,动态修改该分辨率。

(2)支持高、中、低三种视频编码质量。

(3)支持帧频1~25fps。

(4)当网络拥塞时,主动弃帧。

(5)根据网络状态,自动调整视频的编码质量。

(6)可以以位图格式获取当前视频帧。

(7)支持多种视频设备:普通摄像头、usb摄像头、虚拟摄像头、视频卡等。

2.音频

(1)支持8k、16k、32k音频采样率。

(2)支持高、中、低三种音频编码质量。

(3)支持回音消除(AEC)、静音检测(VAD)、噪音抑制(DENOISE)、自动增益(AGC)等网络语音技术。

(4)最多可支持16路混音。

(5)自适应的JitterBuffer,根据网络状态,动态调整缓冲深度。

(6)如果同时开启音频和视频会话,则自动同步视频画面与声音。

(7)在网速慢时,自动调整视频的质量,优先保证音频的清晰和连贯。

(8)根据网络状态,自动切换语音数据到质量更高的网络通道,保证语音通话效果。

3.远程桌面

(1)支持高、中、低三种视频编码质量。

(2)根据机器性能和网速自动选择帧频。

(3)可动态调整屏幕分辨率。

(4)提供观看模式和控制模式两种选择。

(5)当网络拥塞时,主动弃帧。

(6)根据网络状态,自动调整远程桌面的清晰度。

4.电子白板

(1)支持常用的视图元素:直线、曲线、箭头、矩形、三角形、椭圆、文字等。

(2)可修改边框颜色和填充颜色。

(3)可插入图片、截屏,可将整个白板保存为位图。

(4)提供观看模式和操作模式两种选择。

(5)支持激光笔。

(6)多个Guest可以同时观看或操作同一个Owner的白板。

三.OMCS Demo运行截图

视频/音频连接器 截图:

OMCS 语音视频框架_视频_02

电子白板连接器 截图:

OMCS 语音视频框架_语音_03

远程桌面连接器 截图:

OMCS 语音视频框架_视频_04

关于OMCS更详细的介绍,请参见详细说明