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

时间:2018-08-10 14:00:26

标签: webrtc peerjs

我确实使用peerjs https://peerjs.com来稳定2个对等点之间的连接。

有没有一种方法可以强制使用H264代码而不是VP8?

致谢

1 个答案:

答案 0 :(得分:1)

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

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

视频行将类似于

<style>
.fa:before {
  content:"?"; /*if the content exist it will be replaced later, if not you will see this*/
}

</style>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" >
<i class="fa fa-map-markerzzzz"></i>
<i class="fa fa-user"></i>

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

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

因此,您必须首先获取sdp并找到H264编解码器的编号,然后将其移至视频行中列表的开头。

例如,如果H264编解码器的编号为100,则需要将上述视频行更改为

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

对于主叫方,在创建要约之后但在设置localDescription之前修改sdp

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

对于答录器端,在创建答案后修改sdp

pc.createOffer().then(function(offer) {

    sdp = offer.sdp;
    changedsdp = updateCodec(sdp) //Function to modify the sdp
    offer.sdp = changedsdp

    pc.setLocalDescription(offer)