今天我们来看下基于流式基础的商业化产品的各种情况。
Google Stadia 的崛起与(可预见的)衰落
Google Stadia 最初是谷歌内部的 Project Stream。
从技术上讲,这完全合理。但至少事后看来,商业计划并不完善。谷歌距离游戏、游戏开发者和游戏玩家都还很遥远。
从技术角度来看,其目的是在云机器上运行高端游戏,这些云机器将渲染游戏,然后让某人“远程”玩游戏。用户获得游戏的实时视频渲染并发回控制台信号。这意味着游戏可以尽可能复杂,并从云服务器获得计算能力,同时无论游戏是什么,用户的设备都保持相同的规格。
来源:谷歌
我在图表上添加了来自 Google 的 WebRTC 文本——调用 WebRTC 是为了让玩家可以使用现代浏览器来玩游戏。无需安装。即使在 iOS 设备上也可以很好地运行,而 Apple 坚持要求从通过应用商店销售的任何产品中分得一部分收益。
Stadia 希望解决不少技术难题:
- 在云端机器上运行高端主机游戏
- 远程实时提供这些游戏服务
- 在浏览器(或同等设备)中玩游戏
并且可能还存在相当多的其他挑战(例如,扩展整个系统并弄清楚如何获得和保留如此多的 GPU)。
从技术层面上看,Stadia 是成功的。但从商业角度来看……嗯……它在推出 3 年多后就关闭了——所以不算成功。
然而 Stadia 所做的就证明了这绝对是可能的。
WebRTC、云游戏和实时挑战
为了实现云游戏,谷歌不得不对 WebRTC 进行一些改进。当谷歌的 WebRTC 主要关注 Google Meet 时,他们其实并不需要太多改进。这些改进包括降低延迟、处理更大的色彩空间以及以 60 fps的速度实现 4K 分辨率。他们通过 WebRTC 几乎“免费”获得的是其数据通道——一种将游戏控制器信号从玩家快速发送到云端游戏机的手段。
让我们看看添加另外三件事意味着什么:
4K 分辨率,60 fps
谷歌的目标是高端游戏,这意味着更高的分辨率和帧速率。
WebRTC 非常适合视频会议分辨率。VGA、720p 甚至 1080p。4K 是另一个飞跃。它需要更多 CPU 和更多带宽。
幸运的是,对于云游戏来说,浏览器只需要解码视频,而不需要编码。这意味着,除了确保浏览器能够有效解码 4K 分辨率之外,真正的问题是进行有效的带宽估算。
作为一种算法,带宽估计针对给定场景进行了精细调整和优化。4K 和云游戏是一种新场景,这意味着所需的比特率不是 2mbps 甚至 4mbps,而是在 10-35mbps 范围内。
WebRTC 内置的带宽估算器无法处理这个问题……但 Google 为 Stadia 服务器构建的带宽估算器可以。从技术方面来看,这是因为 Google 依靠使用transport-cc的发送方带宽估算技术而实现的。
更低的延迟:播放延迟
还记得这个图表吗?
WebRTC 是为更低的延迟而设计和构建的,但在亚秒级延迟中,您如何对这 3 个活动的延迟要求进行排序?
- SpaceX 火箭成功着陆
- 玩第一款射击游戏(就我而言,这意味着《毁灭战士》或《雷神之锤》)
- 与潜在客户举行在线会议
多年来,WebRTC 的主要重点一直是在线会议。这意味着 100 毫秒或 200 毫秒的延迟就足够了。
在线游戏?100毫秒便能决定胜负。
因此,Google 尝试通过添加播放延迟的概念来进一步减少 WebRTC 的延迟。这样做的目的是让 WebRTC 知道,应用程序和用例更愿意尽早播放媒体并牺牲更多质量,而不是等待一段时间以获得更好的质量。
更大的色彩空间
视频会议和头像不需要太多。如果你还记得的话,视频压缩的目的是尽可能多地丢失原始视频信号,然后进行压缩。这里的想法是,只要眼睛不会注意到的东西,我们就可以不用。
显然,对于头像节目,我们可以失去更多的“色彩”,但与在线游戏中做类似的事情相比,我们仍然感到高兴。
需要说明的是,如果你在家看过《权力的游戏》,那么你可能还记得上一季的失败,有些剧集最终太暗,不适合在电视上播出。这是由于服务提供商的压缩造成的……
虽然与此处的色彩空间问题不同,但它表明在视频编码中如何处理色彩很重要。而且它因场景而异。
对于游戏来说,需要对色彩空间进行不同的处理。具体来说,从 SDR 转向 HDR,在此过程中添加 RTP 报头扩展来表达附加信息。
–
哦,如果你想了解有关这些变化的更多信息(尤其是分辨率和色彩空间),请务必观看 YouTube 的 Kranky Geek 会议,了解他们为支持 Stadia 而必须做出的改变:
云游戏到底是什么?
事情是这样的。Google Stadia 是游戏和云游戏领域的一个极端。
这些年来,我看到了云游戏的许多其他原因和市场目标。
改善游戏玩法
为什么不能远程与其他人一起玩这些游戏?
我儿子最近和另外 4 个朋友坐在一起,一起在 Xbox 上玩 TMNT 游戏。让他们全都到场真是太好了,但你也可以远程玩。如果游戏不提供远程玩家,通过将其推送到云端,你就可以获得该功能,因为所有用户都会立即成为远程玩家。
在这个阶段,你甚至可以在游戏中添加玩家之间的语音会议或视频通话。只是为了让他们能够像玩 Fortnite 这样的游戏一样进行协作。当然,这需要的不仅仅是在云端进行游戏渲染,但这是可能的,我确实看到这个领域的一些供应商正在这样做。
超越云游戏——虚拟桌面、远程桌面和云渲染
更低的延迟。更大的色彩空间。更高的分辨率。在云端渲染并远程消费。
所有这些并非云游戏所特有的。它们可以轻松扩展到虚拟桌面和远程桌面场景。
您在云端有一台机器——大或小,甚至是一个集群。该“机器”处理计算,并最终将结果呈现到虚拟显示器上。然后,您获取该显示器并将其发送给远程用户。
一个用例可以是远程桌面,例如 VNC。在这里,我们实际上是尝试从一台机器连接到另一台机器,通常采用私密且安全的点对点方式,这与我在这里的目标不同。
另一个较少被提及的是在云端进行 Photoshop 操作之类的操作。对于像我这样没有配备闪亮的 M2 Ultra 芯片的最新 Mac Pro 的可怜人来说,我可能只想在网上“租用”计算能力来完成我的图像或视频编辑工作。
我可能想直接从浏览器打开我想购买的跑车的渲染 3D 视图,并能够围绕汽车移动我的视图。
或者它可能只是一个简单的 VDI 场景,其中公司(通常是一家大型金融机构,但不仅限于此)希望员工在 Chromebook 机器上工作,但不在其中安装或存储任何内容 – 所有这些都通过访问他们自己的公司数据中心或安全云环境中的实际机器和数据来使用。
我的一个好朋友问我该买什么电脑。他需要一台电脑来工作。他是一名律师。我的回答是,你能找到的最低端机器就可以完成工作。我猜这为他节省了不少钱,而且他甚至不会注意到他需要它做什么的差别。
但如果他偶尔需要更多的电量和功率怎么办?在云端租用这些设备能起到作用吗?
那么,是否需要使用难以安装和配置的专用软件?或者需要对大量数据进行大量协作,并需要在协作者之间共享?
采用云游戏的概念和功能并将其应用于非游戏用例可以帮助我们满足其他多项要求:
- 本地机器无法轻易满足的 CPU 和内存要求
- 在家办公环境中维护隐私和公司数据的需求
- 零安装环境,降低维护成本
这些是否一定会在 WebRTC 中发生?不。
WebRTC 能实现这些吗?是的
从专有 VDI 环境转变为浏览器中的开放标准 WebRTC 是否会改善情况?很有可能
为什么在云游戏中使用 WebRTC
那么为什么还要使用 WebRTC 进行云游戏或更通用的云渲染呢?
有了云游戏,我们就可以在一个专用应用程序内进行游戏。所以 WebRTC 并不是必需的。还是说真的有必要?
在我们最近的WebRTC Insights问题之一中,我们强调了Amazon Luna 正在放弃专用应用程序,转而支持 Web(=WebRTC)。摘自那篇文章:
“我们发现,客户使用网络浏览器在 Luna 上玩游戏的时间比在原生 PC 和 Mac 应用程序上玩游戏的时间要多得多。当我们看到客户喜欢某样东西时,我们会加倍努力。我们利用 Luna 原生桌面应用程序提供的全部功能和能力优化了网络浏览器体验,因此客户现在在网络浏览器上使用 Luna 时可以获得完全相同的 Luna 体验。”
对于许多用户来说,浏览器仍然是一种非常受欢迎的替代品。这些也是您的用户吗?
如果您需要或想要通过 Web 浏览器访问云游戏/云渲染应用程序,那么 WebRTC 就是您的最佳选择。这与我对直播的未来的看法略有不同,我当时的观点恰恰相反:
“目前使用 WebRTC 的原因是它是当时唯一的选择。随着基于 WebTransport+WebCodecs+WebAssembly 的解决方案的采用,这种情况很快将发生改变,届时将出现一种用于浏览器直播的 WebRTC 替代方案。”
为什么会有差异?这完全取决于我们愿意承受的延迟:
您所期望的特定延迟可能有所不同,但一般来说,直播可以承受的延迟比我们的在线会议略高。因此,除了 WebRTC 之外,其他技术可以更好地满足这一要求,我们可以对其进行更多微调和调整。
云游戏需要比 WebRTC 更低的延迟。WebRTC 可以满足这一要求。使用其他尚未证实的方法(目前存在一些性能和延迟问题)是错误的方法。至少在目前是这样。
RA/SD 衍生者AI训练营。发布者:稻草人,转载请注明出处:https://www.shxcj.com/archives/6725