文档章节

WebRTC入门学习之初识WebRTC

小小实习生
 小小实习生
发布于 2015/08/08 20:50
字数 700
阅读 7391
收藏 16

引言:

         先声明本人只是小小实习生一枚,若有不正确的,希望大家帮忙指正。

一、WebRTC基本架构

         

         

                                                图一  WebRTC总体架构,摘自百度百科

        先说说WebRTC大致的实现思路:我们创建的web app,然后在app中调用W3C提供的JS API,JS API 会调用浏览器中的C++层API,底层C++模块是来自Google的开源项目WebRTC,它可以让浏览器和浏览器直接传输音视频流。但若想就这样两个browser就直接通信仍是不行的,后面一节会讲到。

        再看上面的图, WebRTC有三个模块,Voice Engine(音频引擎),Video Engine(视频引擎),Transport。Voice Engine包含iSAC/iLBC Codec(音频编解码器,前者是针对宽带和超宽带,后者是针对窄带),NetEQ for voice(处理网络抖动和语音包丢失),Echo Canceler(回声消除器),Noise Reduction(噪声抑制);Video Engine包含VP8 Codec(视频图像编解码器),Video jitter buffer(视频抖动缓冲器,处理视频抖动和视频信息包丢失),Image enhancements(图像质量增强)。Transport包含SRTP(安全的实时传输协议,用以音视频流传输),Multiplexing(多路复用),P2P,STUN+TURN+ICE(用于NAT网络和防火墙穿越的)。除此之外,安全传输可能还会用到DTLS(数据报安全传输),用于加密传输和密钥协商。整个WebRTC通信是基于UDP的。

二、W3C提供的WebRTC  API

英文API:http://www.w3.org/TR/webrtc/(个人建议看英文版)

中文API:http://www.iwebrtc.com/blog/webrtc1-0/(old版)

三个主要API:

MediaStream:获取音视频流

RTCPeerConnection:用以音视频数据通信

RTCDataChannel:用以任意应用数据通信

学习重点:offer/answer状态机变化和ICE状态机变化,并且结合代码和整个流程图理解

                                              图二 offer/answer状态机变化图,摘自W3C

                                                          图三 ICE状态机变化图,摘自W3C

                                                        图四 完整呼叫连接流程(*重点),摘自W3C

三、WebRTC开源项目

licode:http://chotis2.dit.upm.es/       MIT License

kurento:http://www.kurento.org/      LGPL License

Google也有官方的demo,github上也有比较好的demo(WebRTC-experiment  demo比较全)

另外,大家也可以阅读《web性能权威指南》,里面也有关于WebRTC的讲解,讲的挺好的。



© 著作权归作者所有

小小实习生
粉丝 1
博文 4
码字总数 2929
作品 0
苏州
程序员
私信 提问
webrtc初级教程-仝利-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rootusers/article/details/83551794 webrtc初级教程—9204人已学习 课程介绍 从基础的怎么从网上下载webrtc教...

BIGBurning
2016/02/25
0
0
腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

1、概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征、差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和W...

JackJiang2011
2018/09/29
0
0
了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化

本文原文由声网WebRTC技术专家毛玉杰分享。 1、前言 有人说 2017 年是 WebRTC 的转折之年,2018 年将是 WebRTC 的爆发之年,这并非没有根据。就在去年(2017年),WebRTC 1.0 标准草案出炉(...

JackJiang2011
2018/06/04
0
0
通过WebRTC实现实时视频通信(一)

通过WebRTC实现实时视频通信(一) 通过WebRTC实现实时视频通信(二) 通过WebRTC实现实时视频通信(三) WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网...

gbin1
2014/09/23
13.1K
4
黄开宁:搞多媒体开发要掌握好信号处理、统计和数理分析

尽管有WebRTC和FFmpeg这样的超级工具,但多媒体开发的核心难点的难度并没有因此降低,这需要开发者掌握牢固的基础知识。LiveVideoStack专访了即构科技音视频技术资深架构师黄开宁,他对学习多...

livevideostack
2018/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

tomcat 莫名奔溃问题

Apr 24, 2019 6:18:11 PM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["http-nio-8080"] Apr 24, 2019 6:18:12 PM org.apache.coyote.AbstractProtocol pause......

mellen
17分钟前
0
0
组件开发规范 class名身份识别

组件需要通过一个组件共有的class来标识这个组件,外部调用的时候,可以通过锁定这个class来方便地改变组件的css样式。 设置方式 .my-checkbox { width: 20px; height: 20px; font-...

Carbenson
25分钟前
1
0
如何在工作中快速成长?致工程师的10个简单技巧

阿里妹导读:阿里有句非常经典的土话,“今天的最好表现,是明天的最低要求。”如何挖掘潜能、发现更好的自己?今天,阿里巴巴高级无线开发专家江建明将认知升级的方法总结出来,帮助你获得快...

阿里云云栖社区
45分钟前
2
0
PHP和Redis实现在高并发下的抢购及秒杀功能

抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。 抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题: 一、高并发对...

xiaogg
47分钟前
1
0
从数据上看:谁才是漫威的绝对C位

复联4上映了!这次比美国还早了两天。当然,我还没看,不会给你们剧透,当然也不想不剧透。 这一部不仅是灭霸这一线剧情的结局,也被认为漫威第三阶段的收官之作。据说此部之后,不少影迷熟知...

crossin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部