原文地址:http://www.cnblogs.com/zhuweisky/archive/2012/08/02/2617877.html

OMCS网络语音视频框架是集成了语音通话、视频通话、远程桌面观看与协助、电子白板编辑与观看等多种媒体于一身的跨平台(.NET、Android、iOS)网络多媒体框架,实现了多媒体设备【麦克风、摄像头、桌面、电子白板】的采集、编码、网络传送、解码、播放(或显示)等相关的一整套流程,且可智能地根据网络状况实时调整帧频、清晰度、并优先保证语音通话效果。您只要连接到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源码

【转】OMCS网络语音视频聊天框架(跨平台)的更多相关文章

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

    作为.NET平台上的开发人员,要开发出一个像样视频聊天系统或视频会议系统,非常艰难,这不仅仅是因为.NET对多媒体的支持比较有限,还因为网络语音视频这块涉及到了很多专业方面的技术,而.NET在这些方面 ...

  2. 网络语音视频技术浅议 Visual Studio 2010(转)

    我们在开发实践中常常会涉及到网络语音视频技术.诸如即时通讯.视频会议.远程医疗.远程教育.网络监控等等,这些网络多媒体应用系统都离不开网络语音视频技术.本人才疏学浅,对于网络语音视频技术也仅仅是略知皮 ...

  3. 网络语音视频技术浅议(附多个demo源码下载)

    我们在开发实践中常常会涉及到网络语音视频技术.诸如即时通讯.视频会议.远程医疗.远程教育.网络监控等等,这些网络多媒体应用系统都离不开网络语音视频技术.本人才疏学浅,对于网络语音视频技术也仅仅是略知皮 ...

  4. OMCS的语音视频带宽占用

    OMCS的语音.视频.电子白板.远程桌面等功能对网络带宽的要求分别如何了? 我们先假设一种常见的场景:假设N个在线用户同时进行1对1的多媒体沟通(即分为N/2组),在不考虑P2P通道的情况下,带宽的大 ...

  5. 如何实现:录制视频聊天的全过程? 【低调赠送:QQ高仿版GG 4.3 最新源码】

    前段时间做个项目,客户需要将视频对话的整个过程录制下来,这样,以后就可以随时观看.想来录制整个视频聊天的过程这样的功能应该是个比较常见的需求,比如,基于网络语音视频的1:1的英语口语辅导,如果能将辅导 ...

  6. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.7,优化视频聊天、控制更多相关细节

    在广域网中,由于网络的结构纷繁复杂.而且其实时状况又是千变万化的,所以,要使广域网中的视频聊天达到一个令人满意的效果,存在诸多挑战.这次发布的GG 3.7版本尝试在这一方向上做一些努力,据我自己测试, ...

  7. uniapp+nvue实现仿微信App界面+功能 —— uni-app实现聊天+语音+视频+图片消息

    基于uniapp + nvue实现的uniapp仿微信界面功能聊天应用 txim 实例项目,实现了以下功能. 1: 聊天会话管理 2: 好友列表 3: 文字.语音.视频.表情.位置等聊天消息收发 4: ...

  8. 在线教学、视频会议 Webus Fox(1)文本、语音、视频聊天及电子白板基本用法

    Webus Fox是基于网页的在线教学.视频会议软件,不用安装,直接使用.它提供文本.语音.视频聊天,文件共享.电子白板等功能. 1. 登录 访问 http://flash.webus.cn/#,用自 ...

  9. 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))

    开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))   Flex,Fms3系列文章导航 Flex,Fms3相关文章索引 本篇是视频聊天,会议开发实 ...

随机推荐

  1. 【最短路】【spfa】CDOJ1633 去年春恨却来时,落花人独立,微雨燕双飞

    对于S集合中的数,例如a1,考虑到如果x能够被表示出来,那么x+a1也一定能被表示出来 设d[r]为所有模a1余r的数中,能被表示出来的最小的数 用d[x]+ai去更新d[(x+ai)%a1],跑最短 ...

  2. java instanceof方法

    基本用法 null instanceof Object   为false: null instanceof 任意类 为false:任意实例 instanceof 对应的类或者父类 都为true: 基本 ...

  3. [WikiOI "天梯"1281] Xn数列

    题目描述Description 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn m, a, c, x0, n, g<=10^18 输入描 ...

  4. (小规模)b牌棋盘完美覆盖数

    (小规模)b牌棋盘完美覆盖数 考虑一个普通的国际象棋棋盘,它被分成8*8(8行8列)的64个正方形.设有形状一样的多米诺骨牌,每张牌恰好覆盖棋盘上相邻的两个方格(即1*2的骨牌).那么能否把32个这样 ...

  5. [漏洞检测]Proxpy Web Scan设计与实现(未完待续)

    Proxpy Web Scan设计与实现 1.简介:          Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生 ...

  6. Inno Setup入门(二十二)——Inno Setup类参考(8)

    http://379910987.blog.163.com/blog/static/33523797201121331832201/ 列表框 列表框(ListBox)是Windows应用程序中重要的输 ...

  7. 【Morn UI系列教程】Morn简介及使用教程

    网页游戏开发的一大部分工作是在和UI制作上,一个好的工具及框架能使开发事半功倍,Adobe自带flash IDE和Flex各有不足. Morn UI学习了Flash IDE使用的方便性(比如图层功能, ...

  8. Sata win7 热插拔(AHCI)

    主板支持AHCI,把sata模式改成AHCI,在bios打开SATA热插拔开关 开启AHCI,需要修改注册表:HKEY_LOCAL_MACHINE\System\CurrentControlSet\S ...

  9. 在ios中微信video和audio无法自动播放解决方案

    WeixinJSBridgeReady页面初始化的时候会执行 document.addEventListener("WeixinJSBridgeReady", function ( ...

  10. [Android Pro] Property Animation

    声明:下面的内容需要Android API level 11的支持 Property Animation是如何运作的 首先,来看一下两个不一样的Property Animation场景: 场景一(Li ...