解决方案

技术专栏

SOLUTIONS

技术专栏

联系我们

WebRTC体系结构

首页 >> 技术专栏 >> WebRTC专栏 >> WebRTC体系结构

WebRTC体系结构

       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.  图像增强技术。事实上,视频图像的处理是针对每一帧的图像进行处理,这其中包括降噪、颜色增强等技术手段来保证更好的视频质量。



本文来自:http://blog.csdn.net/zmxiangde_88/article/details/8173456