OMCS ——卓尔不群的网络语音视频聊天框架(跨平台)
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 ——卓尔不群的网络语音视频聊天框架(跨平台)相关推荐
- 网络语音视频技术浅议(附多个demo源码下载)
我们在开发实践中常常会涉及到网络语音视频技术.诸如即时通讯.视频会议.远程医疗.远程教育.网络监控等等,这些网络多媒体应用系统都离不开网络语音视频技术.本人才疏学浅,对于网络语音视频技术也仅仅是略知皮 ...
- linux与windows的语音视频聊天?不容易啊
相当一段时间都在关注voip的事情,浪费了不少时间,现在把现阶段的结论写下来. 协议 目 前拥有voip功能的IM种类繁多,区分它们的主要是协议.msn, qq, Gtalk, skype, weng ...
- 独家揭秘语音视频聊天室开发顶尖制作教程
互联网的不断发展,各种新技术的兴起,原本做管理软件 的我也逐渐转向从事着互联网相关的运营产品的开发.尤其是目前抄得最火热的音视频互动平台技术,今天我先列出最基本开发流程,适用于开发视频会议系统.语音视 ...
- 语音视频聊天的强大技术支持
当我们使用像AnyCHat.Skype.QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧. 一 ...
- 即时通讯中语音视频聊天后面的技术支持有哪些
当我们使用像AnyCHat.Skype.QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧.一. ...
- VUE实现Web端多人语音视频聊天
1 多人语音聊天功能介绍 本文展示了如何使用 ZEGO Express SDK 构造多人音视频通话场景,即实现多对多实时音视频聊天互动.用户可在房间内与其余用户进行实时音视频通话,互相推拉流.该场景可 ...
- 类似YY 9158网页版多人语音视频聊天室远程教学系统源码
仿六间房网页视频聊天室 网页视频直播系统源码 开发采用FMS加flash只需在网页上就可发布视频直播,无需安装插件儿 主要应用远程教育,培训,远程视频直播(类似6间房聊天室) 视频采用H264压缩一路 ...
- 网站在线客服系统实时语音视频聊天实战开发,利用peerjs vue.js实现webRTC网页音视频客服系统...
webRTC机制和peerjs库的介绍在其他博客中已经有了很多介绍,这里我直接搬运过来 一.webrtc回顾 WebRTC(Web Real-Time Communication)即:网页即时通信. ...
- 语音视频聊天时会产生爆音
有极个别的情况下会在使用MSN.QQ之类的即时通讯软件进行语音或视频通讯的时候会有爆音产生. 这一般是由于麦克风与音箱在一定角度上产生了回声造成的啸叫.举例子来说,大家去×××的时候会发现,如果麦克风 ...
最新文章
- lucene.net 应用资料
- VC小技巧(三)视图
- 性能测试四十八:Jenkins+Ant+Jmeter系统部署
- c/c++ struct的大小以及sizeof用法
- 阿里P8前端工程师:如何成为一名优秀的前端工程师!
- shell tr命令
- cfupload java_java的web项目上传文件和下载
- 2010-2019年中国城市统计年鉴分享
- catia如何测量毛料尺寸_CATIA建模规定
- python PIL图片转PDF
- 推荐尽可能看Paul Deitel的英文原著《C how to Program, Sixth Edition》
- 关于数位板电脑绘画——入门篇
- 开发者都能读懂的云原生指南 —— 新程序员003
- 2020年医美行业网络关注度分析报告
- [详解] iphone手机备份、升级流程
- DB2活动日志占用过大
- 6月3日至5日 服务器信息维修,2015年6月3日维护公告
- Bootstrap4 图片形状——圆形实现
- 金士顿固态硬盘不认盘修复_30分钟大法固态硬盘不识别自检修复三十分钟的救盘方法如下...
- Java实现延时的方法