webRTC脱坑笔记(一)— 初识webRTC
webRTC概述
WebRTC--- `Web browsers with Real-Time Communications (RTC)`
WebRTC是一个开源项目,可以在`Web`和本机应用程序中实现音频,视频和数据的实时通信。
在Firefox,Opera和Chrome桌面和Android上。WebRTC也可用于iOS和Android上的本机应用程序。
有了WebRTC ,不需要任何插件或第三方软件来处理典型问题,例如数据丢失、连接中断和NAT遍历。
webRTC 适用领域
- 实时营销
- 实时广告
- 后台通信( CRM、ERP、SCM、FFM )
- HR管理
- 社交网络
- 约会服务
- 在线医疗咨询
- 金融服务监控
- 多人游戏
- 实时广播
- 在线教育
webRTC采用的协议
实时数据通信意味着两个用户设备之间的快速连接。公共连接采用视频或音频序列帧的形式,将其一每秒30至60次的速率传输给另一个用户设备,以获得良好的质量。因此,必须了解,快速发送最新的数据帧比确保每个单个帧都到达更重要。
这就是为什么WebRTC应用程序可能会错过某些帧,以便保持良好的连接速度。
这也就是WebRTC应用程序使用UDP(用户数据报协议)作为传输层协议的原因。
但是为什么建立UDP是不可靠的传输层,因为无法确定以下状态:
- 数据的顺序
- 数据的交付状态
- 每一个数据包的状态
音频和视频WebRTC连接不是最可靠的,而是在两个用户设备之间传输最快的。在可以承受的范围内保证数据的快速传输,这意味着UDP是音频和视频流应用程序的最佳选择。
webRTC体系架构
这张图来源于webRTC入门,应该每个人最开始接触webRTC时都会知道架构图,它描述了RTCPeerConnection的作用。
图中可以看出一共三个不同的层:
- web开发人员的API:包括RTCPeerConnection、RTCDataChannel和 MediaStrean对象
- 浏览器厂商的API
- 供浏览器厂商以hook方式复写的API
传输组件允许在不同类型的网络中建立连接,而语音视频引擎是负责将音频视频流从声卡和摄像机传输到网络的框架。对于web开发人员来说,最重要的部分是WebRTC API。
下一篇将讲解webRTC API。
webRTC脱坑笔记(一)— 初识webRTC的更多相关文章
- webRTC脱坑笔记(三)— webRTC API之RTCPeerConnection
RTCPeerConnection API是每个浏览器之间点对点连接的核心,RTCPeerConnection是WebRTC组件,用于处理对等体之间流数据的稳定和有效通信. RTCPeerConnec ...
- webRTC脱坑笔记(二)— webRTC API之MediaStream(getUserMedia)
webRTC API WebRTC API包括媒体捕获.音频视频的编码和解码.传输层和会话管理. getUserMedia():捕获音频和视频. MediaRecorder:录制音频和视频. RTCP ...
- webRTC脱坑笔记(四)— windows下Nginx对Node服务的反向代理
Nginx反向代理 1.什么是反向代理 当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问 ...
- 一步步yum安装LNMP,脱坑笔记!!!
更改国内yum源: 1.备份yum源文件,位置在/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/ ...
- 1.2、初识WebRTC
文章导读:本节内容,如标题所讲,“初识webrtc”.读完之后,我需要你能清楚三个问题:第一.真正的搞明白实时音视频在生产环境中的真实应用以及前景分析:第二.开发一个符合商业标准的实时音视频应用需要解 ...
- EntityFramework CodeFirst SQLServer转Oracle踩坑笔记
接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下. SQL Se ...
- Storm学习笔记 - Storm初识
Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流. 2. Storm的特点 高性能,低延迟. 分布式:可解决数据量大 ...
- Win下Jenkins-2.138源码编译及填坑笔记
源码编译篇 1. 安装JDK1.8-181,操作系统添加JDK环境变量.Java -version验证一下. 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java ...
- 从源码看Spring Security之采坑笔记(Spring Boot篇)
一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring S ...
随机推荐
- Leetcode_395. Longest Substring with At Least K Repeating Characters_[Devide and Conquer]
题目链接 对一个字符串,找出一个最长的子串长度,这个子串中所有字符出现的次数至少为k. 1.滑动窗口 一开始把题目看成了,子串中每个字符至多出现k次.如果是这样,那么是一道典型的滑动窗口的题目. 然而 ...
- AGC040
AGC040 A 模拟. B 因为顺序无关紧要,所以可以先把区间按右端点排序方便处理. 设第一个区间在\(A\)集合,考虑枚举第一个在\(B\)集合的区间\(i\),这样两个集合的右端点\(\min\ ...
- sqlserver连接-2
本地连接 方法1. 方法2. 远程连接 如果无法通过IP地址远程连接你的SQL Server 2008服务器,可以参考下面的内容进行设置. 在进行下述设置之前,应该确保你的网络已经安装设置完毕,服务器 ...
- vue动态路由传值以及get传值及编程式导航
1.动态路由传值 1.配置路由处 { path: '/content/:id', component: Content }, // 动态路由 2.对应页面传值 <router-link :to= ...
- 阿里云不支持stmp 的25端口,必须
第一种方法 到阿里云解封25端口 特别注意阿里云的<25端口使用服务协议>: 我/我公司承诺并保证TCP 25端口仅用来连接第三方的SMTP服务器,从第三方的SMTP服务器外发邮件. ...
- 2017华南理工华为杯H bx值(容斥问题)
题目描述 对于一个nnn个数的序列 a1,a2,⋯,ana_1,a_2,\cdots,a_na1,a2,⋯,an,从小到大排序之后为ap1,ap2,⋯,apna_{p_1},a_{p ...
- Android7.1后对于Toast类型窗口的限制
在处理问题的时候,经常会遇到ANR,停止运行等问题,经过分析和验证,和如下的一行关键log有关 WindowManager: Adding more than one toast window for ...
- delphi 之 get post
http://www.cnblogs.com/ccqin/archive/2012/08/22/2650348.html delphi 之 get post 没测试过这个 var Source: TM ...
- mybatis多对多
这里我们以用户 user 表和 角色role 表为例,假定一个用户能被分配成多重角色,而一种角色也能分给多个用户,故用户和角色构成多对多的关系 需求:给定角色id,查询这个角色所属的所有用户信息 ①. ...
- servlet--三大域
requset \ session servletContext application