我试图弄清楚如何将 webRTC 上的视频编解码器从 vp8 更改为 vp9,并且在任何地方都找不到合适的答案。有人可以带领/告诉我它是如何完成的吗?谢谢
问问题
2976 次
2 回答
5
我认为您需要使用 SDP 来实现它。据我了解,这个想法是端点协商要使用的最佳编解码器。
VP9 发布新闻有一些关于如何将首选编解码器从 VP8 更改为 VP9 https://developers.google.com/web/updates/2016/01/vp9-webrtc?hl=en的提示。
于 2016-06-29T07:31:35.137 回答
0
随着浏览器开始支持setCodecPreferences,您可以检查默认情况下要使用的编解码器的 mimetype 以设置编解码器首选项。例如,如果您希望将 vp8 用于视频,您可以检查“video/vp8”mimetype 并将您的编解码器首选项设置为 vp8 编解码器:
// note the following should be called before before calling either RTCPeerConnection.createOffer() or createAnswer()
let tcvr = pc.getTransceivers()[0];
let codecs = RTCRtpReceiver.getCapabilities('video').codecs;
let vp8_codecs = [];
// iterate over supported codecs and pull out the codecs we want
for(let i = 0; i < codecs.length; i++)
{
if(codecs[i].mimeType == "video/VP8")
{
vp8_codecs.push(codecs[i]);
}
}
// currently not all browsers support setCodecPreferences
if(tcvr.setCodecPreferences != undefined)
{
tcvr.setCodecPreferences(vp8_codecs);
}
改编自此 Pericror 博客文章的代码以强制音频/视频编解码器。
于 2022-01-25T03:31:20.877 回答