Search Results for: HTML5 – Page 2

2020年Google的WebRTC路线图——AI(二)

Duo Duo是Google针对Apple FaceTime推出的一款软件。 它是一款可在Android和iOS上使用的独立视频通话应用程序。但是大多数智能手机均未默认安装该软件。用户需要自己找到它、安装并决定使用它。所以其操作上来说并不简单。 为什么Google没把它设为Android的默认程序呢?可能是Google不想影响用户的使用感(以及Google与用户的关系)。否则对于Google来说,与FaceTime之类的对手竞争就毫无意义了。 言归正传,Duo很受欢迎。即使对于iPhone用户来说也是如此。它在Apple App Store的社交应用程序下载中排名第七,高于用户参与度高的Houseparty(排名17-20间)。这非常有趣。 Google没有分享任何Duo使用情况的统计信息。我们只知道下载次数和对其进行排名的人数。但这两个统计数据对社交网络来说不足以证明什么。所以这充分说明了Duo的实际使用情况。因为不公布这些数据就意味着Google无法在这项上与竞争对手持平。 我很好奇,所以在Twitter上开展了一项快速调查: 这项调查虽不足以作为论据,但是值得一看。 鉴于我的粉丝

TCP中服务器WebRTC的通道质量指标(一)

发布和播放 在流视频领域,WebRTC服务器端有两个主要功能:发布和播放。需要发布时,WebRTC从网络摄像机捕获视频流,并将其从浏览器移动到服务器。需要播放时,视频流从服务器移动到浏览器,在设备浏览器的HTML5的“video”进行解码,然后播放。 UDP和TCP 视频可以通过两种传输协议(即TCP或UDP)移动。用UDP协议的话,NACK RTCP反馈会主动工作,并携带丢失数据包的相关信息,这使得检测UDP信道恶化非常简单,即对NACK(Negative ACK)进行计数以确定质量。NACK和PLI(Picture Loss Indicator)反馈越多,实际损耗就越多,信道质量也越低。 没有NACK的TCP 本文重点讨论TCP协议。在TCP上使用WebRTC时不会发送NACK RTCP反馈。即使发送了NACK RTCP反馈,也无法反映损耗的真实情况,所以我们无法通过反馈来确定信道质量。但众所周知,TCP是可以保证传递的传输协议。因此,我们会通过TCP发送网络中的其余数据包以防信道质量下降。这些数据包迟早会被交付,但这些损失不会导致NACK的产生,因为实际上并没有损失。所以,这些数

Discord如何使用WebRTC为两百五十万同时在线用户提供语音服务(二)

为我所用 由于我们可以控制本机库,因此我们在本机应用程序中所做的某些操作与您在浏览器的WebRTC中所看到的有所不同。 首先,WebRTC根据SDP在用户之间传输音频/视频信息(往返大小可能接近10 KB)。WebRTC本机库使我们能用WebRTC(即webrtc :: Call)中较低级别的API来创建发送流和接收流。在加入语音通道时,我们交换的信息量很少,包括语音后端服务器的地址和端口、加密方法和密钥、编解码器以及流标识(大约1000个字节)。 此外,WebRTC使用ICE来确定参与者之间的最佳通信路径。由于每个客户端都连接到了我们的媒体中继服务器,因此我们不需要ICE。当您处于NAT时,我们可以提供更可靠的连接,并且使您的IP地址不对通道中其他人可见。客户端会定期发送ping消息,以确保防火墙始终保持打开状态。 最后,WebRTC使用SRTP进行媒体加密。密钥使用DTLS设置,DTLS是基于用户每天在浏览器中使用的传输层安全性协议运行的。本地WebRTC库让您可以使用API webrtc :: Transport来建立自己的传输层。 而我们决定使用更快的Salsa20代替DTLS

我们如何使用IoT和计算机视觉为远程工作人员构建替代机器人(二)

