Canvas 删除画布的mediastream中的黑色背景

Canvas 删除画布的mediastream中的黑色背景,canvas,video,webrtc,streaming,Canvas,Video,Webrtc,Streaming,我正在通过webrtc对等连接发送画布的媒体流。现在,当我收到mediastream时,我将mediastream添加到显示黑色背景的视频元素中。我想使背景透明,以便多层画布可以流式显示。我发现了类似的问题,但大多数问题似乎都很老了 在阅读了不同的博客和评论后,我学到了以下方法:- 当我收到mediastream时,我将在画布上传输视频,然后更改画布图像的alpha以影响背景。但这将是缓慢的 我在某处读到webrtc mediastream使用的VP9或H286编解码器没有任何alpha字段,

我正在通过webrtc对等连接发送画布的媒体流。现在,当我收到mediastream时,我将mediastream添加到显示黑色背景的视频元素中。我想使背景透明,以便多层画布可以流式显示。我发现了类似的问题,但大多数问题似乎都很老了
在阅读了不同的博客和评论后,我学到了以下方法:-

  • 当我收到mediastream时,我将在画布上传输视频,然后更改画布图像的alpha以影响背景。但这将是缓慢的
  • 我在某处读到webrtc mediastream使用的VP9或H286编解码器没有任何alpha字段,因此我们无法使视频透明。因此,使视频透明是不可能的
我想知道有没有更好的办法来解决这些问题

例如,我创建了一个运行canvas whiteboard的服务器,在客户端,客户端可以将该canvas作为视频流传输

帆布白板

画布上方的视频流


所以在上图中,一个是原始画布白板,第二个是画布的视频流。现在视频的背景是黑色的。我想使背景透明。

延迟对您来说是个问题吗?VP8和VP9实际上可以保存一个alpha通道,Chrome通过MediaRecorder接口使用这些编解码器来保持记录的透明度。因此,如果延迟不是一个问题,一个解决方法可能是使用MediaRecorder并传输录制的媒体块,这些块将在另一端的MediaSource中使用。但是这个解决方案的另一个限制是只有Chrome支持透明性。。。我不知道他们为什么不通过RTC支持它,不管使用什么编解码器……我用例子更新了我的问题@Kaido我想操纵从RTPeerConnection接收到的流。根据这些vp9或h286没有alpha。但这些答案是3年前的。所以我想知道是否有人操纵阿尔法。@amar_1995请回答我之前的问题,延迟是一个问题吗?webm可能会被滥用以合并alpha通道see,他们会对通过MediaRecorder录制的媒体执行此操作,因此甚至可以通过浏览器执行此操作。现在,从你的屏幕截图我想知道你是否真的需要RTC,如果你真的只做一个协作白板,没有屏幕共享或复杂的图像过滤器,那么最好的可能是通过套接字发送绘图命令。我需要流速度快。如果它落后于用户体验,那么用户体验将受到影响。