我有非常简单的静态测试页面:
<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 页面的构建。也许带有适当开关的自定义构建会有所帮助?或者也许可以在默认构建上强制硬件解码?