博人眼球:用WebGL和WebRTC建造线上影院(下)

获取媒体设备 尽管此应用出现在众多WebRTC入门教程的主题中,但它要解决的一大难题是首先获取用户的摄像头和麦克风许可。当然,大多数时候该操作都很简单——只需await navigator.mediaDevices.getUserMedia({ audio:true, video: true }),然后若用户认可你的应用程序,你会收到一个可在< video>元素中查看,或通过RTCPe

博人眼球:用WebGL和WebRTC建造线上剧院(上)

简介 毫无疑问,我们过去几个月的生活与预期中的大相径庭。3月初隔离开始,我所有的投影设计工作都被取消了。我和几个好朋友商议建立一个网络非线性剧院体验软件。许多人已经尝试在Zoom上演出了,而且他们发现了许多有趣巧妙的Zoom使用方法。我认为只要我们设计出自定义视频会议应用程序,就能大放异彩。 这一切的起源——谷歌文档 天方夜谭?10年前或许是这样。但是现在Web平台快速发展,手机的摄像头和硬件的质

WebRTC+MongoDB+Vue+Docker:全栈用开源项目,实现一个Slack

现在聊天和视频会议应用火遍全球。 Slack、Microsoft Teams、Zoom、Google Meet、Facebook Rooms等应用程序越来越受欢迎。这是因为Covid-19大流行,我们所有人不得不呆在家里,所以掌握在线工作和协作的能力变得非常必要。聊天和视频会议应用解决了我们的困境,并提供了有效的远程团队协作工具,所以其用户和收入有了巨大增长。 虽然大多数这样的应用程序都提供免费选

用WebRTC的Insertable Streams API把元数据添加到媒体帧

以前,许多WebRTC功能只有在本机应用程序中才能使用,包括带有修改后的Chromium代码的电子应用程序。 如今,借助WebRTC NV API,其中一些程序已经可以在Web应用中使用了。上周我们发布了与Google合作开发的SFrame E2EE,多亏Insertable stream,其部分功能在Web可用了,现在我们就可以给大家展示另一个以前在Web应用程序中几乎不可能实现的功能。 受合作

使用WebRTC Insertable Stream实现端对端加密(二)

反复改进 有了一个可以正常工作的示例(因为音频还不能用,所以最初只是视频形式)后,我们快速迭代了一些改进工作。例如密钥更改和解码帧头,后者看起来非常有趣。以前,在接收到加密的帧后,虚拟middlebox的解码器仅抛出错误,图片将被冻结。现在,我们利用VP8编解码器的某些属性,不对前几个字节进行加密,使解码器误以为该帧是有效的VP8。 点击此处试用实例。 Insertable Stream在帧上迭代

使用WebRTC Insertable Stream实现端对端加密(一)

几周前,Chrome团队宣布有意进行有关API在blink-dev list中的实验,使其用WebRTC自定义处理。该通告附有Harald Alvestrand编写的解释器文档,该文档显示了API的基本用法。正如我在上一篇文章中提到的那样,这也许能够帮助我们把中间系统方案中的端到端加密(e2ee)添加到WebRTC中。 出于好奇,当jitsi.org的前webrtcHacks客座作者Emil Iv

基于 WebRTC 的云游戏开源项目(四)

用Golang编写CloudRetro 在开发者内部实施Go 启动Go频道 多亏Go的频道设计精美,事件流和并发问题才得以极大简化。如下图所示,在不同的GoRoutine中有多个并行运行的组件。每个组件管理自己的状态,用通道通信。Golang的select语句强制在每个游戏帧时都处理一个基元事件。这意味着此设计不需要锁定。例如,用户要存档时,是需要一张完整的游戏状态快照的。该状态直到保存完成之前,

基于 WebRTC 的云游戏开源项目(三)

WebRTC WebRTC旨在通过简单的API,在本机移动应用和浏览器上实现高质量的端对端连接。 NAT遍历 WebRTC专攻端对端通信,特别以其NAT遍历功能而闻名。它旨在绕过NAT网关和防火墙,找到最合适的直接路由,然后通过名为ICE的进程进行端对端通信。作为此进程的一部分,WebRTC API使用STUN服务器找到您的公共IP地址,并在无法建立直接通信时回退到中继服务器(TURN)。 但是C

基于 WebRTC 的云游戏开源项目(二)

2. 低延迟媒体流 在我研究Stadia时发现,有些文章提到了WebRTC应用。之后我得知WebRTC是一项革新技术,非常适合这个云游戏用例。 WebRTC是一个通过简单的API,为Web浏览器和移动应用程序提供实时通信的项目。它支持端对端通信,优化了媒体,同时还具有内置的标准编解码器,例如VP8和H264。 我认为要优先考虑为用户提供最流畅的体验,而不是保证高质量的图片。所以算法有些损失是可以接

基于 WebRTC 的云游戏开源项目(一)

使用WebRTC开源云游戏(一) 我们把软件、基础架构、平台、通信平台、视频会议作为服务项目,那么游戏是不是也可以这样做呢?在云游戏方面已有类似的尝试,其中最出名的是Google新推出的Stadia。 Stadia和WebRTC是好兄弟了,但其他项目是否可以用同样的方式,利用WebRTC呢? Thanh Nguyen着手研究开源项目CloudRetro是否可行。 CloudRetro基于受欢迎的G