OMCS ——卓尔不群的网络语音视频框架

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

  OMCS网络语音视频框架是集成了语音、视频、远程桌面、电子白板等多种媒体于一身的网络多媒体框架,实现了多媒体设备【麦克风、摄像头、桌面、电子白板】的采集、编码、网络传送、解码、播放(或显示)等相关的一整套流程,且可智能地根据网络状况实时调整帧频、清晰度、并优先保证语音通话效果。您只要连接到OMCS服务器,就可以随时访问任何一个在线用户的多媒体设备。基于OMCS,您可以快速地开发视频聊天系统、视频会议系统、远程医疗系统、远程教育系统、网络监控系统等等基于网络多媒体的应用系统。(可跳过概要介绍,直接进入开发手册目录 或 Demo下载

一.OMCS功能简介

1.Owner与Guest

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

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

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

2.单向连接,1对1,1对N,N对1,N对N的关系

一个Client可以同时访问多个在线Client的多媒体设备;而一个Client提供的某个多媒体设备,也可以同时被多个其它的Client同时访问。其基础是单向连接(比如当A访问B的摄像头时,B不用访问A的摄像头),由单向连接就可以组合成1对1,1对N,N对1,N对N的关系, 这样就非常灵活。

像监控一个摄像头这样的系统直接使用单向连接就可以;两个人视频聊天就是1对1的关系;在线教育系统中,老师讲学生听,就是1对N的关系;同时监控多个摄像头就是N对1的关系;而视频会议则是“N对N的关系”。

3.P2P通道

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

4.信道分离

在某些具体的应用中,我们可能需要把信道依据数据的类型进行分离。比如,在视频会议系统中,希望能将传送语音的信道独立出来,以避免其它类型数据传送时可能产生的拥挤而影响到语音的流畅性。这种情况下,我们就可以将语音数据分离到一条专用的信道进行传送。

5.超简单的编程模型

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

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

6.与应用集成

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

(如果您只需要采集本地语音视频数据,敬请了解 MCapture。如果您需要录制语音视频,敬请了解 MFile。)

二.OMCS技术特点

1.视频

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

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

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

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

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

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

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

2.音频

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

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

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

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

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

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

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

3.远程桌面

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

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

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

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

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

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

4.电子白板

(1)支持常用的视图元素:直线、曲线、箭头、矩形、三角形、椭圆、文字等;支持视图元素的上下对齐,左右对齐。

(2)可修改边框颜色、填充颜色、线条粗细、线条虚实、显示比例。

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

(4)支持课件:上传课件、打开课件、删除课件,课件翻页等。且这些操作会自动同步到连接到了同一白板的各个客户端。

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

(6)激光笔:OMCS会将老师/主讲人的激光笔位置自动同步到各个客户端。

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

三.OMCS Demo运行截图

视频/音频连接器 截图:

电子白板连接器 截图  -- 不使用课件:

电子白板连接器 截图  -- 使用课件:

远程桌面连接器 截图:

关于OMCS更详细的介绍,请参见 这里

下载免费版本的OMCS 以及 demo源码

时间: 2024-11-08 20:13:50

OMCS ——卓尔不群的网络语音视频框架的相关文章

涉江采芙蓉——语音视频采集详解(源码赠送)

对于OMCS而言,采集是第一个环节.所谓“巧妇难为无米之炊”,首先我们要从多媒体设备上拿到第一手材料.对于音频而言,就是要从麦克风.声卡等设备获取到音频信号:对于视频而言,就是要从显示器.摄像头等设备获取到图像信息.如何获取到这些信息呢?于是我们需要采集. 所谓采集又可以拆分成采样和集聚两个步骤来理解.这就好比“曹聪称象”,先将大的总体分解成一个个样本,再将分解得到的样本整合起来,其思想无非就是用样本来模拟总体.  (1)对于视频而言,采集的过程就如同下图所示 我们知道,视频总是连续的,但是我们

浅谈网络语音技术

转自:http://www.cnblogs.com/zhuweisky/archive/2012/06/08/2514889.html 当我们使用像Skype.QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧. 一.概念模型 网络语音通话通常是双向的,就模型层面来说,这个双向是对称的.为了简单起见,我们讨论一个方向的通道就可以了.一方说话,另一方则听到声音.看似简单而迅捷,但是其背后的流程却

涉江采芙蓉——语音视频采集概说(源码赠送)

采集是第一个环节.所谓“巧妇难为无米之炊”,首先我们要从多媒体设备上拿到第一手材料.对于音频而言,就是要从麦克风.声卡等设备获取到音频信号:对于视频而言,就是要从显示器.摄像头等设备获取到图像信息.如何获取到这些信息呢?于是我们需要采集. 所谓采集又可以拆分成采样和集聚两个步骤来理解.这就好比“曹聪称象”,先将大的总体分解成一个个样本,再将分解得到的样本整合起来,其思想无非就是用样本来模拟总体.  (1)对于视频而言,采集的过程就如同下图所示 我们知道,视频总是连续的,但是我们可以将其分解为一张

网络语音技术

浅谈网络语音技术 当我们使用像Skype.QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧. 一.概念模型 网络语音通话通常是双向的,就模型层面来说,这个双向是对称的.为了简单起见,我们讨论一个方向的通道就可以了.一方说话,另一方则听到声音.看似简单而迅捷,但是其背后的流程却是相当复杂的.我们将其经过的各个主要环节简化成下图所示的概念模型: 这是一个最基础的模型,由五个重要的环节构成:采集.

在服务器端录制语音视频

在我以前的一篇博文<实现语音视频录制(demo源码)>中,详细介绍了在网络视频聊天系统中的客户端如何实现语音视频的录制,而近段时间了,有几个朋友问起,如果想在服务端实现录制功能,该怎么做了?其中有个朋友的需求是这样的:他的系统是一个在线培训系统,需要在服务端将指定老师的讲课(包括语音和视频)录制下来,并保存为.mp4文件,以便随时可以查阅这些文件. 本文我们就做一个demo实现类似的功能,演示如何在服务端录制某个指定在线用户的语音视频,并提供三种录制模式:录制语音视频.仅录制语音.仅录制视频.

iOS获取本地视频和网络URL视频的缩略图方法

iOS获取本地视频和网络URL视频的缩略图方法 字数222 阅读612 评论0 喜欢13 首先大家先添加AVFoundation和CoreMedia.framework两个框架 第一种本地视频获取缩略图 NSString *path = @"www.51ios.net/本地路径" MPMoviePlayerController *51iosMPMovie = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileU

开源语音视频聊天软件对比

谷歌在2011年推出了开源的语音视频聊天软件WebRTC,并准备将这款功能类似Skype.Facetime的软件集成到Chrome浏览器中. 目前,互联网的音频.视频通信服务技术一般都是私有技术,需要通过安装插件或桌面客户端来实现通信功能.但谷歌希望能够直接在浏览器中创建视频或语音聊天应用,这也是谷歌此次将WebRTC开源出来的原因.这很可能是未来语音和视频领域的Web应用趋势.下面介绍在全球品牌谷歌的WebRTC音视频和国内先进技术的AnyChat音视频平台进行对比分析: 关于WebRTC W

独家揭秘语音视频聊天室开发顶尖制作教程

互联网的不断发展,各种新技术的兴起,原本做管理软件 的我也逐渐转向从事着互联网相关的运营产品的开发.尤其是目前抄得最火热的音视频互动平台技术,今天我先列出最基本开发流程,适用于开发视频会议系统.语音视频聊天室系统.远程教育平台以及即时通讯平台(IM)等.希望对喜欢这方面的朋友有所帮助.同时欢迎各大高手参与讨论,相互交流.学习. 首先,知其然,先看看如何开始工作. 一.初始化 该部分是首先要完成的,包括设置对应的回调函数.设置SDK组件路径.设置是否产生日志文件等,通常初始化的代码如下(C++):

网络音视频系统在医疗领域的应用

信息科技的发展,医院信息化建设的不断完善,网络信息化已经成为医院视频监控发展的主流方向.而网络化视频技术的灵活性.开放性以及可扩展性,也正在促进医院视频监控向更广阔的应用领域延伸.AnyChat音视频开发技术应用于医疗行业的视频应用,采用先进的h.264视频编解码技术和aac音频编解码技术,能够提供高清视频! 首先体现在安防监控应用上安防仍然是视频监控在医院中最主要的应用,涉及领域包括防火.防盗以及防止人员纠纷以及暴力事件,目的是保护医护人员.病人及家属的生命财产安全. 采用网络化视频监控解决方