与WebRTC共享屏幕?

与WebRTC共享屏幕?,webrtc,screensharing,Webrtc,Screensharing,我们正在探索WebRTC,但在今天的可能和支持方面,我们看到了相互矛盾的信息 使用WebRTC,是否可以重新创建类似于join.me或WebEx的屏幕共享服务,其中: 您可以共享屏幕的一部分 你可以把控制权交给另一方 不需要下载 这在今天的WebRTC浏览器中是否可行?iOS上的Chrome怎么样?据我所知,目前任何浏览器都不可能使用Chrome,尽管谷歌Chrome团队表示,他们最终打算支持这一方案(请参阅他们网站上的“屏幕共享”要点);我怀疑这意味着最终会有其他浏览器跟进,大概是IE和S

我们正在探索WebRTC,但在今天的可能和支持方面,我们看到了相互矛盾的信息

使用WebRTC,是否可以重新创建类似于join.me或WebEx的屏幕共享服务,其中:

  • 您可以共享屏幕的一部分
  • 你可以把控制权交给另一方
  • 不需要下载

这在今天的WebRTC浏览器中是否可行?iOS上的Chrome怎么样?

据我所知,目前任何浏览器都不可能使用Chrome,尽管谷歌Chrome团队表示,他们最终打算支持这一方案(请参阅他们网站上的“屏幕共享”要点);我怀疑这意味着最终会有其他浏览器跟进,大概是IE和Safari在后面。但所有这些都可能在二月份之后的某个时候发生,那时他们应该最终确定当前的WebRTC标准并发布生产位。(希望微软最后一分钟的工作不会把事情搞砸。)我可能错过了最近的一些东西,但我一直在非常仔细地关注这个项目,我认为屏幕共享甚至还没有进入Chrome Canary,更不用说dev/beta/prod了。Opera是唯一一款在WebRTC实现上与Chrome保持同步的浏览器(FireFox似乎落后了六个月),而且我也没有看到该团队关于屏幕共享的任何内容

有人告诉我,现在有一种方法可以做到这一点,那就是编写您自己的网络摄像机驱动程序,以便您的本地屏幕在WebRTC getUserMedia()API中显示为另一个视频源。我不知道是否有人这样做过——当然,这需要在相关机器上安装驱动程序。说到做到这一点,使用VNC或类似的东西可能会更容易。

Chrome应用程序和扩展都可以使用

这使得可以将选项卡的可见区域捕获为流,该流可以在本地使用或通过RTPeerConnection的addStream()共享

有关更多信息,请参阅

屏幕共享最初是使用带有chromeMediaSource约束的getUserMedia为“普通”网页提供支持的,但现在已经被禁止了


2015年4月1日编辑:现在编辑,Chrome应用程序和扩展程序中的屏幕共享仅受Chrome支持。

你们可能知道Chrome Canary(26+)中提供屏幕捕获(而不是tabCapture),我们最近在发布了一个演示

请注意,您需要在https://

video: {
  mandatory: {
    chromeMediaSource: 'screen'   
  }

你也可以在这里找到一个例子

我知道我的回答有点晚了,但希望它能帮助那些无意中看到这一页的人,如果不是OP的话

目前,Firefox和Chrome都支持通过WebRTC将整个屏幕或部分屏幕(您可以选择的一些应用程序窗口)作为媒体流与对等方共享,就像您的摄像头/麦克风馈送一样,因此还没有让其他方控制您的桌面的选项。除此之外,还有一个问题,你的网站必须在
https
模式下运行,用户必须在firefox和chrome中安装扩展

您可以在这个Muaz Khan's中尝试一下,该页面也包含所需的扩展

附言:如果你不想在firefox中安装扩展来运行演示,你只需要修改两个标志

  • 转到
    about:config
  • media.getusermedia.screensharing.enabled设置为
    true
  • *.webrtc experience.com
    添加到
    media.getusermedia.screensharing.allowed_domains
    标志
  • 刷新演示页面并单击共享屏幕按钮
      有开源的chrome扩展来实现这一点。请检查一下

      还有一个在Github Wiki上使用扩展的文档


      现在你可以这样做了,但是Safari在音频方面与Chrome不同。

      非常有趣-我错过了这一点。从外观上看,作为一个单独的API调用似乎是一件奇怪的事情——这不应该只是一个更大的桌面共享API的一部分吗?在该API中,您应该能够选择要共享的特定区域、特定窗口或整个桌面,而选择特定选项卡应该只是其中的一部分。这只是一个临时的实验,建立完整的屏幕共享API吗?或者它本身就是目的吗?这应该更新,因为它没有提到Chrome现在默认禁用屏幕共享,除非在启动Chrome时在命令行上通过“-enable usermedia screen capture”。是的,它可以工作,但它非常耗用CPU,浏览器变慢,即使在资源/帧速率较差的情况下。。。这是我观察到的以下插件:这里是一个演示:WebRTC屏幕共享:-也广播!屏幕的一部分或屏幕的一部分或屏幕共享的区域是可能的---请参阅演示-----您自己试试看!---不过,html2canvas库用于拍摄html元素的快照,并使用socket.io或WebRTC数据通道进行传输。您好,dathor,仅供参考,azurewebsites的演示捕获了屏幕,但不会传输到其他端点。它只是显示主页。然而,官方的HTML5演示非常有效+我为此付出了代价!您好,是的,您可以在上找到一个新的演示,请确保您在https://contextI下运行我非常累,所以我可能错过了它,但我没有看到屏幕共享功能?不过演示很酷。让我想起是的,当您运行https://时,它将为您提供该选项。。。您还可以下载我们的免费开源库并自行构建。看看我在chrome:55上试过这个,但失败了,消息如下:PERMISSION\u DENIED。你不是SSL吗?是否已启用--enable usermedia屏幕捕获标志?我猜这是不允许在chrome上使用的(之前它是在ver上使用的)
      navigator.mediaDevices.getDisplayMedia(constraint).then((stream)=>{
      // todo...
      })