【问题标题】:webrtc and peerjs: how to choose H264 instead of vp8?webrtc 和 peerjs:如何选择 H264 而不是 vp8?
【发布时间】:2018-08-10 14:00:26
【问题描述】:

我确实使用 peerjs https://peerjs.com 来建立 2 个对等方之间的连接。

有没有办法强制使用H264代码而不是VP8?

问候

【问题讨论】:

    标签: webrtc peerjs


    【解决方案1】:

    更新: 一旦浏览器支持,您可以使用setCodecPreferences 来实现相同的结果。

    旧答案:

    您必须编辑 peerjs 代码才能更改编解码器。

    基本上你必须更新 SDP ,更具体地说,是 sdp 中的视频行。

    视频线看起来像

    m=video 60372 UDP/TLS/RTP/SAVPF 96 98 100 101 116 111
    

    数字 100 101 等对应于对等体支持的各种编解码器,它们由如下行表示:

    a=rtpmap:98 VP9/90000
    a=rtpmap:96 VP8/90000
    

    所以你必须首先获取 sdp 并找出 H264 编解码器的编号,然后将编号移动到视频行中列表的开头。

    比如100是H264编解码器的编号,则需要将上面的视频行改为

    m=video 60372 UDP/TLS/RTP/SAVPF 100 96 98 101 116 111
    

    对于调用方,在创建offer之后设置localDescription之前修改sdp

    pc.createOffer().then(function(offer) {
    
        sdp = offer.sdp;
        changedsdp = updateCodec(sdp) //Function to modify the sdp
        offer.sdp = changedsdp
    
        pc.setLocalDescription(offer)
    

    对于应答方,创建应答后修改sdp

    pc.createAnswer(function(answer) {
        sdp = answer.sdp;
        changedsdp = updateCodec(sdp) //Function to modify the sdp
        answer.sdp = changedsdp
      pc.setLocalDescription(answer)
    

    【讨论】:

    猜你喜欢
    • 2019-06-22
    • 2014-11-15
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    相关资源
    最近更新 更多