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

标签 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 上进行测试)时,与 chrome 0.29.xx 和 chrome 0.31(使用 chrome 的 ffmpegsumo)相比,我得到的 CPU 负载高达两倍。 我还能够在 chrome 中运行大约 8 个页面副本,而在 nw.exe 中运行 4 个副本,而视频不会变得不稳定。 分别使用 nVidia GF9500GT 和 Intel HD 4600 在 Intel i5 第一代和第三代上进行测试。 这也与在 MPC-HC 中使用和不使用 DXVA 时显示相同视频时的 CPU 负载相关。

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

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

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

最佳答案

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

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

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

关于google-chrome - Windows下如何在node-webkit中强制硬件加速视频解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18980364/

相关文章:

html - 如果用户没有 Flash 或 html5,我怎么说 "you need flash installed..."来嵌入 YouTube 剪辑

python - 单击鼠标并在视频中的鼠标位置绘制固定矩形(python_opencv)

javascript - 在 node-webkit 中打印没有 "print dialogue"

html - 在记事本中获取页面生成的源代码

javascript - SVG 图案元素不会在 Chrome 中调整大小

javascript - 更改后使用 AJAX 重新上传文件会导致 Chrome 中的 net::ERR_UPLOAD_FILE_CHANGED

python - 使用 Python 从直接 URL 下载视频

javascript - Qt webkit编程,Qt数据类型对应Javascript数据类型是什么?

css - 如何断线? (和 safari 移动问题)

google-chrome - 不进入隐身模式就无法进入 Google Analytics