webrtc 和 peerjs : how to choose H264 instead of vp8?

标签 webrtc peerjs

我确实使用 peerjs ojota 在 2 个对等点之间建立连接。
有没有办法强制使用 H264 代码而不是 VP8 ?
问候

最佳答案

更新:
一旦浏览器支持,您可以使用 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)

关于webrtc 和 peerjs : how to choose H264 instead of vp8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51788193/

相关文章:

webrtc - Peerjs 不断失去连接并且用户 ID 丢失

javascript - PeerJS:是否可以同时传输调用和数据?

javascript - 将视频从浏览器流式传输到 Amazon Kinesis Video

javascript - Webrtc setRemoteDescription 对调用者不起作用

javascript - chrome 中 googRTT 的单位 ://webrtc-internals

html - WebRTC 分辨率限制

webrtc - 虚拟视频设备 - v4l2loopback - webRTC

node.js - Azure 上的 PeerJS 服务器 404

linux - 没有浏览器的 Raspberry Pi 上的 WebRTC