在商量如何解决此问题时时,我们想到了WebRTC,它可以满足我们的要求。 WebRTC适用于网真、对讲及VoIP软件,因为它具有非常强大的标准和现代协议,功能种类众多并可与Firefox、Chrome、Opera等各种浏览器兼容。 WebRTC在UV4L流媒体服务器中的扩展允许用户按照WebRTC协议的定义,实时从音频、视频和数据源中传输多媒体内容流。 具体来说,我们使用了UV4L中包含的WebRTC扩展。该工具使我们能够在机器人与远程工作人员的计算机之间以极低的延迟创建双向通信。 只要我们启用含WebRTC扩展的UV4L服务器,我们就能从RaspberryPi找到一个web app。然后我们只需用远程工作人员的浏览器访问app即可建立实时的双向通信。多简单! 这使我们能够设置一个从PiCamera到浏览器的视频单向通道;一个音频双向通道;以及一个额外的单向通道来从浏览器向机器人发送指令。 建立UI来管理通讯 为了方便远程工作人员查看数据并发送命令,我们对如何将这些功能集成到可访问且实用的前端中进行了一定研究。 受来自UV4L项目的Web app的启发,我们将上述数据通道集成到一个功能

WebSockets vs 长轮询(一)

如何在两者之间做出选择?   有时我们需要服务器提供的信息。我们习惯的通常的AJAX请求/响应不会为这种情形保持连接处于打开状态。相反,我们需要基于推送的方法,比如WebSockets,长轮询,服务器发送事件以及最近的HTTP2推送。本文中,我们比较了两种方法:WebSockets与长轮询。   长轮询概述   1995年,Netscape Communications聘请Brendan Eich在Netscape Navigator中实现脚本功能,在十天的时间里,JavaScript语言诞生了。与现代JavaScript相比,它作为一种语言的功能最初非常有限,并且它与DOM交互的能力更加有限。JavaScript主要用于提供有限的增强功能来丰富文档功能。例如,浏览器内表单验证和动态HTML轻量级插入现有文档。   随着浏览器战争升温,微软的Internet Explorer达到4以及更高版本,对最强大功能集的争夺导致微软推出了最终成为XMLHttpRequest的东西。十多年来,所有浏览器都普遍支持这一点。 长轮询本质上是原始轮询技术的一种更有

Distord如何使用WebRTC处理250万用户同时进行的音频交流

