webrtc是什么?它能做什么?(webrtc pacer)
ccwgpt 2024-10-30 01:34 75 浏览 0 评论
一、WebRTC概念
1.什么是WebRTC
我们都知道浏览器本身不支持相互之间建立信道进行通信,都需要通过服务器进行中转。比如现在有两个客户端—甲、乙,他俩想要进行通信,首先需要甲和服务器、乙和服务器之间建立信道。甲给乙发送消息时,甲先将消息发送到服务器上,服务器对甲的消息进行中转,发送到乙处,反过来也是一样。这样甲与乙之间的一次消息要通过两段信道,通信的效率同时受制于这两段信道的带宽。同时这样的信道并不适合数据流的传输,如何建立浏览器之间的点对点传输,一直困扰着开发者。因此WebRTC应运而生。
WebRTC是一个开源项目,旨在使得浏览器能为实时通信(RTC)提供简单的JavaScript接口。说的简单明了一点就是让浏览器提供JS的即时通信接口。这个接口所创立的信道并不是像WebSocket一样,打通一个浏览器与WebSocket服务器之间的通信,而是通过一系列的信令,建立一个浏览器与浏览器之间(-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。并且WebRTC通过实现MediaStream,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。
同时WebRTC是一个非常优秀的多媒体框架,且支持跨平台(支持Android、IOS),能够使得Android和IOS设备作为终端设备能够像浏览器一样,进行即时通信。
2.使用WebRTC能做什么?
- 能用于音视频实时互动
- 能用于游戏、即时通讯、文件传输等等
- 它是一个百宝箱,传输、音视频处理(回音消除、降噪等)
3.学习WebRTC的过程中我们能掌握什么?
- 音视频设备的访问与管理
- 音视频数据的采集
- 数据的传输与实时互动
- WebRTC的整体工作机制
4.学习WebRTC思路
(1). 学习NodeJS的基本使用,尝试搭建一个简单的Web服务器并实现简单的HTTP服务。
(2). 学习JavaScript,了解并掌握其基本的使用方法,为后续开发及完善Web服务做技术铺垫。
(3). 了解音视频设备相关的Web API,尝试使用MediaDevices实现音视频设备的访问,包括摄像头、麦克风及屏幕采集。
(4). 学习使用Socket.IO,尝试使用Socket.IO实现简单的聊天室,为后续开发WebRTC信令服务器做技术铺垫。
(5). 了解和学习使用SDP,并使用WebRTC的Web API实现本地的1v1视频互通。
(6). 搭建STUN/TURN服务器,使用ICE框架及Socket.IO实现WebRTC正式的1V1连麦
(7). 实现WebRTC的移动端开发,做到浏览器和手机客户端能进行连麦操作。
二、WebRTC 架构
下面是WebRTC的基础架构图:
整体架构分为应用层和核心层。应用层提供实现相关业务逻辑Api,核心层提供应用层需要的核心API。
其中核心层分为四层:
第一层为C++ API,其中最主要的是PeerConnection,这个接口需要重点学习和掌握。
第二层为Session层,为上下文管理层,应用里的音频和视频及非音视频的数据处理逻辑都可以在这层进行。
第三层为引擎和传输层,包括音频引擎和视频引擎,以及音视频的传输,这也是整个架构中最重要的一层。
第四层与硬件相关,包括音视频的采集和网络的IO。
注:WebRTC的核心层无视频的渲染,所有的渲染都需要应用层自行实现。
这里着重提一下第三层:
- Voice Engine(音频引擎模块):包含编码能力、音频缓冲Buff(防网络抖动)、回音消除(实时连麦关键点)。
- Video Engine(视频引擎模块):包含编码能力(如VP8)、视频缓冲、图像增强。
- Transport(传输模块):传输协议在底层使用UDP,上层使用的RTP(为安全起见增加SRTP),还有P2P机制,包括STUN、TURN 和 ICE。
需要更多ffmpeg/webrtc..音视频流媒体开发学习资料加群812855908领取
三、WebRTC源码目录结构
首先我们需要将WebRTC的源码下载下来,现了解一下WebRTC源码目录的基本构成:
这里着重介绍一下module目录下的子目录结构:
四、WebRTC 运行机制
WebRTC核心API有三个:MediaStream、RTCPeerConnection、RTCDataChannel。
MediaStream:通过设备的摄像头及话筒获得视频、音频的同步流
PeerConnection: 用于构建点对点之间稳定、高效的流传输的组件
DataChannel:能够使得浏览器之间(点对点)简历一个高吞吐量、低延时的信道,用于传输任何数据
其中PeerConnection调用过程如下图所示:
PeerConnection调用时序图如下:
这里我们现不对上面的流程图和时序图进行详细介绍,大家简单看一下,保证稍微有点概念即可。
相关推荐
- 谷歌正在为Play商店进行Material Design改造
-
谷歌最近一直忙于在其应用程序中完成MaterialDesign风格的改造,而Play商店似乎是接下来的一个。9to5Google网站报道,有用户在Play商店的最新版本中发现了新界面,暗示该应用和网...
- 企业网站免费搭建,定制化建站CMS系统
-
科腾软件企业网站CMS管理系统已完成开发工作,首次开源(全部源码)发布。开发工具:VisualStudioEnterprise2022数据库:SQLite(零配置,跨平台,嵌入式)开发...
- 您需要的 11 个免费 Chrome 扩展程序
-
来源:SEO_SEM营销顾问大师Chrome扩展程序是SEO的无名英雄,他们在幕后默默工作,使您的策略脱颖而出并提高您的努力效率。从竞争对手研究到审核您的网站,速度比您说“元描述”还快,这些小工具发...
- 户外便携设备抗干扰困境如何破局?CMS-160925-078S-67给出答案
-
在户外复杂的电磁环境中,便携式设备中的扬声器需具备出色抗干扰能力,CUID的CMS-160925-078S-67在这方面表现突出。 从其结构设计来看,矩形框架虽主要为适配紧凑空...
- 一个基于NetCore开发的前后端分离CMS系统
-
今天给大家推荐一个开源的前后端分离架构的CMS建站系统。项目简介这是一个基于.Net3构建的简单、跨平台、模块化建站系统。系统业务简单、代码清晰、层级分明、全新架构便于二次扩展开发。支持多种数据库,...
- 本地Docker部署ZFile网盘打造个人云存储
-
前言本文主要介绍如何在LinuxUbuntu系统使用Docker本地部署ZFile文件管理系统,并结合cpolar内网穿透工具实现远程访问本地服务器上的ZFile传输与备份文件,轻松搭建个人网盘,无...
- pcfcms企业建站系统 免费+开源的企业内容管理系统
-
项目介绍pcfcms是基于TP6.0框架为核心开发的免费+开源的企业内容管理系统,专注企业建站用户需求提供海量各行业模板,降低中小企业网站建设、网络营销成本,致力于打造用户舒适的建站体验。演示站...
- 【推荐】一个高颜值且功能强大的 Vue3 后台管理系统框架
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍SnowAdmin是一款基于Vue3、TypeScript、Vite5、Pinia、Arco-Desi...
- java开源cms管理系统框架PublicCMS后台管理系统
-
一款使用Java语言开发的CMS,提供文章发布,图片展示,文件下载,用户权限、站点模块,内容管理、分类等功能。可免费用于商业用途maven工程数据库脚本在工程中database文件夹下代码结构:效果...
- 一定要大量读书:当我问Deepseek,它给出的高效阅读方法厉害了!
-
一年一度的世界读书日,总该写点什么。于是,我去问Deepseek给我推荐人生破局必读的10本书,结果它给了我回复,竟然10本推荐的书籍里,我都曾经浏览过,同时还给出破局关键。而说浏览过,不是读过,是因...
- 《搜神札记》:不应磨灭的惊奇(小说《搜神记》)
-
□黄勃志怪传说的书写一直是文人墨客的后花园,晚近尤盛,从张岱到袁枚到纪昀,收集那些或阴森或吊诡的行状故事,遂成一类,到民国年间,周作人挟此遗传,捋袖子拿希腊神话动刀,乃兄鲁迅不甘其后,《故事新编》虎...
- 《如何构建金字塔》之第三章总结(构建金字塔结构的方法有)
-
“没有什么比一套好理论更有用了。”——库尔特.勒温这篇读后感依然引用了这句库尔特.勒温名言,这句话也是我读芭芭拉.明托这本书的初衷。今天就“如何构建金字塔”,我来谈谈我的读后心得。我热爱写作,但是写...
- 《助人技术》第一章助人引论内容框架
-
第一章内容基本呈现如何成为助人者(心理咨询师)以及一些相关基础知识,对于进入这个行业有兴趣以及希望通过心理咨询寻求帮助但存有疑虑的当事人,都值得一读。心理咨询的三个阶段(不是说严格的三个阶段,而是广义...
- AI助手重构读后感写作流程:从提纲到完整性思考的转换
-
大家好!你有没有遇到过读完一本书,想要写读后感,却不知道从何下手的情况呢?今天我们要来探讨一下如何利用稿见AI助手来重构读后感写作流程,从提纲到完整性思考的转换。让我们一起来看看这个全新而又实用的方法...
- 图解用思维导图做读书笔记技巧(图解用思维导图做读书笔记技巧视频)
-
做阅读笔记非常有利于读后进行有效的深入思考,而思维导图这一强大的工具其最大的特点就是架构清晰,在阅读过程中对文章的分析、总结、分类起着很大的辅助作用。思维导图读书笔记步骤:1、阅读大纲。首先要快速浏览...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)