作为参考,我的电脑是 9900K,GTX 1070。播放是在 Chrome 上完成的。编解码器列为vp09.00.51.08.01.01.01.01 (315) / opus (251)
,虽然我不知道这是否会有所不同。
我在 YouTube 上发现了一个质量高得离谱的视频:
但是,当我切换到 8K60 质量时,统计数据显示我丢掉了大约 1/3 的帧。然而,它看起来确实相当流畅,偶尔会出现明显的框架故障。CPU 负载稳定在 60% 左右。根据任务管理器的说法,3D 图上没有 GPU 解码和 GPU 活动水平约为 20%。
此外,还有这个视频:
The Daily Dweebs - Blender 项目的 8K UHD 立体 3D。
它也是 8K,但是 24 FPS(2d 模式)。在其中,我没有丢弃任何帧,但视频断断续续,看起来以大约 10 fps 的速度播放。这次 3D 图上的 GPU 活动约为 30%,CPU 也以 30% 的速度下降。
例如此视频:8K24 的 8K (FUHD)鬼城在 30% CPU 和 11% GPU 利用率下播放时不会出现丢帧或任何可察觉的问题。
系统的瓶颈是什么?为什么 60 FPS 的画面看起来很流畅,但掉帧很多,但 24 FPS 的画面断断续续,但没有掉帧?播放 8K 需要什么?无论如何播放是如何发生的?
编辑:为了完整起见,请注意,当您右键单击视频并选择“书呆子统计”选项时,YouTube 可以显示许多技术播放统计信息。
编辑以添加评论中要求的信息:
- 是的,我的显示器是 G-Sync。
- 解码 vp9 profile0 高达 8192x8192 像素
这取决于用于对 8K 素材进行编码的编解码器。
目前用于 8K 的一些常用编解码器是:
您链接的所有 YouTube 视频都报告以下编解码器字符串:
vp09.00.51.08.01.01.01.01 (272) / opus (251)
谷歌是开发 VP9 编解码器的主要贡献者,因此 YouTube 更喜欢为 8K 视频流式传输这种编码。(它比 H.265 节省了很多带宽)
对于第一部分的含义,我最好的猜测
vp09.00
是它是 VP9 Profile 0,它是 8 位和 4:2:0 色度二次采样。要流畅地播放 8K 视频,您要么需要非常快的 CPU 进行软件解码,要么需要支持其中一种编解码器的硬件加速解码的 GPU。
对于软件解码:
无论您的硬件功能如何, FFmpeg或libvpx等库都提供了解码视频的方法,因此足够快的 CPU 是播放 8K 视频的一种方法。虽然8K 是一个非常高的比特率(高达 240 mbps),所以 i9-9900K 可能仍然不够快,无法在不丢帧的情况下每秒解码那么多数据。
对于硬件解码:
您将需要一个支持 8K 分辨率的 GPU,并为视频使用的编解码器配备一个快速解码器。
根据WikiChip,i9-9900K 中的 Intel UHD 630 Graphics 只能以最高 4K 分辨率解码这些编解码器中的任何一个。它对 8K 视频没有用处,但它绝对是使用最新编解码器的 4K 内容的理想硬件加速器。
您的 GTX 1070 可以解码 8K 的最大分辨率,但它对可能是 8K 的编解码器的支持是有限的。
根据 NVIDIA 的视频编码和解码 GPU 支持矩阵,您的 GTX1070 只能解码 8 位的 VP9,或具有 4:2:0 色度子采样的 H.265。
这解释了为什么您的
chrome://gpu/
页面显示支持“解码 vp9 profile0 高达 8192x8192 像素”。由于您测试的所有 YouTube 链接(可能)都是 VP9 Profile 0 视频,Chrome 正在使用 GPU 来播放这些视频。
这可能归结为 8K 视频的绝对规模。
GPU 中的视频解码器可能正在发挥其最大潜在性能,因为 CPU 使用率和 GPU 使用率尚未达到 100%。我也不确定 NVIDIA 是否曾说过 8K@60hz 在 GTX 1070 上是最佳的,只是支持它。请参阅下面的更新...
我无法解释这一点,但也许 3D 视频与完整的立体数据一起流式传输,并且播放器通过本地处理将其显示为 2D。这将导致更多的 CPU 开销。更新:
我在我的 GTX 1070 上测试了 3D 视频,在 1136 帧(52 秒)上只丢了 2 帧,播放也非常流畅。我的 CPU 是 Ryzen 5 3600X,所以你的 i9-9900K 也不应该成为瓶颈。确保您使用的是最新版本的视频驱动程序和 Chrome。Windows 10 的版本也可能会影响这一点(我使用的是 1809 Pro)。
对于 Nvidia 卡,8K 视频的硬件解码似乎需要PureVideo
Feature set H
或更高版本:这使它在 20xx 和 16xx 和 10xx 显卡的范围内。你的至少应该能够解码8k h.265视频。
可能是硬件解码不支持 8k VP9,或者视频使用 12 位色深(Main 4:4:4 12),因此需要更新的 20xx 或 16xx 显卡。Wikipedia 缺乏有关该视频解码器 (
Feature set J
) 中内容的详细信息。它很可能扩展了对 8K 的支持,而这是缺失的部分。首先尝试获取“标准”h.265,而不是 VP9,视频,看看是否可行。我不是 100% 相信该站点上的单个 8K@30 样本(youtube 链接)正在使用 1070 上的硬件解码器。它使用了大量的 CPU(约 70%)和约 30% 的 GPU,但只有“3D”,所以可能只是推动像素并进行缩放,而不是完整的硬件解码。
我无法轻易找到任何可下载的 8k60 视频,但我不喜欢将 Web 浏览器作为视频支持的测试平台。
忽略解压缩时间,视频的比特率大约是宽度乘以高度乘以(一帧的像素数字表示存储大小)乘以(颜色通道数)乘以帧速率。
所以对于 RGB 8bpp,一个 px 是一个字节,而 8k 是:
7680 字节 × 4320 字节 x 3 个颜色通道 x 60 fps x 每字节 8 位 / 1024 用于 Kbit / 1024 用于 Mbit / 1024 用于 Gbit
达到约 45 Gbps 或 8GBps