使用WebRTC实现屏幕共享

8
我需要使用WebRTC实现屏幕共享。我知道WebRTC支持共享选项卡内容,但我需要共享整个屏幕。 我正在考虑的解决方案是频繁地截取屏幕截图,并使用WebRTC数据通道将图像传输到另一方。然后,每当接收到新图像时,另一方将更新该图像。
这是否可能实现呢?特别是我想知道是否可以使用WebRTC数据通道来传输图像?
提前致谢。

您可以通过DataChannel传输图像,但更大的问题将是从JavaScript沙箱内部捕获屏幕。我怀疑这是不可能的,除非使用某种浏览器扩展程序。 - Makkes
3个回答

9

getUserMedia支持整个屏幕的屏幕共享,而不仅仅是选项卡内容。

我已经完成了一个屏幕捕获演示(使用强制约束chromeMediaSource:'screen'),并将流导入到RTCPeerConnection中:https://simpl.info/screencapture

chrome.tabCapture API获取选项卡内容,但当然这不是您想要的:例子here(尽管现在代码已经不可用)。

编辑:在链接中添加了HTTPS:这是屏幕捕获所必需的。


谢谢你的回答。getUserMedia 真的是我需要的。但是为了在本地测试它,似乎我需要安装一些 HTTPS 服务器,对吗? - mkd156
1
这种方法能否达到60FPS?我尝试过,但效果似乎远非理想。 - wonglik
现在有没有办法进行屏幕共享,因为Chrome最新版本中没有启用屏幕共享的标志。 - Bilbo Baggins
现在,Chrome 在 Android 上提供了屏幕截图功能,需要通过标志进行启用。请访问 https://simpl.info/sc 查看演示,并阅读 Paul Kinlan 的文章 https://paul.kinlan.me/screen-recording-with-getUserMedia-and-WebRTC/。 - Sam Dutton

7

1
谢谢,好的例子。但是当我将HTML内容复制到我的本地HTML文件时,它不起作用。看来我需要安装HTTPS服务器。 - mkd156
似乎不再是这样了:https://groups.google.com/forum/#!topic/discuss-webrtc/TPQVKZnsF5g - Max
1
Chrome 中的 启用屏幕截图支持 标志已被移除。 - Reza
屏幕截图的新方法引入了吗? - Bilbo Baggins
有人知道是否有替代标志或如何通过getUserMedia()启用屏幕捕获吗? - lukenofurther

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接