问题是,当我将笔记本电脑与Windows共享屏幕到RPi时,流是黑色的(Chromium 48)或流是不可见的(Chromium 49) 。 <video>
标记中的视频始终存在 blob 。
让我解释一下,我正在开发一个Chrome扩展程序来共享桌面vía WebRTC 。我需要一个我用NodeJS开发的信令服务器和接收流的Peer是由同一服务器提供的网页服务。我们可以在网页上看到带有Chromium,48和49的RPi中的视频流。捕获屏幕的客户端具有chrome扩展名,并且播放器位于同一网络中。
扩展几乎每次都有效,但我有一些例外。在以下情况下,它有效:
| Pi Browser | Client OS | Client Browser | Works? |
|:------------:|:---------:|:------------------:|:------:|
| Chromium 48 | Linux | Chromium 50 | YES |
| Chromium 48 | Linux | Chrome 50 | YES |
| Chromium 49 | Linux | Chromium 50 | YES |
| Chromium 49 | Linux | Chrome 50 | YES |
| Chromium 48 | Windows | Chrome 49 | NO |
| Chromium 48 | Windows | Chrome 50 | NO |
| Chromium 48 | Windows | Chroma Canary (52) | YES |
| Chromium 49 | Windows | Chrome 49 | NO |
| Chromium 49 | Windows | Chrome 50 | NO |
| Chromium 49 | Windows | Chrome Canary (52) | YES |
然后我尝试在我的笔记本电脑上使用Chromium 50和Chrome 50,并将Linux作为播放器,并且每次都可以使用。也许错误是针对RPi上的Chromium?
与此同时,我一直在寻找一个解决方案:webrtc - video get blob, but it remain black。案件似乎很相似。我做了它说的。检查addStream
的位置,使用已弃用的setLocalDescription/setRemoteDescription(sdp, onsucc, onfail)
API,总是说它成功。答案是mandatory: { OfferToReceiveVideo: true, OfferToReceiveAudio: true}}
,但没有变化。我现在不知道该怎么做才能解决这个问题。
是否有一些解决方法?我需要让它适用于没有Chrome Canary的Windows。也许是我在Chrome for Windows中看不到的一些标志。