为什么flash 视频要消耗这么多CPU?

52d*_*6af 3 flash flash-video

它只是一个 CPU 密集型活动,还是更多?为什么不能将更多处理卸载到 GPU 上?

slh*_*hck 6

为什么不能将更多处理卸载到 GPU 上?

因为 Flash(过去)缺乏与操作系统和图形卡 API 的集成,这将允许它这样做。为了让 Flash 插件将解码延迟到 GPU,它需要与操作系统对话,随后与显卡通信以传递解码和渲染指令。

Flash 10.1 终于引入了 GPU 加速

在 Windows XP、Windows Vista 和 Windows 7 上运行的某些视频卡和驱动程序支持硬件加速 H.264 解码。此版本不支持 Linux 和 Mac OS X 硬件加速解码。

罪魁祸首是:OS X确实允许 Flash稍后访问 GPU以解码 h.264 视频,但他们的支持并不是那么好。因为——简单地说——Apple 仍然讨厌 Flash(缺乏 API 支持与他们不希望在 iPhone 或 iPad 等移动设备上使用 Flash 的原因相同)。有关 OS X 中的 GPU 支持,请参阅此简短的Adobe 知识库条目

为什么它还不能在 Linux 上运行,我个人不知道。

为了回答您的第一个问题,我还将引用 Adob​​e 本身。主要的一点是,现代视频编解码器(如 h.264)的解码非常复杂,而且它们对 CPU 的压力很大。如果没有用于 GPU 解码的 API,或者对它的支持不佳,您会看到 CPU 使用率很高,而且您对此无能为力。

H.264 提供出色的视频质量,但需要大量的处理能力来解码。H.264 视频在 Flash Player 10.1 中由 GPU 或媒体加速器在有能力的硬件可用时解码,这大大提高了播放性能和电池寿命。这对于资源受限的移动设备特别有用,例如上网本和智能手机。