WebGL / THREE.js是否可以将视频DOM元素读取到YUV纹理中?

问题描述

在大多数平台特定的API中,可以选择读取视频帧的原始像素格式YUV。 但是,用THREE.Texture包装的DOM Video元素始终返回RGB。 有没有办法获得YUV原始像素格式的纹理?

我正在使用JS和THREE.js,但是如果可以在WebGL中使用,那也很好。

解决方法

有一个传入的Web codecs API,它应该暴露一个Plane interface,从那里我们应该可以读取YUV(已经可以在Chrome 86中进行测试,带有标记)。

这仍然是非常实验性的,尽管它是apparently already doable(我个人不知道如何),但是仍然不能很好地定义如何与webgl一起使用,但是肯定会有一些工作要做。在不久的将来,您可以关注this repo以获取更多信息。

,

否,不可能。或者至少浏览器本身不提供API来获取YUV格式的视频数据。