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教程
Getting Started with WebRTC

最新文章

  1. stringstream的基本用法
  2. Android的RecyclerView
  3. SQL分页语句
  4. RabbitMQ/JAVA (发布/订阅模式)
  5. LeetCode "Design Tic-Tac-Toe"
  6. NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.
  7. 【LeetCode】18. 4Sum
  8. Discuz <= 7.2 SQL注入漏洞详情
  9. C#时间戳的获取与转换方法
  10. UILabel 的使用,属性详解
  11. 不要在 _ASSERT() 宏中执行功能代码 AND RELEASE版调试办法
  12. Robotium 框架学习之概述
  13. Storm Topology Parallelism
  14. 原生JavaScript写select下拉选择后跳转页面
  15. 查询 SQL_Server 所有表的记录数: for xml path
  16. JVM 学习集合
  17. 真实的物理机安装Centos7系统后网卡只有lo没有eno1的解决办法:实际上是物理机未安装网驱动卡
  18. Xcode debug时如何查看内存中的数据
  19. Vue 框架-05-动态绑定 css 样式
  20. oracle 分页的sql语句

热门文章

  1. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)
  2. linux nginx+php源码安装
  3. 杂项 List
  4. ES命令
  5. data_model_action
  6. tp 框架目录结构
  7. ruby基本语法(1)
  8. C#调取接口时报错:服务器提交了协议冲突. Section=ResponseStatusLine
  9. EasyUI的时间控件禁止输入
  10. 进程池和multiprocess.Pool模块