2

我有非常简单的静态测试页面:

<body>
<video autoplay loop>
  <source src='ng_full.mp4' />
</video>
</body>

当我在 node-webkit 中打开它(在 0.6.3 到 0.7.5 版本上测试)时,与 chrome 0.29.xx 和 chromium 0.31 以及来自 chrome 的 ffmpegsumo 相比,我得到了两倍的 CPU 负载。我还可以在 chrome 中运行大约 8 个页面副本,而在 nw.exe 中运行 4 个副本,而没有视频变得生涩。分别在 Intel i5 第一代和第三代与 nVidia GF9500GT 和 Intel HD 4600 上进行了测试。当在 MPC-HC 中使用和不使用 DXVA 显示相同的视频时,这也与 CPU 负载相关。

根据我的结论 - 硬件视频解码加速在 node-webkit 中不起作用!

我需要在单台机器上同时播放尽可能多的视频,而 GPU 解码比 CPU 解码提供了两倍的流。

我正在使用来自 node-webkit github 页面的构建。也许带有适当开关的自定义构建会有所帮助?或者也许可以在默认构建上强制硬件解码?

4

1 回答 1

2

尝试添加任何 css 着色器或 webgl,它会自动强制加速合成。这应该让您了解它是视频 (ffmpeg) 还是它实际上是 GPU/chrome 渲染引擎。

您还可以使用 --forced-compositing-mode 强制加速合成到 package.json 中的 chromium args 以查看是否有任何影响。

我的直觉说 chrome.exe 可能使用具有特定硬件加速的其他许可(但不是开源)解码器,而使用 ffmpeg 依赖于 cpu。

于 2013-09-29T01:59:14.623 回答