CaptureStream 中的 Alpha 透明度 API for firefox 和 Chrome over Webrtc

Alpha transparency in CaptureStream API for firefox and Chrome over Webrtc

我正在尝试使用 Capturestream API 将 canvas 流发送到 Peerconnection。我 运行 遇到一个问题,来自 Canvas 的 t运行sparent 像素(alpha 通道)不是通过 Webrtc 发送的,而是会被黑色像素取代。我知道这是 Webrtc 上的一个已知问题,这里是 link [https://bugs.chromium.org/p/chromium/issues/detail?id=524218]。由于 Webrtc 技术正在快速迭代,我想知道是否有人知道解决此问题的方法?

显然,here 有一个修复程序,其中说明:

This CL changes the output frame format in canvas capture from I420 to YV12A so that alpha channel is preserved.

不幸的是,我找不到实现它的方法。

这很正常,因为 WebRTC 尚不支持 alpha 通道。 WebRTC 会将像素块转换为具有 24 位通道且不支持 Alpha 通道的 I420 像素格式。在另一端,流将转换回另一个像素,但 alpha 通道信息将丢失。

Link 展示了 Chromium 项目环聊的一些私有 API 实现。我认为这与 WebRTC

无关

如果现在必须使用 Alpha 通道,我建议使用网络套接字