WebRTC 如何指定 H265解码器

news/2024/7/20 20:33:39 标签: webrtc, iOS

WebRTC 本身支持多种视频编解码器,但 H.265/HEVC 编解码器的支持主要取决于浏览器或应用的实现。不过,如果你确定你的 WebRTC 实现和对端支持 H.265,可以通过修改 SDP 来优先选择 H.265 编解码器。

以下是如何指定 H.265 作为优先解码器的基本步骤:

获取 SDP
当你创建或接收一个 offer 或 answer 时,你将会得到一个 Session Description,也叫做 SDP (Session Description Protocol)。

修改 SDP
搜索 SDP 中与 H.265 有关的 “m=” 行。这一行描述了一个媒体流及其属性。
例如,你可能会看到这样的东西:

m=video 9 UDP/TLS/RTP/SAVPF 96 97 98
a=rtpmap:96 H265/90000

在这里,96、97 和 98 是可用编解码器的 payload 类型,其中 96 对应 H.265。

调整编解码器优先级
为了使 H.265 有更高的优先级,你可以将其放在 m=video 行中其他 payload 类型之前,如:

m=video 9 UDP/TLS/RTP/SAVPF 96 97 98

设置修改后的 SDP
将修改后的 SDP 设置为本地或远程描述。

let pc = new RTCPeerConnection();

pc.createOffer().then(offer => {
  let modifiedSDP = modifySDPToPreferH265(offer.sdp);
  return pc.setLocalDescription({type: offer.type, sdp: modifiedSDP});
}).then(() => {
  // 接下来的代码,例如发送 SDP 给远程对端等。
});

function modifySDPToPreferH265(sdp) {
  // 这里可以添加实际修改 SDP 的代码。
  // 根据上面的说明,找到与 H.265 相关的 "m=" 行,并重新排序编解码器的 payload 类型。
  return sdp;
}

http://www.niftyadmin.cn/n/5022576.html

相关文章

【软件测试】设计优秀的测试用例

前言 我从来没有好好的写过一个测试用例,之前做开发虽然写单元测试和流程测试,基本上都是基于自己的代码,而且单元测试和流程测试的框和规范已经非常完善,你只需要填空就行,后来转做自动化测试,但我的做事…

jira流转issue条目状态transitions的rest实用脚本,issue状态改变调整

官方文档链接地址: POST Transition issue Performs an issue transition and, if the transition has a screen, updates the fields from the transition screen. sortByCategory To update the fields on the transition screen, specify the fields in the fiel…

成绩定级脚本(Python)

成绩评定脚本 写一个成绩评定的python脚本,实现用户输入成绩,由脚本来为成绩评级: #成绩评定脚本.pyscoreinput("please input your score:") if int(score)> 90:print("A") elif int(score)> 80:print("B&…

【深度学习】P1 单层神经网络 - 线性回归(待完成)

单层神经网络 - 线性回归 线性回归基本要素1. 模型2. 模型训练3. 训练数据4. 损失函数5. 优化算法6. 模型预测 线性回归与神经网络1. 神经网络图 以一个简单的房屋价格预测为例,介绍解释线性回归这一单层神经网络。无需纠结于什么是单层神经网络,在本文的…

Windows MongoDB详细安装与配置

MongoDB详细安装与配置 下载地址 MongoDB安装 1.双击安装包进行安装 2.点击I accept the tems in the license agreement,点击Next 3.选择默认安装路径,点击completem;自定义安装路径,点击custom,点击browse选择路径&#xff0c…

Sentinel服务熔断和流控

Sentinel服务熔断和流控 简介 Sentinel ​ 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来…

ros线程订阅API

代码功能 这段代码实现了一个ROS的临时Subscriber,主要功能是: 初始化时传入topic名称、消息类型、队列大小等参数 提供get_data()接口获取最新消息数据 调用get_data()时才会创建Subscriber,并开始接收数据 一定时间内如果没有调用,则会自动销毁Subscriber 可以重用,再次…

14025.ZynqMP System Monitors 监控模块

文章目录 1 背景2 ZynqMp System Monitors2.1 Introduction2.2 Features2.3 PLSYSMON Module2.4 PSSYSMON Module2.5 编程示例1 背景 本文背景需要获取ZynqMp 的PS温度、PL温度,以及在PL sysmon 部分,VP_VN 外接有pmic采集的电压。参考xilinx手册 ug1085, ug1087,ug580.2 Zyn…