#1597·samples

可扩展视频编解码器包括 SVC 支持检查

作者: opusonline创建于 2023年3月13日更新于 2024年4月28日
标签bug-in-chrome

请先阅读一下! 请使用 discuss-webrtc 进行一般的技术讨论和问题。 如果您发现了原生 libwebrtc SDK 或浏览器在 WebRTC 方面的行为中的问题或错误,请在相关的错误跟踪器中创建一个问题。 您可以在 这里 找到更多关于如何提交错误以及如何在正确的地方提交的信息。 - [x] 我理解这里创建的问题仅与此仓库中的示例有关 - 不是浏览器或 SDK 的问题 - [x] 我提供了重现步骤 - [x] 我提供了浏览器名称和版本 - [x] 我提供了此处示例的链接或其修改版本 注意:如果上述复选框未勾选(在问题发布后您会这样做),则该问题将被关闭。 - [x] 受影响的浏览器 - 浏览器名称(包括版本),例如 Chrome 64.0.3282.119 - Google Chrome 110.0.5481.77 - 描述 - 在 SVC 示例 中添加一个检查当前浏览器是否支持 SVC,因为即使是 Chrome >= 101,也会在 MediaCapabilities.encodingInfo() 中返回 supported: true,其中包含 scalabilityMode。 但是,SVC 仅在 Chrome >= 111 中受支持(请参见 https://chromestatus.com/feature/5769626174619648)。 - 我找到检查此问题的唯一方法是: - 使用以下代码: - js - () => { - let supported = false; - try { - const pc = new RTCPeerConnection(); - const scalabilityMode = 'L2T2'; - const transceiver = pc.addTransceiver('video', { sendEncodings: [{ scalabilityMode }] }); - const parameters = transceiver.sender.getParameters(); - const [encoding] = parameters.encodings || []; - supported = Boolean(encoding && encoding.scalabilityMode === scalabilityMode); - } catch (error) { - console.error(error); - } - return supported; - }; - - 步骤 - 在 Chrome 浏览器 >=101 和 < 111 中打开 SVC 示例 https://webrtc.GitHub.io/samples/src/content/extensions/svc/,允许相机访问,选择 "video/VP8" 作为编码器偏好设置。 - 预期结果 - 由于 SVC 在 Chrome < 111 中不受支持,可用的可扩展性模式列表应为空。 - 实际结果 - 可用的可扩展性模式包括 L1T1、L1T2 和 L1T3。