在最开始,我们在产品方面做出了用户可以感受到的改变,这让你与朋友玩游戏时,Discord非常适合你们之间的语音交流。这些决定让我们在资源有限并且团队比较小的情况下扩大了经营。 本文简要介绍了Discord使用的不同技术,来让视频音频交流达到接近现实的效果。 为了区分,我们将会使用guild来代表一组用户和频道-在客户端它们被称为servers. Server被用来描述我们的后端架构。 Guilding 原则 Discord中所有音频视频交流都是多方的。支持大规模组内交流需要客户端-服务器的网络架构因为当参与者人数增多时,点对点网络变得非常昂贵。 通过Discord servers发送你所有的数据同样确保在输入文本,声音或视频时你的IP地址不会被泄露,这防止了其他人找到你的IP地址并且创建DDoS来攻击你。通过媒体服务器发送具有其它优势,例如对于使人讨厌的参与者,管理员可以选择禁止他的音频视频交流。 客户端架构 Discord在许多平台上运行: 1.网页 (Chrome/Firefox/Edge, etc.) 2.脱机app(Windows, MacOS, Linux) 3.手机(iOS

WebRTC和WebVR视频通话

Web平台上的WebRTC并不是其唯一的媒体API。WebVR说明书于几年前被引入来为浏览器中的虚拟现实设备提供支持。目前已经变为新的WebXR设备API说明书。 今年夏天我在ClueCon,Dan Jenkin说使用WebVR,FreeSWITCH向虚拟现实环境中添加一个WebRTC视频会议流是相对简单的。FreeSWITCH是一个流行的开源电话平台,并且已经拥有WebRTC有几年时间了。WebRTC, WebVR,开源-很明显这是很好的webrtcHacks材料。 Dan是一个Google开发专家,他喜欢讲将最新的Web API和RTC App结合起来. 以下文章给出了他的代码来说明他是如何使用WebVR将FreeSWITCH Verto WebRTC视频会议转变成虚拟现实会议的。 几周之前,我参加了一个关于WebRTC和WebVR的ClueCON开发者会议。将VR内容加入你的浏览器和移动电话会增加App的潜力,吸引跟多人。在过去的两三年内,伴随着Google的Cardboard,VR对于手机来说已经可以负担得起,并被广泛使用,同时Oculus Go完全不需要移动设备。我想探索对于

什么是WebRTC,如何避免3个最致命陷阱?

原文标题:What is WebRTC and How to Avoid its 3 Deadliest Pitfalls 作者:‘Dmitry Davidov’ 什么是WebRTC,如何避免3个最致命陷阱? WebRTC是一个可以使我们在浏览器或移动App中直接进行音频/视频交流的技术,例如Google Hangouts, Facebook Messenger, 和Discord.另外,它还可以进行P2P文件共享,处理大量音频数据,实现在线视频会议等等,但是当我们到达WebRTC的底层时,事情变得复杂起来。 关于我们WebRTC APP的故事起始于2018年2月份,简单来说,一个叫Redacted的人在开会时想要我们实现一个具有redacted特性的redacted APP。你可以将它理解为实时视频交流。 陷阱1:不理解WebRTC技术。 起初,我们对WebRTC没有任何实际经验。尽管2011年就发布了WebRTC,但是它的想法包含了许多已经建立的领域,例如VoIP交流,网站开发, 视频流等等。 但是WebRTC是一种新技术,它在浏览器中的实现经常变化,你所了

Google Chrome: Flash的使用量从2014年的80%已经下降到今天的8%

作者:Catalin Cimpanu(原文链接) 翻译:刘通 原标题:Google Chrome: Flash Usage Declines from 80% in 2014 to Under 8% Today 据调查,每天至少加载一个包含Flash内容网页的Chrome用户比例从2014年的80%左右下降到2018年初的8%以下。 Google工程总监Parisa Tabriz上周在圣地亚哥召开的网络和分布式系统安全研讨会(Network and Distributed System Security Symposium,NDSS)的主题演讲中,公开了这些关于Flash数量下降的统计数据。 Tabriz,Google中负责Chrome安全的大佬之一,正在谈论Chrome和Web平台中安全功能的发展。所以意料之中地,她提到了Flash。 Adobe将在2020年底停止对Flash的支持 Flash的消亡是可以预料到的。Adobe去年宣布计划在2020年底之前停止支持Adobe Flash Media Player。 虽然Chrome,Firefox,Edge和所有主流浏览器从去年开始已

WebRTC adapter.js是什么以及我们为什么需要它?(一)

作者:Tsahi Levent-Levi,Philipp Hancke(原文链接) 翻译:刘通 原标题:What is WebRTC adapter.js and Why do we Need it?   adapter.js是结合你代码和不同浏览器的WebRTC实现的粘合剂。 本篇文章是和Philipp Hancke一同撰写的。在过去两年中,他一直在助理adapter.js的发展,所以邀请他来完成本文章的一大部分内容是非常合适的。你可以在这里看到他的其他文章作品。 这是在我最开始研究WebRTC的时候做的一个图: 这里的主要概念是展示WebRTC与传统VoIP的不同之处。 在传统VoIP中,你有多个供应商实施该规范,希望实现能够相互协作。如果你知道一个VoIP的实现,它也不代表你也能了解另一个VoIP的能力。 WebRTC有所不同,它有很多概念都没有规定,但也规定了HTML5;我的意思是让每个开发人员都可以使用一个API将交互式语音和视频添加到他的应用程序中。 getUserMedia,PeerConnection和数据通道都是WebRTC中指定的API。而这也创造了一个生