Pixel Streaming
January 11, 2024About 2 min
Pixel Streaming
Pixel Streaming 把 UE 应用跑在带 GPU 的服务器上,把渲染画面编码成视频流推到浏览器,用户端只要一个浏览器就能交互,不用在本地装应用、也不挑客户端机器性能。
环境要求
服务器和客户端规格:
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10,或 Ubuntu 18.04 / 20.04 |
| GPU | NVIDIA GPU(支持硬件视频编码 NVENC),或 AMD GPU(支持 AMF) |
| 客户端浏览器 | Chrome(桌面 + 移动)、Edge(桌面)、Firefox(桌面 + 移动)、Safari(桌面 + 移动) |
| 编码器 | H.264 / VP8 / VP9 |
搭建环境时还需要注意:
- Visual Studio 2022,带最新 Windows SDK。
- 防火墙放行端口:8888、80、443、90、9999、8889(默认配置)。
- 服务器能访问外网 / GitHub(后面要 clone 前端基础设施)。
编码器对比
这张表是这篇笔记的核心。三种编码器各有取舍,编码/解码速度是在 RTX 3060 + AMD 3900X 上测的估值:
| 编码器 | 运行位置 | 编码/解码速度 | 画质 / 优点 | 缺点 | 多 peer 扩展性 |
|---|---|---|---|---|---|
| H.264 | GPU(Nvidia / AMD) | ~4.6ms / ~15.5ms | 编解码快,硬件层面被大量设备广泛支持 | 高压缩下有块状伪影(blocky) | GPU 只编码一路,与 peer 数无关 |
| VP8 | CPU | ~10.5ms / ~25ms | 同等码率下画质更好 | 一般 | CPU 开销随 peer 数线性增长 |
| VP9 | CPU | ~15ms / ~50ms | 三者中同码率画质最高 | 较好 | CPU 开销随 peer 数线性增长 |
几个实际选型经验:
- 1080p 流下,码率提到 20Mbps 以上时,三种编码器画质趋于接近,这时差异主要在速度和资源占用。
- H.264 跑在 GPU 上、且只占一路编码会话(不随 peer 数增加),所以多人连入时它的服务器开销最稳;VP8/VP9 走 CPU,peer 一多 CPU 就线性吃紧。
- 官方推荐用 H.264——这是他们主要开发和测试的编码器。
搭建步骤
获取 UE 引擎源码(Pixel Streaming 需要源码版引擎):从对应版本的引擎分支拉代码,例如 //depot/MyProject/Release-5.2/(P4 服务器形如 <p4-server>:1666)。
获取前端基础设施 PixelStreamingInfrastructure:
git clone https://github.com/EpicGames/PixelStreamingInfrastructure.git
clone 下来后切到对应引擎版本的分支(例如 UE5.2)。仓库地址:https://github.com/EpicGames/PixelStreamingInfrastructure