信息和建议 - hallychou/ALVR-QIYU GitHub Wiki
个人电脑
- 高端 PC 是一项要求;ALVR 不是 PCVR HMD 的廉价替代品
- ALVR 分辨率配置和 SteamVR 多重采样可用于影响质量,从而影响性能,反之亦然
- 频繁的丢帧可能会导致 ALVR 体验不佳;这可以使用 OVR 高级设置等工具进行验证
- 比特率越高,延迟就越高
- 确保所有相关软件都是最新的;尤其是图形和网络驱动程序
- 一个好的起点是 100% 分辨率和 30mbit- 200kb 缓冲区设置。在此配置中,它应该是黄油平滑的,几乎没有延迟或数据包丢失;此时看到的数据包丢失可能是网络问题的结果
网络
- 强烈建议从 PC 到网络的有线连接
- 建议使用至少支持 802.11AC(最好是 802.11AX)并定期更新固件的现代中高端路由器和/或接入点
无线电
一般 WiFi 配置最佳实践:
- 任何可以布线的设备都应该是;每个无线设备都会减慢整个无线网络的速度
- 设备应具有最少的障碍物,并尽可能靠近接入点或路由器
- 应禁用任何其他无线网络(例如:打印机的默认无线网络);每个网络都会减慢其他网络的速度
- 任何不需要高速但支持高速的设备(例如:恒温器)都应使用 2.4Ghz;通常中高端接入点和路由器支持“强制”客户端使用 2.4Ghz 的方法,有些甚至可以根据信号强度和连接速度自动执行
- 只应启用必要的 WiFi 修订版;较旧的标准(如 802.11B、802.11G 和较小程度的 802.11N)会降低所有客户端的速度
- 需要高速的设备应使用:
- 仅限 5Ghz
- 最新的 WiFi 规范(802.11AX,然后是 802.11AC)
- 在大多数环境中,可能的最大信道宽度(802.11AX 为 160MHz,802.11AC 为 80MHz)(注意:默认情况下,某些供应商不会将其设置为最大值)
- 最低的利用率,其次是尽可能低的通道数(子频率)
- 手动选择频道只能在噪音极度的地方进行,或者在较旧、质量较低或 ISP 提供的接入点或路由器上进行;现代中高端路由器和接入点应该可以很好地优化其信道,并且由于其他路由器和客户端的“信道跳转”,静态设置通常不太理想
- 如果绝对需要特定的 WiFi 信道范围,请使用手机或 PC 上的 WiFi 扫描工具来确定最少使用的信道;中高端接入点和路由器也可能为此提供接口,但是,这有时会导致扫描时断开连接
- 手动选择 wifi 信号强度只能在噪音极大的地方进行;现代路由器和接入点在这方面做得很好,这是一项复杂的任务
- 如果需要特定的发射功率,请记住,更强并不总是更好;随着发射功率的增加,失真可能会增加(导致_速度降低_),客户端的电池寿命可能会增加(由于接入点或路由器请求的功率更高),并且可能会出现粘性客户端问题(即使信号不佳,设备也能保持连接到 WiFi)
- 如果您有大量设备,则某些路由器和接入点支持通话时间公平性等功能,这有助于限制较慢的客户端占用的通话时间,从而提高高速客户端的性能
配置无线网络和设备时要记住的事项:
- 同一频率上的所有设备会相互影响(包括同一信道上的其他 WiFi 网络),因为一次只有一个设备可以发送或接收数据,这意味着:
- 如果一台设备大量使用 WiFi,则会影响所有其他客户端的延迟和吞吐量
- 如果连接了速度较慢的设备,则仍可能需要大量的“通话时间”(该专用客户端向接入点或路由器传输/接收数据的时间),即使它的速度比其他客户端慢
- 每个连接的设备都需要额外的时间,无论它是否正在使用(并且设备在空闲时通常会发送少量数据,用于 NTP 和 DHCP 等操作)
- WiFi 本质上是半双工的,因为它是射频,这意味着数据只能在同一频率上传输或接收,而不能同时在两者上传输或接收;双绞线(铜质以太网电缆)为全双工
- 无线频段(例如:2.4Ghz、5Ghz)具有单独的信道,可以根据需要静态分配这些信道,但这些信道并不相互排斥,这意味着信道会显著重叠并相互干扰
- 世界不同地区支持不同的频道(子频率);在这些地区销售的设备通常被锁定到这些频道(例如:在美国,2.4Ghz 频道 12 - 13 仅用于低功耗,频道 14 仅供军事和 EMS 使用)
- 不同的无线设备支持不同的频率、标准、速度和功能;利用这些是您获得最佳性能的关键
路由 / 交换 / 防火墙 / 一般信息
- 理想情况下,客户端和服务器应位于同一逻辑(第 2 层)网络和子网上;这允许没有路由开销,并且通过 mDNS 实现客户端发现的正确功能
- 双绞线(普通铜质以太网电缆)不应与电源线一起运行;这可能会导致信号噪声,并导致丢帧和降低自动协商速度
- 现代网络应使用高质量的 CAT5E 或更高(最好是 CAT6A 或 CAT7)布线
- 在某些情况下,防火墙、防病毒软件、恶意软件或 EDR(增强检测和响应)软件可能会干扰网络流量;据报告,Windows Defender 和 Sophos Endpoint Protection 可以正常工作,没有问题
- 应尽可能禁用暂停帧,因为这会带来额外的延迟和缓冲
有人就其中的一些观点发表了几篇博文:imaginevrresearch – ImagineVR R&D Blog
FingrMastr Linux的
一些观点来自编码器要求
ALVR 对所有编码器(AMF 除外)都使用 FFmpeg,因此您需要确保您选择的编码器与 FFmpeg 兼容。 始终查阅仪表板中的 Log 选项卡,它会告诉您编码器初始化失败的原因。
VAAPI (AMD/Intel GPU)
需要 libva 和适合您的 GPU 的驱动程序。使用以下命令检查编解码器支持 :vainfo
$ vainfo 130 ↵ !10090Trying display: waylandvainfo: VA-API version: 1.16 (libva 2.16.0)vainfo: Driver version: Mesa Gallium driver 23.0.0-devel for Radeon RX 7900 XTX (gfx1100, LLVM 16.0.0, DRM 3.49, 6.1.1-zen1-1-zen)vainfo: Supported profile and entrypoints VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc
需要 VAProfileH264High、VAProfileHEVCMain、VAProfileHEVCMain10 编码器 (VAEntrypointEncSlice)。如果您没有看到这些 在你的输出中,你的驱动程序安装不正确,或者你的发行版决定构建没有非自由编解码器的 MESA。
测试 ffmpeg 命令
# H264
ffmpeg -vaapi_device /dev/dri/renderD128 -f lavfi -i testsrc -t 30 -vf 'format=nv12,hwupload' -c:v h264_vaapi vaapi-h264.mp4
# HEVC
ffmpeg -vaapi_device /dev/dri/renderD128 -f lavfi -i testsrc -t 30 -vf 'format=nv12,hwupload' -c:v hevc_vaapi vaapi-hevc.mp4
AMF (AMD GPU)
AMF 需要专有的 Vulkan 驱动程序 amd-pro。对系统上的 AMF 安装进行故障排除超出了本文的范围,但您可以 可以使用 amf-test。HEVC 仅在 RDNA 和更新的 GPU 上受支持。
在尝试让它与 ALVR 一起工作之前,请确保 amf-test 成功。 您需要告诉 ALVR 在哪里可以找到 amd-pro 驱动程序,编辑您的 SteamVR 启动命令(根据需要更改路径 适用于您的系统): env ALVR_AMF_ICD=/path/to/amd_pro_icd64.json %command%
ALVR 现在应该能够使用 AMF。
NVENC (NVidia)
需要 libcuda。
测试 ffmpeg 命令
# H264
ffmpeg -f lavfi -i testsrc -t 30 -vf 'format=nv12,hwupload' -c:v h264_nvenc nvenc-h264.mp4
# HEVC
ffmpeg -f lavfi -i testsrc -t 30 -vf 'format=nv12,hwupload' -c:v hevc_nvenc nvenc-hevc.mp4
软件(所有 GPU)
软件编码器主要用作后备,因此应该可以在所有 GPU 上运行,没有任何要求。 目前仅支持 H264 编码。 旧版重新投影
默认情况下,SteamVR 仍将对所有游戏使用异步重投影,这可能会导致以下问题:
- 鬼 影
- 跳跃帧率
- 紧张的运动
- 一般不光滑 以及所有其他类型的问题。在 SteamVR 的按游戏视频设置中打开 Legacy Reprojection 将有效地禁用 任何重新投影都会使体验变得更好。