我在客户端视频流记录在第三方服务器https://tokbox.com/上的情况下使用WebRTC。我想在录制的视频中添加某种水印。

调查将我带到了http://w3c.github.io/webrtc-pc/#mediastreamtrack这个页面,由于它说:



这正是我所需要的,但是我没有找到此功能的任何示例或说明。我想从WebRTC专家那里获得一些建议。

最佳答案

您需要使用 Canvas 将视频从getUserMedia路由到,在此处进行修改,然后使用canvas.captureStream()将其转换回MediaStream。这很棒-除了WG中同意的canvas.captureStream()尚未实际包含在规范中之外。 (有一个由Mozilla编写的建议字词的拉动请求。)

就实现而言:captureStream()的最初实现只是在Firefox Nightly(41)中实现,在解决一两个错误之前,它仍然落后于偏好。您可以在about:config中通过canvas.capturestream.enabled启用它。您可以在Mozilla's test page for captureStream()上看到一个演示。

在没有canvas.captureStream()的情况下很难做到这一点;最好的方法是先执行getUserMedia-> canvas->,然后使用video.captureStream()(或captureStreamUntilEnded())-但是,video.captureStream也正在等待正式接受。 Mozilla拥有video.captureStream()已有一段时间了,但是我认为它可以在FF 38(当前版本)中使用。

07-26 09:38