WebRTC是什么

WebRTC简介及实战应用 — 从0到1实现实时音视频聊天等功能 简单来说,RTCDataChannel 就是在点对点连接中建立一个双向的数据通道,从而获得文本、文件等数据的点对点传输能力。它依赖于流控制传输协议(SCTP),SCTP 是一种传输协议,类似于 TCP 和 UDP,可以直接在 IP 协议之上运行。但是,在 WebRTC 的情况下,SCTP 通过安全的 DTLS 隧道进行隧道传输,该隧道本身在 UDP 之上运行。另外总的来说 RTCDataChannel 和 WebSocket 很像,只不过 WebSocket 不是 P2P 连接,需要服务器做中转。 阅读详情

作者:ancientcc
链接:https://www.zhihu.com/question/22301898/answer/145669695
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

首先补充你的一句话,WebRTC的Native Code部分早就可以用在iphone,而且支持得很好,像硬编码、硬解码H264都是运行得很好了。

webrtc是不是有前途,对所在行业来说肯定有前途。它成为标准不是新闻,不成为标准才是新闻。但如果你不是C/C++开发者,前途指的对个人职业规化啥的,对你来说现在是不是机会?或许真要考虑下。我从三个方面分析。

一、web浏览器
Webrtc使web浏览器通过简单的JavaScript api接口实现实时通信功能。在这方面基本已成事实上标准,正如上面写的,它成为标准不是新闻,不成为标准才是新闻。国内就有不少从事和webrtc相关的开发者,像有的公司就基于Webrtc包做些修改、然后给其它开发者用、号称是视频聊天SDK。这样公司好多,但真正做大却有点难。我想有两个原因:JavaScript的限制,浏览器的限制。

JavaScript的限制。JavaScript是脚本语言,能有什么功能取决于实现它的虚拟机,也就是浏览器这个应用程序。由于受限,问题来了,人民群众的需求总是琳琅满目,你都能提供吗?举个例子,要让对方的头上自动加顶红帽子,——当然,修改浏览器代码让加个帽子不是难事,可谁又知道接下会发生什么,难道要一个改一个?聊天往往是娱乐,娱乐经常是没啥规矩。由于这限制,开发者用它时会有这看法:东西是很好,但总是有那么点不足,而且即使是努力了也不可能解决(自个写浏览器除外)。

浏览器的限制。这就要涉及到聊天场景。很现实问题,如果我想和你聊天,身边有手机,你认为会用浏览器吗?对PC,网页比app方便,而移动设备却有点反着来,而且将来移动设备会越来越多。关于这个再深入个问题:如果PC用浏览器,手机用app,聊天是否可行?技术实现上没问题,可事实上基本不会做,代价太高划不来。浏览器时,信令走的是Websocket,app用Websocket纯粹是没事找抽,直接C Socket既简单又高效。浏览器时,两socket间没啥心跳包机制,app时心跳包机制可很大提升效率。浏览器时,由于用JavaScript开发,功能受限,app时用Native Code,自个想要什么就能实现什么。而且,Webrtc是跨平台包,基于C/C++的跨平台SDK也不是没有,何不在开发时顺便开发出个Windows平台app。以上导致了app不太可能和网页聊天,这又让浏览器少去很多应用场景。

综合来说,在浏览器不是webrtc不行,而是其它原因导致有那么点尴尬。想做一个“完美”用户体验的聊天工具,终归还得用app。这就是接下要说,webrtc中的Native Code部分。

二、webrtc中的Native Code部分
Webrtc分两层,底层是个用C++写的库(Native Code),然后上层写个Javascript封装,以便供HTML5调用。既然是写app,那完全不用管上层Js封装,而且Google在开发Webrtc时已考虑用在app,底层C++库的API已做得很完善了。也就是说,一旦直接用Native Code,完全和浏览器无关了,作为C/C++开发者,他就可以用webrtc去实现自个想实现的所有东西。

Native Code摆脱了哪些限制?可参考这个问题贴,可以用WebRTC来做视频直播吗? - HTML5 - 知乎。用浏览器,就是p2p聊天都功能受限,更别说去实现直播。而实际中基于浏览器的直播也不推荐用webrtc技术。这里重复抄下我在那问题回的一段话。

