我有非常简单的静态测试页面:
<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页面的构建。也许用适当的开关定制构建会有帮助吗? 或者也许可以在默认构建上强制进行硬件解码?
答案 0 :(得分:2)
尝试添加任何css着色器或webgl,它会自动强制加速合成。这应该让你知道它的视频(ffmpeg)或它是否真的是GPU / chrome渲染引擎。
您还可以使用--forced-compositing-mode强制加速组合到package.json中的chrome args,看看是否有任何影响。
我的直觉说chrome.exe可能会使用其他许可(但不是开源)解码器和特定的硬件加速,而使用ffmpeg依赖于cpu。