文档章节

认识和入门 WebRTC

chenbilly
 chenbilly
发布于 2016/05/23 12:11
字数 901
阅读 758
收藏 23

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

WebRTC,名称源自网页即时通讯(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准

一、引言 最近有在关注Google IO 2016的同学应该知道,google发布了新的一款视频聊天工具Duo(http://www.coolapk.com/apk/com.google.android.apps.tachyon),这款应用是基于 Google全新的QUIC和WebRTC协议开发的,也就是我们今天这篇文章需要介绍的主角WebRTC。

二、它是什么 正如导语所言WebRTC是一种视频通话的一种标准,目的是通过浏览器提供简单的JS就可以达到实时通讯的能力.除了Safari之外,主流的Chrome,Firefox,Opera已经在最新的浏览器中支持WebRTC很久了,Firefox更利用WebRTC制作了Hello应用,有兴趣的同学可以在Firefox浏览器的右上角找到它,并快速的发起一个视频会议。

三、过程描述 只需要做到以下的十步,你就可以完成一个简单的WebRTC视频应用了。

progress

  1. 从本地的设备中获取一个MediaStream 对象
  2. 从本地 MediaStream中获取一个URL blob
  3. 使用获得的URL blob在本地设备中做预览
  4. 创建一个RTCPeerConnectiond对象
  5. 将本地Stream添加到步骤4中创建的Connection对象中
  6. 发你的本地session 描述到远程服务器.
  7. 接受远程设备的远程session 描述
  8. 处理你接受到的远程session描述,并将远程stream添加到你的RTCPeerConnectiond。
  9. 通过远程的stream,获取它的URL blob。
  10. 使用获取到的URL blob去播放远程设备的音频和视频。

至此10步,我们就完成了一个简单的1:1视频的过程了.

四、主要的API描述

WebRTC原生APIs文件是基于WebRTC规格书[1]撰写而成,这些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三类。

###Network Stream API### MediaStream:MediaStream用来表示一个媒体数据流。 MediaStreamTrack在浏览器中表示一个媒体源。

###RTCPeerConnection### RTCPeerConnection:一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯。 RTCIceCandidate:表示一个ICE协议的候选者。 RTCIceServer:表示一个ICE Server。

###Peer-to-peer Data API### DataChannel:数据通道(DataChannel)接口表示一个在两个节点之间的双向的数据通道。

五、学习的资源

针对于WebRTC的爱好学习者,本文罗列了一些学习的资源(干货)供大家参考。

  1. WebRTC Home
  2. WebRTC Android
  3. WebRTC iOS
  4. WebRTC G
  5. Muaz Kha 大神
  6. Github list

参考示例:

  1. AppRTC Github
  2. AppRTC DEMO
  3. Hublin Github
  4. Hublin DEMO
  5. AppStore 搜WebRTC ---> 一堆应用基于WebRTC

第三方接入服务:

  1. pubnub
  2. tokbox
  3. oovoo
  4. sinch

书籍(PPT)下载:

  1. WebRTC Tutorial
  2. WebRTC G PPT
  3. Real-time-communication-with-webrtc-peer-to-peer-in-the-browser
  4. WebRTCIEEE

##版权申明

版权归原作者所有,这里仅做收集整理,欢迎自由转载-非商用-非衍生-保持署名和链接。

本文中内容将持续更新。

ps:本文作者系代码牛(面对面的技术分享平台)讲师keepcleargas,正在进行基于WebRTC的学习和开发,有兴趣的可关注 代码牛 公众号,获取最新的WebRTC项目的最新博客信息.

© 著作权归作者所有

chenbilly
粉丝 16
博文 9
码字总数 7714
作品 0
杭州
程序员
私信 提问
加载中

评论(0)

node-party #19: WebRTC @ 微软大厦,报名从速 !

报名地址!!! 为了提升活动质量,鼓励分享,本期node-party进行售票,早鸟票和标准票只是价格上不同,分别是29元和49元。 在oschina内报名无效,请在下面链接报名! http://www.bagevent....

Samurais
2016/12/28
64
0
node-party #19: WebRTC @ 微软大厦,报名从速 !

报名地址!!! 为了提升活动质量,鼓励分享,本期node-party进行售票,早鸟票和标准票只是价格上不同,分别是29元和49元。 在oschina内报名无效,请在下面链接报名! http://www.bagevent....

Samurais
2016/12/28
39
0
了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化

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

JackJiang2011
2018/06/04
0
0
WebRTC 学习资源 电子书 WebRTC权威指南 Learning WebRTC

webRTC源码下载地址:https://pan.baidu.com/s/18CjClvAuz3B9oF33ngbJIw 提取码:wl1e 1.《WebRTC权威指南》第三版 中文版 本书适用于初学者,可以快速理解WebRTC相关的理论知识。 本书的作者...

osc_34byaiqc
2018/12/10
23
0
webRTC脱坑笔记(一)— 初识webRTC

webRTC概述 WebRTC--- Web browsers with Real-Time Communications (RTC) WebRTC是一个开源项目,可以在和本机应用程序中实现音频,视频和数据的实时通信。 在Firefox,Opera和Chrome桌面和...

osc_7er18k9i
2019/08/07
21
0

没有更多内容

加载失败,请刷新页面

加载更多

(人才测评)桌面运维工程师的招聘入职测评方案

桌面运维工程师,作为IT技术支持岗位的一种,不仅要有扎实的技术基础,还要有较强的时间观念意识,同时还应具备较强的逻辑思维能力和人际沟通能力,这样才能称得上一名合格的桌面运维工程师。...

蛤蟆丸子
26分钟前
37
0
JavaFX初探(菜单)

JavaFX初探(菜单) 本节我们介绍如何创建菜单、菜单栏、增加菜单项、为菜单分类,创建子菜单、设置菜单上下文。你可以使用下面的类来创建菜单。 MenuBar MenuItem Menu CheckMenuItem Radi...

whoisliang
29分钟前
20
0
Springboot 系列(四)Spring Boot 日志框架

文章已经收录在 Github.com/niumoo/JavaNotes ,更有 Java 程序员所需要掌握的核心知识,欢迎Star和指教。 欢迎关注我的公众号,文章每周更新。、 注意:本 Spring Boot 系列文章基于 Spring...

未读代码
33分钟前
20
0
26. Go 语言中通道死锁经典错误案例详解

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触...

王炳明
38分钟前
13
0
SpringBoot 整合 Redis 缓存

1.首先导入使用Maven导入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><......

FH-Admin
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部