如何在Windows下的node-webkit中强制硬件加速视频解码?

时间:2013-09-24 11:28:10

标签: google-chrome video webkit node-webkit

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

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

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

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

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

我使用的是node-webkit github页面的构建。也许用适当的开关定制构建会有帮助吗? 或者也许可以在默认构建上强制进行硬件解码?

1 个答案:

答案 0 :(得分:2)

尝试添加任何css着色器或webgl,它会自动强制加速合成。这应该让你知道它的视频(ffmpeg)或它是否真的是GPU / chrome渲染引擎。

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

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