作为参考,我的电脑是 9900K、GTX 1070。播放是在 Chrome 上完成的。编解码器列为vp09.00.51.08.01.01.01.01 (315) / opus (251)
,虽然我不知道这是否会有所不同。
我在 YouTube 上发现了一个质量极高的视频:
但是,当我切换到 8K60 质量时,统计数据显示我丢掉了大约 1/3 的所有帧。不过,它看起来确实相当流畅,偶尔会出现明显的帧卡顿。CPU 负载稳定在 ~60%。根据任务管理器,没有 GPU 解码,GPU 活动在 3D 图形上稳定在 ~20%。
另外,还有这个视频:
The Daily Dweebs - 8K 超高清立体 3D由 Blender 项目提供。
它也是 8K,但 FPS 为 24(2d 模式)。在其中,我没有丢帧,但视频很卡顿,看起来以大约 10 fps 的速度播放。这次 3D 图形上的 GPU 活动约为 30%,CPU 也约为 30%。
以这个视频为例:8K 鬼城 (FUHD)在 8K24 播放时,CPU 使用率为 30%,GPU 使用率为 11%,没有丢帧或任何可察觉的问题。
系统的瓶颈是什么?为什么 60FPS 的镜头看起来很流畅,但会丢掉很多帧,而 24 FPS 的镜头很不连贯,但没有丢帧?播放 8K 需要什么?播放到底是如何发生的?
编辑:为了完整起见,请注意,当您右键单击视频并选择“统计信息”选项时,YouTube 可以显示许多技术播放统计数据。
编辑以添加评论中请求的信息:
- 是的,我的显示器是 G-Sync。
- 解码 vp9 profile0 最高可达 8192x8192 像素
答案1
播放 8K60 素材需要什么?
播放究竟是如何发生的?
这取决于用于编码 8K 素材的编解码器。
目前 8K 的一些常用编解码器包括:
- H.265 (HEVC)
- VP9
- AV1
您链接的所有 YouTube 视频均报告以下编解码器字符串:
vp09.00.51.08.01.01.01.01 (272) / opus (251)
Google 是开发 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和有一个快速地视频使用的编解码器的解码器。
根据维基芯片,i9-9900K 中的 Intel UHD 630 显卡只能以最高 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 上,只有支持的。
请参阅下面的更新...
为什么 60FPS 的画面看起来很流畅但会丢掉很多帧,而 24 FPS 的画面却很不流畅?
我无法解释这一点,但也许 3D 视频是使用完整立体数据进行流式传输的,而播放器使用本地处理将其显示为 2D。这会导致更多的 CPU 开销。
更新:
我已测试在我的 GTX 1070 上播放 3D 视频,在 1136 帧(52 秒)中仅丢失了 2 帧,播放也非常流畅。我的 CPU 是 Ryzen 5 3600X,所以你的 i9-9900K 也不应该成为瓶颈。确保你使用的是最新版本的视频驱动程序和 Chrome。Windows 10 的版本也可能会影响这一点(我使用的是 1809 Pro)。
答案2
对于 Nvidia 显卡来说,8K 视频的硬件解码似乎需要纯视频Feature set H
或更高:
功能集 H
功能集 H 能够对 8192x8192(8k 分辨率)H.265/HEVC 视频流进行硬件加速解码
这使得它处于 20xx、16xx 和 10xx 显卡的范围内。你的显卡至少应该能够解码8K H.265视频。
可能是硬件解码不支持 8k VP9,或者视频使用的是 12 位色深 (Main 4:4:4 12),因此需要较新的 20xx 或 16xx 显卡。维基百科缺少有关该视频解码器的详细信息 ( Feature set J
)。它很可能扩展了 8K 支持,而这正是缺失的部分。
首先尝试获取“标准”h.265(而非 VP9)视频,看看是否可行。我并不完全确信该网站(youtube 链接)上的单个 8K@30 样本使用的是 1070 上的硬件解码器。它使用了相当多的 CPU(约 70%)和约 30% 的 GPU,但只有“3D”,因此可能只是推动像素并进行缩放,而不是完整的硬件解码。
我无法轻易找到任何可下载的 8k60 视频,但我不喜欢使用 Web 浏览器作为视频支持的测试平台。
答案3
忽略解压缩时间,视频的比特率大约是宽度乘以高度乘以(一帧的像素数字表示存储大小)乘以(颜色通道数)乘以帧速率。
所以对于 RGB 8bpp 来说,一个 px 是一个字节,而 8k 将是:
7680 字节 × 4320 字节 x 3 色通道 x 60 fps x 每字节 8 位 / 1024 为 Kbit / 1024 为 Mbit / 1024 为 Gbit
达到约 45 Gbps 或 8GBps