WebRTC体系结构

转自:http://blog.csdn.net/zmxiangde_88/article/details/8173456

本文是对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. 编解码。支持iLBC和iSAC两种编解码器。
  2. iSAC。缩写是:Internet Speech Audio Codec。它是一种用于VoIP和流音频的宽带和超宽带音频编解码器,iSAC采用16 kHz或32 kHz的采样频率和12—52 kbps的可变比特率。 
  3. iLBC。缩写是:Internet Low Bitrate Codec,它是一种用于VoIP和流音频的窄带语音编解码器,使用8 kHZ的采样频率,20毫秒帧比特率为15.2 kbps,30毫米帧的比特率为13.33 kbps,标准由IETF RFC 3951和3952定义。 
  4. NetEQ。为了提供高质量音频,WebRTC提供NetEQ功能,包括抖动缓冲器及丢包补偿模块以能够提高音质,并把延迟减至最小。
  5. AEC。回声消除,这是基于信号处理的一个软功能,在实时采集过程中,存在由于麦克录制时导致的回声。WebRTC提供AEC功能,就是回声消除,Acoustic Echo Cancceler(AEC)。
  6. NR。Noise Reduction,减少噪音,就是降噪的一个过程。由于一些背景等声音导致噪音,该功能可以降低噪音。
  7. 上面的是所翻译的文档中提到的几个语音引擎的功能,其实语音引擎提供设备采集、编解码、加密、声音处理、声音控制、网络传输与流量控制等功能。
六,视频引擎
    视频引擎和音频引擎一样,也是一个解决框架,以实现从摄像头数据采集到网络数据传输、以及从网络传输的数据到屏幕显示的过程功能。
  1. 编解码。WebRTC采用I420/VP8编解码技术,VP8能以更少的数据提供更高质量的视频,对视频会议非常适合。
  2. 动态抖动缓存技术。
  3. 图像增强技术。事实上,视频图像的处理是针对每一帧的图像进行处理,这其中包括降噪、颜色增强等技术手段来保证更好的视频质量。

猜你喜欢

转载自chriszeng87.iteye.com/blog/2083041