【发布时间】:2013-09-29 14:17:44
【问题描述】:
我有一个非常简单的静态测试页面:
<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 页面的构建。也许带有适当开关的自定义构建会有所帮助? 或者也许可以在默认构建时强制硬件解码?
【问题讨论】:
-
虽然 chrome:gpu 在 node-webkit 中损坏了
-
虽然 chrome:gpu 在 node-webkit 中被破坏,但我设法通过打开 chrome:gpu url 并在 DevTools 控制台中输入
var browserBridge = { onGpuInfoUpdate:function(arg){console.log(arg);}};和chrome.send('browserBridgeInitialized');来获取 gpu 信息。然后我发现了 featureStatus 数组,它有 name=='video_decode' 和 status=='enabed' 的条目。所以铬标志是可以的。然后我不明白为什么我有CPU负载差异。
标签: google-chrome video webkit node-webkit