【发布时间】:2012-08-21 06:17:10
【问题描述】:
我想从视频元素中获取原始数据(TypedArray 之类的)并使用 JavaScript 对其进行操作。
目前我新建了一个画布,将视频绘制到画布中,然后获取图像数据。
ctx.drawImage(myVideo);
var data = ctx.getImageData(0, 0, w, h).data;
它工作正常,但它会消耗 CPU(将视频放到画布上并从画布复制回来)并且会产生大量垃圾(每秒大约 50 MB)。还有其他更简单的解决方案吗?如果我可以将自己的缓冲区传递给 getImageData(...),那就太好了。
顺便说一句。使用 WebGL 绘制视频并从 GPU 加载回来并不快 :( http://jsperf.com/getting-raw-data-from-video
【问题讨论】:
-
这是最简单的方法。您也许可以通过 WebGL 获得更多性能。您可以看到github.com/brianchirls/Seriously.js 是如何处理视频过滤器的。
-
嘿,谢谢你的链接。该库在片段着色器中编辑原始数据。但我需要从 JavaScript 编辑它:(