我正在处理与屏幕共享相关的项目,我遇到的唯一问题是需要在Raspberry PI上显示从PC或Mac(Chromium浏览器,实际上是电子应用程序)共享的屏幕(i我正在使用模型3 B,最现代的一个)。在我的实验中,项目刚刚开始,我正在使用RTCMultiConnection来共享屏幕并观看它。
问题是,即使在显示它的Chromium中启用了完整的HW加速,它也是无用的慢(2-3 fps,有时延迟10秒),我完全理解为什么:因为它使用VP9编解码器,因为它没有Raspberry上存在硬件加速。
问题是:我可以在RTCMultiConnection中使用H264吗?如果有,怎么样?我知道WebRTC本身基本上支持它。
答案 0 :(得分:0)
在HTML演示文件中添加以下代码:
connection.processSdp = function(sdp) {
// remove VP8+VP9 so that Firefox can use H264
sdp = CodecsHandler.removeVPX(sdp);
return sdp;
};
转到" dev"目录并打开此文件:dev/CodecsHandler.js#L5-L30第5到30行。
确保VP8和VP9线正确无误。
a=rtpmap:100
a=rtpmap:101
也许VP8是96而VP9是98.所以相应地替换rtpmap
。 E.g。
a=rtpmap:96
a=rtpmap:98
确保仅使用Firefox进行测试。如果Chrome稳定版渠道也支持H264,我不知道。
Fireox可能需要一些标志。您可以在h264
about:config
个标记
确保在dev/CodecsHandler.js
之后快速链接HTML演示文件中的dist/RTCMultiConnection.min.js
。
<script src="dist/RTCMultiConnection.min.js"></script>
<script src="dev/CodecsHandler.js"></script>
<script>
var connection = new RTCMultiConnection();
connection.socketURL = 'https://yourserver.com:9001/';
connection.processSdp = function(sdp) {
// remove VP8+VP9 so that Firefox can use H264
sdp = CodecsHandler.removeVPX(sdp);
return sdp;
};
connection.openOrJoin('roomid');
</script>