`
xitong
  • 浏览: 6189079 次
文章分类
社区版块
存档分类
最新评论

WebRTC体系结构

 
阅读更多

本文是对webRTC体系结构介绍的简单翻译,原文也很简单,更多的看原文。

原文地址:http://www.webrtc.org/reference/architecture


WebRTC在不需要任何插件、也不需要下载或者安装什么东西的前提下,给WEB应用开发者提供在WEB上开发功能多样的、实时多媒体应用(如视频聊天)的接口。它的目标是帮助开发者很容易的在不同的浏览器、多样性的平台之前搭建一个健壮的RTC平台。

WebRTC的体系结构图如下:


在图中,你能够很清楚的发现结构是由两个主要的层组成

  1. 浏览器开发者感兴趣的webrtc c++ API和以及多媒体数据捕获和渲染的回调。
  2. WEB应用开发者所感兴趣的Web API.
下面,我再来根据翻译的结果,简单的了解一下这个体系结构图

一,你的WEB应用(Your Web App)
第三方基于WebRTC提供的WebAPI(JS等接口)所开发的音视频聊天应用。

二,WebAPI
给第三方开发应用的接口。

三,WebRTC Native C++ API
这是结构中的一个接口层,该层主要是给浏览器开发者提供实现web api的入口。

四,Transport/Session(传输和会话)
会话组件(提供会话管理的工作)由可重用模块libjingle,没有也不要求使用xmpp/jingle协议来组织管理会话。这里有几个和会话与传输相关的东西
  1. RTP stack。由于WebRTC提供实时的音视频传输,这里采用了RTP协议栈的相关协议,其实就是/RTP/RTCP等相关的协议,以提供实时纠正和流量控制。
  2. STUN/ICE协议。通过这个协议在不同的网络类型之间建立连接和传输数据。
  3. 会话管理。一个抽象的会话层,提供建立和管理会话。这可以把协议的会话实现更多的留给应用开发者。
五,语音引擎

语音引擎是一个解决声音如何从声卡到网络上传输的数据的框架,其实就是针对声卡上数据采集、编码和传输等等。
  1. 编解码。(iSAC/iLBC)
  2. NetEQ。为了提供高质量音频,WebRTC提供NetEQ功能,包括抖动缓冲器及丢包补偿模块以能够提高音质,并把延迟减至最小。
  3. AEC。回声消除,这是基于信号处理的一个软功能,在实时采集过程中,存在由于麦克录制时导致的回声。WebRTC提供AEC功能,就是回声消除,Acoustic Echo Cancceler(AEC)。
  4. NR。Noise Reduction,减少噪音,就是降噪的一个过程。由于一些背景等声音导致噪音,该功能可以降低噪音。
  5. 上面的是所翻译的文档中提到的几个语音引擎的功能,其实语音引擎提供设备采集、编解码、加密、声音处理、声音控制、网络传输与流量控制等功能。
六,视频引擎
视频引擎和音频引擎一样,也是一个解决框架,以实现从摄像头数据采集到网络数据传输、以及从网络传输的数据到屏幕显示的过程功能。
  1. 编解码。WebRTC采用I420/VP8编解码技术,VP8能以更少的数据提供更高质量的视频,对视频会议非常适合。
  2. 动态抖动缓存技术。
  3. 图像增强技术。事实上,视频图像的处理是针对每一帧的图像进行处理,这其中包括降噪、颜色增强等技术手段来保证更好的视频质量。
有理解不当的,欢迎大家拍砖。

分享到:
评论
1 楼 ykbj117 2015-10-28  
你们知道刘绍华么?就是北邮的一个教授,专门研究WebRTC的资深大牛,他开网络公开课了:http://www.lookybang.cc/forum.php?mod=viewthread&tid=409&extra=page%3D1,并且据说会持续发布,大家可以去看看,据说有问题也能给解答的!

相关推荐

    llamato:服务提供商的Webrtc体系结构

    服务提供商的统一通信体系结构此解决方案基于开源项目 高层建筑 -lb -- (https) -- apache --- apache --- mysql ---------o -lb -- (wss) ---- haproxy -- kamailio - freeswitch ----o asterisk 软件 前端 ...

    node-webrtc:node-webrtc是一个Node.js本机加载项,它提供对WebRTC M87的绑定

    从NPM安装会下载适用于您的操作系统×体系结构的预构建二进制文件。 将TARGET_ARCH环境变量设置为“ arm”或“ arm64”,以分别下载armv7l或arm64。 Linux和macOS用户还可以设置DEBUG环境变量来下载调试版本。 您...

    android-webrtc-aecm:基于WebRTC AECM算法的Android声学回声消除

    android-webrtc-aecm 基于WebRTC AECM算法的Android声学回声消除基于存储库的存储库。 它包含一些错误修复和代码改进。... 还配置了项目以支持x64体系结构,现在它支持以下ABI:armeabi-v7a,arm64-v8a,x86,x86_64。

    sdk-webrtc-meetings:带有集成的BlueJeans WebRTC视频的网页的参考设计

    更新以与新的BlueJeans视频体系结构兼容。 修复没有视频问题。 initialize()中需要使用新参数来设置远程音频元素。 1.3.1 12/2/2019 更新:删除会议池的可选要求。 要求用户的后端应用程序安排会议以供SDK加入...

    收件箱::postbox:WebRTC快速信令HTTP服务器

    您可以为您的系统/体系结构下载 从源编译 安装 克隆存储库并编译并将二进制文件安装到$ GOBIN git clone git@github.com:emad-elsaid/inbox.git cd inbox go install cmd/inbox.go Docker镜像 如果

    webrtc-mcu:INTEL WebRTC MCU群集管理服务

    针对英特尔:registered:体系结构进行了优化,以充分利用具有H.264和HEVC编码/解码功能的英特尔硬件加速功能。版本0.0.1 Nightly Build.关于该服务需要Node.JS:registered: 。 该服务可以独立运行, Intel WebRTCMCU...

    video-conference-webrtc-nodejs

    此示例代码演示了运行在上的客户端/服务器体系结构,该体系结构使用户能够设置视频会议。 该应用程序利用和 。 同行访问时 ,将生成一个新的会议室URL,然后该URL可用于邀请其他人参加视频会议。 以下是示例室的...

    guifi-webrtc:学士学位论文

    标题:具有WebRTC的组织的实时通信网络体系结构设计。 摘要:本项目介绍了破坏技术WebRTC(Web实时通信),该技术无需第三方插件即可支持浏览器到浏览器的应用程序。 它详细介绍了自从Google于2011年发布以来,...

    Video-Conferencing-over-SDN:软件定义网络上的多方WebRTC视频会议

    SDN视频会议该项目提供了基于软件定义网络的多方WebRTC视频会议体系结构入门这些说明将为您提供项目的工作副本。 该项目使用了一些外部软件。 要运行此项目,必须先安装并正常运行这些必备组件,这一点至关重要。...

    woverlay:基于WebRTC的覆盖网络

    该体系结构使用中央Websocket服务器引导进入网络。 一旦对等方被引导,它将使用WebRTC来构建其余的网络并发送信号,因此服务器上的负载应最小。 无需努力支持不具有WebRTC的浏览器,因此大多数ES6功能都可以在不...

    vieu:使用由webRTC支持的React制作的视频聊天应用程序

    这种类型的体系结构根本不是可扩展的,但是由于这个项目只是出于实验目的而设计的,因此我在这里使用了它,尽管为了获得更好的可扩展性和性能,可以考虑选择转发单元或多点会议单元,有关更多信息,请参见 。...

    工厂:charged带有WebAPI和纯HTTP2支持的JS Web服务器

    厂 ··Plant是基于WebAPI标准的HTTP2 Web服务器,创建时考虑了模块化体系结构和功能设计。 而且它是纯净的,耦合性较低。 Plant支持HTTP 1和HTTP 2协议。 但是它与传输无关,可以在浏览器中通过WebSockets,WebRTC...

    media-core:RMS-用于实时云通信的Restcomm媒体服务器

    得益于其可插拔的体系结构,用户可以根据自己的需求开发和组装用于不同功能(例如ASR,VAD,编解码器等)的一组插件。 这使用户可以构建最适合其需求的定制版本的媒体服务。 RestComm Media-Core项目具有以下特点...

    afdv-call-center

    联络中心演示是用于构建现代联络中心的参考体系结构。 该演示的重点是展示如何构建基于平台的联络中心以及所需的各种后端和前端组件。 注意:我们已经从UX的角度完成了基础工作,并且仍有很多机会可以改进。 它是...

    矛:基于Node.JS的多人游戏服务器

    是实时多人游戏服务器它提供了一个可扩展的基于Node.JS的服务器,在该服务器上运行... 的官方包含有关理论和理性以及项目的结构和体系结构的文章。 如果您想边做边学,可以从第一个教程开始,[我的第一个游戏:Pong] {

    saapshot::camera:相机应用

    :electric_plug: 实体组件体系结构:描述3 :high_voltage: 性能:说明4 :globe_with_meridians: 跨平台:说明5 入门 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以进行开发和测试。 有关如何在...

    bigbluebutton:完整的开源Web会议系统

    BigBlueButton BigBlueButton是一个开源Web会议系统。 BigBlueButton支持音频,视频,幻灯片(带... 有关完整的技术文档BigBlueButton-包括体系结构,功能,API和GreenLight(默认前端)-请参见 。 BigBlueButton和Big

    turn:Pion TURN,用于构建TURN客户端和服务器的API

    可移植-只需设置环境变量即可快速部署到多个体系结构/平台。 安全-稳定性和安全性对于网络服务很重要。 Go提供了我们所需的一切。 可扩展-在运行时创建分配并更改状态。 旨在简化扩展。 使用 pion/turn是用于构建...

Global site tag (gtag.js) - Google Analytics