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

webrtc和peerjs:如何选择H264而不是vp8?,webrtc,peerjs,Webrtc,Peerjs,我确实使用PeerJ在两个对等点之间建立连接 有没有办法强制使用H264代码而不是VP8 问候更新: 一旦浏览器支持,您可以使用来实现相同的结果 旧答案: 您必须编辑peerjs代码才能更改编解码器 基本上,您必须更新sdp中的视频线,更具体地说,是视频线 视频线看起来像 m=video 60372 UDP/TLS/RTP/SAVPF 96 98 100 101 116 111 数字100 101等对应于对等方支持的各种编解码器,它们由以下行表示: a=rtpmap:98 VP9/90000

我确实使用PeerJ在两个对等点之间建立连接

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

问候

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

旧答案:

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

基本上,您必须更新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)

我无法在任何浏览器上测试SetCodePreferences()?Link说它现在不工作了:(事实上,似乎没有浏览器支持它。嗨,你能帮我解决问题吗,我做了你所有的步骤,但没有工作