• OMCS 多媒体连接系统


    OMCS开发手册(00) -- 概述(暨OMCS 1.0正式发布!)

          作为.NET平台上的开发人员,要开发出一个像样的网络多媒体应用系统,非常艰难,这不仅仅是因为.NET对多媒体的支持比较有限,还因为现有的一些积累几乎都是C或C++的,而.NET在这方面的沉淀相对很少。通常的解决的办法是,通过Pinvoke来调用C或C++的非托管库,有过类似经验的人会知道,这也相当困难。OMCS的出现将使得这一状况大大改观。虽然,OMCS底层也调用了非托管的动态库,但是,这对OMCS的使用者是完全透明的,我们可以像使用任何一个纯的.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上,然后调用其BeginConnect方法连接到目标设备即可。无论连接成功或失败,控件都会触发相应的事件来通知。如果连接成功,则该连接器控件/组件将会正常工作(比如,CameraConnector控件将会显示目标摄像头捕捉到的视频)。
          另外,我们已经提供了完整的OMCS服务端程序,即OMCS.Server.exe,在使用时,只要部署该程序并启动它即可。

    6.与应用集成

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

          

     二.OMCS 技术特点

    1.视频

    (1) 支持160*120、320*240、480*360、640*480等多种视频分辨率。

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

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

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

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

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

    2.音频

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

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

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

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

    (5) 如果同一个guest连接了同一个owner的摄像头和麦克风,则在guest接收方自动同步视频画面与声音。并且会根据网络状态,自动调整视频的质量,在网速慢时,优先保证音频的清晰和连贯。

    3.远程桌面

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

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

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

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

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

    4.电子白板

    (1)支持常用的视图元素(直线、曲线、三角形、椭圆等)、可插入图片、截屏,可将整个白板保存为位图。

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

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

    三.Demo 下载

           下面是一个简单的基于OMCS 1.0的demo下载,数十行代码就可以实现一个视频对话的功能。大家可以先睹为快,并试试OMCS的视频、音频、远程桌面、电子白板的效果。后面的文章我们会详细介绍如何使用OMCS。谢谢。

           下载:OMCS.Demos.Simplest

           视频/音频连接器 截图:     

          

           电子白板连接器 截图: 

          

          远程桌面连接器 截图:

          

      

    阅读 更多OMCS开发手册系列文章   

    -----------------------------------------------------------------------------------------------------------------------------------------------  

    关于OMCS的任何问题,欢迎联系我们:   

    电话:027-87638960   

    Q Q:168757008 

      

     
    分类: OMCS
  • 相关阅读:
    如何用Tensorflow训练模型成pb文件和和如何加载已经训练好的模型文件
    hbase rowkey 设计
    hbase集群region数量和大小的影响
    为什么不建议在hbase中使用过多的列簇
    hive explode 行拆列
    通过livy向CDH集群的spark提交任务
    case when多条件
    spark sql/hive小文件问题
    SQL join
    spark任务调度模式,动态资源分配
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2492619.html
Copyright © 2020-2023  润新知