首页 > 其他分享 >webrtc 的理解

webrtc 的理解

时间:2022-09-01 20:11:06浏览次数:95  
标签:Google 理解 传输 直播 推流 webrtc 客户端

常规视频的传输包括以下几个步骤:
采集,编码,推流,转码,分发,拉流,解码和渲染

在一个实时的音视频系统架构里,上面的每个环节都会有一定程度的优化空间。

以下内容摘自:rtmp直播和webrtc直播对比优劣何在?

webrtc 是近两年看好的方向,大多采用 RTMP 框架的流媒体系统在处理直播中的问题时会用到 webrtc。webrtc 最初是由 Google 开发的,它们作为基于浏览器的实时通信的开源解决方案发布。它使用 UDP 来进行媒体推流,而不需要创建离散的媒体段,这为所有客户端提供了始终如一的低延时(低于 500ms)。随着苹果的 webrtc 支持加入了 Safari 11,它现在已经被所有主流浏览器(包括 Google Chrome,Firefox,和 Microsoft Edge)所支持。webrtc 协议的设计使其可以很灵活的进行各种实现,使企业能够尝试针对一对一,一对多,甚至一对数百万的解决方案。此外,它支持通过TLS进行交付,以确保传输过程中内容的安全。

除了低延时流传输外,webrtc 还提供了一个实时双向数据通道,可用于发送和接收数据流。这种双向数据技术给在线流现在如何能成为一种交互式的体验提供了很多有趣的可能性。

为什么强烈建议你基于 webrtc?对直播系统,难的不是服务器,而是客户端。客户端难的地方则主要体现在两个方面,一是网络传输有关,像侦听事件,同步主线程和读线程,穿透;二是流数据有关,像编码、解码、回声消除。而这些正是webrtc帮你解决了。

优点

  • W3C 标准,主流浏览器支持程度高
  • Google 在背后支撑,并在各平台有参考实现
  • 底层基于 SRTP 和 UDP,弱网情况优化空间大
  • 可以实现点对点通信,通信双方延时低(目前主要应用于连麦和视频会议)

缺点

  • 传统 CDN 没有类似的服务提供(一对多模式主要是 rtmp 的 cdn 内容分发机制)
  • 编译 webrtc 的源码就是一个比较大的挑战,搭建其复杂的编译环境往往会遇到很多意想不到的问题。
  • webrtc 缺乏服务器方案的设计和部署。传输质量难以保证,优化手段也有限,只能做一些端到端的优化,难以应对复杂的互联网环境。

什么是媒体推流和离散的媒体段?

标签:Google,理解,传输,直播,推流,webrtc,客户端
From: https://www.cnblogs.com/strive-sun/p/16647702.html

相关文章

  • Linux0.11 sleep_on wake_up函数理解和纠正
    /**将当前进程设置为不可中断的睡眠状态*只有明确进程唤醒才可以*/voidsleep_on(structtask_struct**p){structtask_struct*tmp;if(!p)......
  • 如何理解CV_8UC3等表达式
    出处:http://www.cnblogs.com/suubai/OpenCV在对Mat对象进行初始化时,经常需要对矩阵的类型进行定义,这就需要用到类似于CV_8UC3的表达。该宏定义的通式为: 1、bit_depth:......
  • Es(ElasticSearch)-理解及使用(二)
    一、ElasticSearch核心概念概述索引(数据库)字段类型(表)文档(数据)分片(Lucene索引,倒排索引)前期可以理解为数据库数据库-r-esDBElasticSearch数据库......
  • 8/31 深入理解计算机系统 第十一章 网络编程
    第十一章网络编程11.1客户端-服务器编程模型包含一个服务器进程和多个客户端进程。服务器管理某种资源,并通过操作这种资源给客户端提供某种服务。基本操作是:事务一个......
  • 作⽤域链的理解?
    一、作⽤域作⽤域,即变量(变量作⽤域⼜称上下⽂)和函数⽣效(能被访问)的区域或集合换句话说,作⽤域决定了代码区块中变量和其他资源的可⻅性我们⼀般将作⽤域分成:全局作⽤......
  • 【CV算法基础】ASMS(adaptive scale meanshift)算法理解
        参考1. ASMS算法(adaptivescalemeanshift);2. 基于YOLOv3和ASMS的目标跟踪算法;3.github_asms;完......
  • 【CV算法基础】GIoU算法理解
    几种IoU的理解IoUIOU是用来衡量两个边界框的重叠程度的。 GIoU论文的地址为:https://arxiv.org/abs/1902.09630github代码地址:https://github.com/generalized-iou这......
  • 【ML算法基础】匈牙利算法理解
    前言匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,匈牙利算法(HungarianAlgorithm)与KM算法(Kuhn-MunkresAlgorithm)是做多目标跟踪的小伙伴很容易在论文......
  • 【CV算法基础】FocalLoss理解
     作者提出focalloss的出发点也是希望one-stagedetector可以达到two-stagedetector的准确率,同时不影响原有的速度。既然有了出发点,那么就要找one-stagedetector的准确......
  • php yield理解
    使用yield之前functionactionIndex($message='helloworld'){$valuesArray=[];//获取初始内存使用量echo'开始'.round(memory_get_usage()/102......