为什么强烈建议你基于webrtc?对直播系统,难的不是服务器,而是客户端。客户端难的地方则主要体现在两个方面,一是网络传输相关,像穿透,二是流数据相关,像编码、解码。而这些正是webrtc帮你解决了。也正因为如此,现在很多直播系统最早的客户端其实是以webrtc为根的,只是后面自个不断优化,慢慢地变成自个系统而已。——诚然,官方webrtc是有地方不尽如意,但它们不断更新,就像最近一段时间优化了回音消除。

如果你熟悉C/C++,又刚好从事和网络视频相关行业,强烈建议你学习Webrtc。如果你不从事网络视频相关行业,却是C/C++开发者,那还是强烈建议你学习Webrtc,原因是接下要说的Webrtc代码的C/C++价值。

三、Webrtc代码的C/C++价值
最近回答了这个问题,怎么样才算是精通 C++? - 编程 - 知乎。在那里建议学习C/C++是两个步骤,知道基本语法后就到网上找开源项目,多看看、多调试前辈们代码。我推荐的开源项目就是Google的Webrtc。

虽然Webrtc的代码量很大,但看的目的不是要全看懂,只是看你想看的部分。语法上,Webrtc用了最新C/C++语法,像std::unique_ptr,Webrtc是视频聊天基础库,众多知名浏览器都是基于它实现视频聊天。扩展专业知识上,Webrtc为完成聊天涉及到很多方面,像网络穿透,视、音频编码解码,采集摄像头、卖克风,截屏。C/C++编程技能积累上,Webrtc能让你直接基于它的一些模块写代码,像多线程同步模块(https://zhuanlan.zhihu.com/p/25147311?refer=c_75458601),网络收发模块。获取更多开源项目上,Webrtc像手心,基于它你会涉及到很多开源项目,像用于加密、解密、网络安全的boringssl,数字编解码的ffmpeg,libvpx,等等。活跃度上,Webrtc是Google底下团队维护的项目,基本做到一个月一小变,不仅能让你获得那些专业的最新技术,还能学习最新C/C++语法。还有很重要的是,Webrtc代码是跨平台的,完全支持当前主流操作系统,像Windows、iOS、Android、Mac OS X、Linux,到时你会发现,C/C++是种多么好的跨平台语言。

一句话,Webrtc非常值得深入,甚至认为可以进入大学课程。


作者:网易云信
链接:https://www.zhihu.com/question/22301898/answer/439523681
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

WebRTC是什么?

首先解释一下WebRTC并非是一个“拿来即用”的“端到端”开源解决方案,如果你以为只需要在web端写几行JavaScript就可以实现浏览器之间的音视频通信,那可能会失望。

但事实上WebRTC能给人更多惊喜,他既不是“解决方案”,也不是某种代码库。

WebRTC是终端的音视频媒体访问接口在类似于web环节下的标准化抽象。是对于实时音视频通话建立过程,编码格式,传输方式等等的规范。

所以不要被“Web”之名影响,无论具体如何实现,只要符合标准规范就可以获得实时的通信能力,这才是WebRTC的意义所在。

WebRTC的潜力在哪里?

聊聊这套标准的潜力,事实上WebRTC是不受限于Native App或者浏览器终端运行环境的。Browser、desktop App、Android、iOS、IoT都可以,你只要IP连接且符合规范就可以互通。

这意味着什么?这意味着无数智能终端产品或者运行在智能终端上的app的实时通信能力的大门彻底打开。举个例子,云信最近帮助步步高小天才手表做的手表实时通信,帮助家长和小朋友实现沟通,而且你不用买苹果表……

再扩大一下想象空间:在线课堂、视频会议、视频社交、远程协助都可以扩展更大的使用场景。

在WebRTC问世之前,并么有一个统一的标准来描述设备的实时通信能力与连接过程,大家都是各做各的,各用各的。但是音视频通信研发是即时通信领域里面的最hard模式,没有大量基建投入和研发资源投入,基本不能成行。WebRTC的最大优势就在于“标准”,通信终端只要符合标准就可以用同一种“语言”交谈。目前各大浏览器厂商都积极参与到WebRTC技术的生态中,从web应用开始,WebRTC将成为基于网页的音视频实时通信技术规范。之后,在Web应用于移动终端应用的交互需求驱动下,越来越多的移动应用的音视频服务也将采用WebRTC的技术规范。这套标准激活的是人与人,物与物之间信息互联,也就意味着这是全新应用场景的底层技术保障。

今年年初流行的直播竞答,抓娃娃机(远程信令控制),在线教育大力发展和实时音视频技术发展起了相辅相成的作用。

编辑于 2018-07-11

【WebRTC】开源项目Webrtc-streamer介绍 WebRTC-Streamer一个用于通过简单的信令机制(参见 api)流式传输 WebRTC 媒体源的实验项目,支持以下媒体源:捕获设备屏幕捕获mkv 文件RMTP/RTSP 源同时该项目也兼容 WHEP 接口。 阅读详情

相关推荐

WebRTC学习—WebRTC详解

目录 一:WebRTC学习了解   (一)WebRTC应用场景   (二)WebRTC的难点   (三)学习流程   (四)学习目标 二:WebRTC介绍   (一)概述   (二)WebRTC可以实现的功能   (三)WebRTC学习内容 三:WebRTC原理与架构   (一)核心层解析   (二)引擎层:音频引擎、视频引擎、传输模块 补充:虽然UDP很适合实时通讯,但是也有需要使用TCP的场景 四:WebRTC目录结构   (一)主目录结构   (二)WebRTC Module目录 五:WebRTC.

Linuxhus的博客 3181

WebRTC简介及使用

WebRTC 只是一个媒体引擎,上面有一个 JavaScript API,所以每个人都知道如何使用它(尽管浏览器实现仍然各不相同),本文对 WebRTC(网页实时通信)的相关内容进行简要介绍。WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌 2010 年以 6820 万美元收购 Global IP Solutions 公司而获得的一项技术。WebRTC 提供了实时音视频的核心技术。

明天你好的博客 3万+

webRTC基础入门

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、webRTC介绍二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供

weixin_39736022的博客 5741

Web即时通信技术——WebRTC

WebRTC(Web Real-Time Communication)是一个开放的项目,旨在在网页端提供实时的音频、视频和数据通信,不需要插件或其他附加软件。它是由Google主导,并在Mozilla、W3C和IETF等组织的支持下开发。WebRTC的目标是使浏览器成为实时通信的强大平台,支持点对点(peer-to-peer)通信。官方网址:https://webrtc.org/WebRTC中文网 https://webrtc.org.cnWebRTC官网 https://webrtc.org/

qq_42241500的博客 6342

srs配置WebRTC

1. WebRTC简介 由Google发起的实时通讯解决方案,其中包含视音频采集,编解码,数据传输,和音视频展示等功能 不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通 Web开发者可以基于集成WebRTC的浏览器提供的web API开发基于视频、音频的实时通信应用。 WebRTC基于UDP 2. SRS配置WebRTC srs4.0开始陆续支持WebRTC的推流和播放功能 发展如下所示 SRS 4.0.14,

a18796007675的博客 3996

webRTC入门: 打包webRTC库应用到自己的工程中

打包webRTC库在linux下打包webRTC库链接到自己的工程中webRTC Linux SDK编译静态库webRTC指定target_os为Linux后,根据gn的编译规则 并不像android那样会生成动态库so。想要使用webRTC库 需要自己提取静态库静态库分布打开webRTC SDK目录 cd out/linux 编译目录下会生成例如peerconection_client这样的

sliver.chen的博客 8267

什么是WebRTC?零基础快速入门:架构分析、基本概念、连接流程

WebRTC(Web Real-Time Communication)是一个用于浏览器和移动应用程序的技术,允许在不使用插件的情况下实现点对点的音视频通信和数据共享。WebRTC 是一个复杂的技术栈,涉及多个概念,如RTCPeerConnection、Stream、Track、Channel、ICE等概念。以下将对WebRTC的架构、关键概念及连接建立流程进行介绍。

weixin_46056189的博客 8443

webRtc与H264的那些事

为什么webRtc使用H264会黑屏? WebRTC 自诞生之日起, 就代表了实时通信领域的最好的技术. 不过很长时间里, 它所支持的视频编码器只有VP8, 后来随着H265/VP9为代表的下一代视频编码器的诞生, WebRTC里出现了VP9 Codec. 而当前应用最广泛的H264 却一直不受待见. 一直到Cisco 宣布旗下的H264 Codec开源为OpenH264, 并且替所有OpenH264的使用者支付了H264的专利费, 以次为契机, 在IETF的WebRTC会议中, 把H264和VP8都列入

zhuchengcheng1992的博客 2360

webrtc基本流程与使用

WebRTC(Web Real-Time Communication)是 Google于2010以6829万美元从 Global IP Solutions 公司购买,并于2011年将其开源,旨在建立一个互联网浏览器间的实时通信的平台,让 WebRTC技术成为 H5标准之一。感兴趣的小伙伴可以看官网()的介绍。WebRTC是一个免费的开放项目,它通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能。并不受限于传统互联网应用或浏览器的终端运行环境。

mabc1234的博客 6269

WebRTC 是什么意思?webrtc是什么技术,WebRTC插件会泄漏什么信息(webrtc原理,webrtc协议)

WebRTC是一种浏览器插件,通常被需要快速直接连接的网络应用程序所应用。WebRTC通过UDP协议来建立连接,因此它并不会通过你在浏览器配置文件中使用的代理服务器进行路由。即便您使用了代理,网站也能借此获取您真实的公共和本地IP地址。该插件可被用于泄漏你的本地IP地址或追踪媒体设备。 如何避免WebRTC读取ip地址 WebRTC协议可以绕过代理取到一些本机的网卡IP和真实的上网公网IP地址,那么我们可以使用替换模式来让网站取到我们指定的IP信息,或用禁用模式,让被访问的网站不能通过WebRtc协议来

baijiawang123的博客 1490

WebRTC Adapter:跨浏览器兼容的WebRTC解决方案

WebRTC Adapter 是一个用于隔离应用程序与WebRTC规范变化和浏览器前缀差异的垫片(shim)。尽管现代浏览器中的前缀差异已经大部分消失,但不同浏览器之间的行为差异仍然存在。WebRTC Adapter 旨在解决这些问题,确保您的WebRTC应用程序在不同浏览器中表现一致。该项目最初是WebRTC组织在GitHub上的一个子项目,现已独立出来。我们致力于保持旧仓库与新版本的同步更新。

m0_74823317的博客 1026

【WebRTC】M1 iOS编译WebRTC.framework与WebRTC.xcframework

iOS编译WebRTC Error: Command 'python3 src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth --bucket chromium-browser-clang ERROR at //build/config/ios/ios_sdk.gni:139

熊猫是只大老鼠的博客 1497

WebRTC[16]-WebRTC与VoIP的对比

在行业有些混乱的今天,WebRTC已经成为除了传统的Voice over IP 和 Video over IP (V.VoIP)之外的又一个可行的基于IP的通信解决方案。凭借雄厚的产业后盾,WebRTC正在被大力推广。这些技术是互补还是竞争?他们能够共存吗?他们如何共存并惠及最终用户?他们各自的用处是什么?何处有重叠? 目前,很多应用WebRTC的场景中,音频处理方面都使用......

liuzhen007的专栏 4238

webrtc系列1—— webrtc入门知识

文章目录1. 什么是WebRTC2. WebRTC框架介绍详细组件介绍3. 模块细致讲解国内方案厂商WebRTC发展前景文章借鉴: 1. 什么是WebRTC WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳...

大帅在唱歌 8214

语言 拉丁超立方抽样_医学统计与R语言:间断时间序列分析(Interrupted time series regression)...

微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发Interrupted time series (ITS) analysis is a valuable study design for evaluating the effectiveness of population-level health interventions that have been implemented...

weixin_29300805的博客 3706

电子设计实战:用MOS管手把手搭建D触发器电路(含时序分析避坑指南)

本文详细介绍了如何使用MOS管从零开始搭建D触发器电路,重点解析了建立时间和保持时间等关键时序参数对电路稳定性的影响。通过实测波形分析和避坑指南,帮助电子工程师掌握D触发器的实际搭建技巧与优化方法,提升数字电路设计的可靠性。

x1y2z的博客 1163

WebRTC

WebRTC是一种开源实时通信技术,支持浏览器和移动应用直接进行点对点音视频通信与数据共享。其核心特点包括: 技术层面:实现NAT穿透、内置多种编解码器、默认端到端加密 应用场景:覆盖视频会议、在线教育、社交娱乐、远程协助等领域 显著优势:无需插件、开源免费、低延迟(50-200ms)、简化API开发 现存挑战:网络环境依赖、浏览器兼容性差异、复杂群聊优化不足 与WebSocket相比,WebRTC更专注于音视频传输,采用P2P架构和专门媒体协议,而WebSocket适用于通用双向数据通信,采用客户端-服务

Made In SQL 2757

MTK MT6833平台屏幕与TP驱动移植实战:从FAE伪代码到内核模块集成

本文详细介绍了在MTK MT6833平台上进行屏幕与TP驱动移植的完整实战流程。文章从解析供应商提供的初始化伪代码入手,逐步拆解了在LK阶段点亮屏幕、在内核层集成Panel驱动以支持休眠唤醒,以及移植并调试sitronix_ts触摸驱动的核心步骤与关键技巧,为嵌入式开发人员提供了从零到一集成新硬件的清晰指南。

rnn9storyteller的博客 441

H5播放webrtc视频

一、简介 WebRTC概念 WebRTC是由Google主导的,由一组标准、协议和JavaScript API组成,用于实现浏览器之间(端到端之间)的音频、视频及数据共享。WebRTC不需要安装任何插件,通过简单的JavaScript API就可以使得实时通信变成一种标准功能。 为什么使用webrtc 现在各大浏览器以及终已经逐渐加大对WebRTC技术的支持。下图是webrtc官网给出的现在已经提供支持了的浏览器和平台。 二、H5播放webrtc webrtc播放经过不断探索,基本上没有现行的库来直接播放

lixiang987654321的专栏 1万+

面向网络攻击行为可视化分析系统实现【WebSocket + 可视化】

本系统主要应用于网站运维管理,它解决了网站运维人员排查网络攻击行为复杂且繁琐等问题,提高了运维人员网络安全分析的效率和准确性。

oNew_Lifeo的博客 1622

【python数据处理】python实现vlookup字符串模糊匹配及在实战中的应用(FuzzyWuzzy库)

利用FuzzyWuzzy库匹配字符串1. 背景前言2. FuzzyWuzzy库介绍2.1 安装2.1 fuzz模块2.1.1 简单匹配(Ratio)2.1.2 非完全匹配(Partial Ratio)2.1.3 忽略顺序匹配(Token Sort Ratio)2.1.4 去重子集匹配(Token Set Ratio)2.2 process模块2.2.1 extract提取多条数据2.2.2 extractOne提取一条数据3. pandas实战应用3.1 公司名称字段模糊匹配3.1.1 参数讲解:3.1.2

lys_828的博客 8322

WebRTC 方案全面介绍

WebRTC(Web Real-Time Communication)是一种支持浏览器和移动端实时音视频通信的技术。

专注前端开发领域,深耕 Python AI Agent应用开发,热爱探索 Web 与人工智能的前沿技术。 1531

分析4-20mA检查电路分析

本文介绍了一种工业领域常用的4-20mA电流信号调理电路,可将标准电流信号转换为适合MCU采集的电压信号。电路包含三个关键模块:首先通过10Ω取样电阻将4-20mA电流转换为0.04-0.2V电压;然后采用同向比例运算放大器KTA333-ST5进行信号放大;最后通过二阶有源低通滤波器滤除工业环境中的高频干扰。文章详细分析了各模块的工作原理和参数设计,并以压力传感器和温度变送器为例说明了实际应用中的参数调整方法。该电路具有抗干扰能力强、精度高等特点,适用于工业压力、温度等模拟量信号的采集处理。

qq_37999850的博客 1331
上一篇: WebRTC 历史
下一篇: 原生App(nativeapp) Web App定义
simon2014
博客等级 码龄8年 5粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值