Update:您可以使用设置编解码器首选项一旦浏览器支持,即可达到相同的结果。
旧答案:
您必须编辑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 编解码器的编号,然后将该编号移至视频行列表的开头。
例如,如果H264编解码器的编号为100,则需要将上面的视频行更改为
m=video 60372 UDP/TLS/RTP/SAVPF 100 96 98 101 116 111
对于调用方,在创建报价之后但在设置 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)