代码之家  ›  专栏  ›  技术社区  ›  Mikhail Novikov

RTCMultiConnection是否可以使用H264而不是VP9进行屏幕共享?

  •  1
  • Mikhail Novikov  · 技术社区  · 7 年前

    问题是,即使在Chromium中启用了全硬件加速,它的速度也毫无用处(每秒2-3帧,有时有10秒的延迟),我完全理解原因:因为它使用VP9编解码器,Raspberry上没有硬件加速。

    问题是:我可以在RTCMultiConnection中使用H264吗?如果是,怎么做?我知道WebRTC本身基本上支持它。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Muaz Khan    7 年前

    在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 照着例如。

    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>