Raspberry pi RTCMultiConnection能否使用H264而不是VP9进行屏幕共享?

Raspberry pi RTCMultiConnection能否使用H264而不是VP9进行屏幕共享?,raspberry-pi,webrtc,h.264,rtcmulticonnection,vp9,Raspberry Pi,Webrtc,H.264,Rtcmulticonnection,Vp9,我正在从事与屏幕共享相关的项目,我遇到的唯一问题是需要在Raspberry PI上显示PC或Mac(Chromium浏览器,实际上是电子应用程序)共享的屏幕(我使用的是最现代的型号3B)。在我的实验中,项目才刚刚开始,我正在使用RTCMultiConnection共享屏幕并观看它 问题是,即使Chromium在显示它的时候启用了全硬件加速,它仍然毫无用处地慢(2-3fps,有时有10秒的延迟),我完全理解为什么:因为它使用VP9编解码器,Raspberry上没有硬件加速 问题是:我可以在RTCC

我正在从事与屏幕共享相关的项目,我遇到的唯一问题是需要在Raspberry PI上显示PC或Mac(Chromium浏览器,实际上是电子应用程序)共享的屏幕(我使用的是最现代的型号3B)。在我的实验中,项目才刚刚开始,我正在使用RTCMultiConnection共享屏幕并观看它

问题是,即使Chromium在显示它的时候启用了全硬件加速,它仍然毫无用处地慢(2-3fps,有时有10秒的延迟),我完全理解为什么:因为它使用VP9编解码器,Raspberry上没有硬件加速


问题是:我可以在RTCCulticonnection中使用H264吗?如果是,如何进行?我知道WebRTC本身基本上支持它。

在HTML演示文件中添加以下代码:

connection.processSdp = function(sdp) {
    // remove VP8+VP9 so that Firefox can use H264
    sdp = CodecsHandler.removeVPX(sdp);
    return sdp;
};
转到“dev”目录并打开此文件:第5到30行

确保VP8和VP9线路正确

a=rtpmap:100
a=rtpmap:101
也许VP8是96,VP9是98。因此,相应地更换
rtpmap
。例如

a=rtpmap:96
a=rtpmap:98
确保只使用Firefox进行测试。我不知道Chrome稳定通道是否也支持H264

Fireox可能需要一些标志。您可以在
about:config

确保在HTML演示文件中,在dist/RTCMultiConnection.min.js之后快速链接
dev/codeshandler.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>

var connection=新的RTCCulticonnection();
connection.socketURL=https://yourserver.com:9001/';
connection.processSdp=函数(sdp){
//删除VP8+VP9,以便Firefox可以使用H264
sdp=codesShandler.removeVPX(sdp);
返回sdp;
};
connection.openOrJoin('roomid');

谢谢!虽然我的环境不同,也不是你所说的那样,但它为我指明了方向,最终我成功了。令人惊讶的是,它在Chrome上也能正常工作。