PixelStreamingInfrastructure统计面板与延迟测试:7大指标精准诊断你的云流质量

PixelStreamingInfrastructure统计面板与延迟测试:7大指标精准诊断你的云流质量 PixelStreamingInfrastructure统计面板与延迟测试7大指标精准诊断你的云流质量【免费下载链接】PixelStreamingInfrastructureMoved to: https://github.com/EpicGamesExt/PixelStreamingInfrastructure项目地址: https://gitcode.com/gh_mirrors/pix/PixelStreamingInfrastructurePixelStreamingInfrastructure 是一款面向 Unreal Engine 的开源云串流Pixel Streaming基础设施项目其内置的统计面板Stats Panel与延迟测试Latency Test工具是诊断云串流质量最直接的入口。本文带你用 7 大核心指标快速定位画面卡、延迟高、画质糊究竟出在客户端、网络还是串流端Streamer⚡ 30秒找到统计面板从齿轮图标开始在播放器页面Player Webpage的工具栏上有一个齿轮样式的 Information 图标——点击它即可打开统计面板。面板内的数据由前端自动周期性刷新无需手动触发。面板分为三个区域Session Stats会话统计本文主角7 大指标都在这里Latency Test端到端延迟测试按钮Data Channel Latency Test数据通道延迟测试按钮 面板 UI 实现见Frontend/ui-library/src/UI/StatsPanel.ts统计图标见Frontend/ui-library/src/UI/StatsIcon.ts 7大指标云串流质量诊断完整清单#指标面板名称含义何时需要警惕1帧率Framerate浏览器每秒实际收到/解码的帧数明显低于项目设定的目标帧率如 60→402丢帧数Frames dropped解码阶段被丢弃的帧持续增长说明客户端解码能力不足3丢包数Packets Lost网络传输中丢失的数据包仅 Chrome 显示非零且持续上涨网络质量差4视频码率Video Bitrate (kbps)当前视频流的实时码率过低→画面糊剧烈波动→网络不稳5网络往返时延Net RTT (ms)客户端与 Streamer 之间的网络 RTT高于 100ms 时体感延迟明显6视频量化参数Video quantization parameter (QP)编码压缩强度值越高画质越差见下方QP 红绿灯7端到端延迟Total latency (ms)从 UE 捕获画面到浏览器上屏的总耗时交互类应用建议控制在 100ms 内 QP 红绿灯播放器右下角还有一个 Wi-Fi 信号样式的小图标它是 QP 的可视化红绿灯源码Frontend/ui-library/src/UI/VideoQpIndicator.ts绿色QP ≤ 26画面清晰Clear encoding quality橙色26 QP ≤ 35出现马赛克/色块Blocky encoding quality红色QP 35编码质量差通常意味着带宽不够编码器被迫加大压缩除了 7 大核心指标面板还会顺带展示接收数据量Received、音频码率、视频分辨率、编解码器、会话时长、是否已接管输入Controls stream input、当前在线玩家数等辅助信息。⚙️ 统计面板的数据从哪来WebRTC getStats 原理30秒版不需要理解 WebRTC 细节也能用但知道原理能帮你少踩坑浏览器侧通过 WebRTC 原生的getStats()周期性获取传输报告调用点在Frontend/library/src/PeerConnectionController/PeerConnectionController.ts第 178 行附近报告被 AggregatedStats 聚合成结构化数据——视频码率就是用两次采样间的8 × Δ字节数 / Δ时间戳计算出来的AggregatedStats.ts的handleInBoundRTP方法聚合结果交给StatsPanel.handleStats()渲染到页面上所以部分指标标注 Chrome only如丢包数、分辨率、解码帧数是因为其他浏览器的 getStats 报告里缺少对应字段这是正常现象不是 Bug。 延迟测试一端到端延迟分解Total Latency在统计面板的Latency Test区域点击Run Test前端会向 UE 端发起一次带时间戳的探测帧并自动算出 7 段延迟结果渲染逻辑见Frontend/ui-library/src/UI/LatencyTest.tsNet latency RTT (ms)纯网络往返时延UE Capture (ms)UE 内捕获画面的耗时UE Encode (ms)编码器把画面压成视频包的耗时Browser send latency (ms)浏览器发送端处理耗时Browser receive latency (ms)浏览器接收端处理耗时Total latency (excluding browser) (ms)排除浏览器后的服务端网络总延迟Total latency (ms)端到端总延迟体感卡顿延迟看这一个就够时间戳字段定义见Frontend/library/src/DataChannel/LatencyTestResults.ts。⚠️ 若 Run Test 按钮被置灰并提示 Disabled by -PixelStreamingDisableLatencyTestertrue说明 UE 工程以-PixelStreamingDisableLatencyTestertrue参数启动主动关闭了该功能配置处理见StatsPanel.ts的configure方法。 延迟测试二DataChannel 延迟 CSV 一键导出Data Channel Latency Test则测量数据通道输入/消息通道的质量这对操作跟手性至关重要。点击 Run Test 后默认以1 秒 × 10 次/秒 × 200 字节的轻量负载持续打点默认参数见StatsPanel.ts第 144–150 行结束后输出Data channel RTT (ms)数据通道往返时延Player to Streamer path (ms)/Streamer to Player path (ms)双向单程耗时需两端时钟同步时才显示测试结果还能点Download按钮导出 CSV 明细data_channel_latency_test_results.csv方便贴到表格里做趋势分析。核心算法见Frontend/library/src/DataChannel/DataChannelLatencyTestController.ts。 快速排障症状 → 该先看哪个指标遇到玩家反馈问题时按这张表对症下药能少走 90% 的弯路玩家反馈优先查看常见根因画面卡顿、掉帧帧率 丢帧数Streamer 渲染跟不上 / 客户端解码能力不足画面花屏、断流丢包数 Net RTT网络不稳定考虑加 TURN 中继画面发糊、马赛克QP 红绿灯 视频码率带宽受限编码器被迫压缩鼠标/键盘操作肉Data channel RTT数据通道拥塞或网络抖动整体延迟高端到端延迟测试的 7 段分解定位是 UE 侧Capture/Encode还是网络侧的锅如果部署了 SFU多观众广播架构示意图如上排障时还要区分延迟高的观众是都卡在 SFU 出口还是某个观众自己的上行/下行链路问题——此时把多个观众的统计面板数据横向对比即可锁定范围。 核心源码索引模块路径统计面板 UIFrontend/ui-library/src/UI/StatsPanel.ts延迟测试 UIFrontend/ui-library/src/UI/LatencyTest.ts数据通道延迟测试 UIFrontend/ui-library/src/UI/DataChannelLatencyTest.tsQP 质量指示器Frontend/ui-library/src/UI/VideoQpIndicator.ts统计数据聚合Frontend/library/src/PeerConnectionController/AggregatedStats.tsgetStats 采集Frontend/library/src/PeerConnectionController/PeerConnectionController.ts延迟测试结果模型Frontend/library/src/DataChannel/LatencyTestResults.ts数据通道延迟控制器Frontend/library/src/DataChannel/DataChannelLatencyTestController.ts一句话总结画质看 QP 红绿灯流畅度看帧率与丢帧网络看丢包与 RTT操作手感看 DataChannel RTT整体体验用一次延迟测试的 Total Latency 收尾——7 大指标齐查云串流质量问题无处遁形 ✅【免费下载链接】PixelStreamingInfrastructureMoved to: https://github.com/EpicGamesExt/PixelStreamingInfrastructure项目地址: https://gitcode.com/gh_mirrors/pix/PixelStreamingInfrastructure创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考