代码之家  ›  专栏  ›  技术社区  ›  yarek

webrtc和peerjs:如何选择H264而不是vp8?

  •  0
  • yarek  · 技术社区  · 7 年前

    https://peerjs.com 建立两个对等点之间的连接。

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

    1 回复  |  直到 7 年前
        1
  •  4
  •   Akil    6 年前

    您必须编辑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)
    

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