webrtc 和 peerjs:如何选择 H264 而不是 vp8?
webrtc and peerjs: how to choose H264 instead of vp8?
我确实使用 peerjs https://peerjs.com 在 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
对于调用方,在创建报价之后但在设置 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)
我确实使用 peerjs https://peerjs.com 在 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
对于调用方,在创建报价之后但在设置 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)