WebRTC 如何指定 H265解码器

news/2024/11/20 7:17:32/

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.ppmy.cn/news/1112823.html

相关文章

elasticsearch6-RestClient操作文档

个人名片: 博主:酒徒ᝰ. 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。 本篇励志:三人行,必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud…

数组相关面试题

1、原地移除数组中所有的元素val,要求时间复杂度为O(N),空间复杂度为O(1)。 OJ链接:27. 移除元素 - 力扣(LeetCode) 分析: 法1:挪到数据,思路如顺序表的头删,将后面的数据向前挪动将…

Windows【工具 04】WinSW官网使用说明及实例分享(将exe和jar注册成服务)实现服务器重启后的服务自动重启

官方Github;官方下载地址。没有Git加速的话很难下载,分享一下发布日期为2023.01.29的当前最新稳定版v2.12.0网盘连接。 包含文件: WinSW-x64.exesample-minimal.xmlsample-allOptions.xml 链接:https://pan.baidu.com/s/1sN3hL5H…

机器学习第六课--朴素贝叶斯

朴素贝叶斯广泛地应用在文本分类任务中,其中最为经典的场景为垃圾文本分类(如垃圾邮件分类:给定一个邮件,把它自动分类为垃圾或者正常邮件)。这个任务本身是属于文本分析任务,因为对应的数据均为文本类型,所以对于此类任务我们首先…

十天学完基础数据结构-第一天(绪论)

1. 数据结构的研究内容 数据结构的研究主要包括以下核心内容和目标: 存储和组织数据:数据结构研究如何高效地存储和组织数据,以便于访问和操作。这包括了在内存或磁盘上的数据存储方式,如何将数据元素组织成有序或无序的集合&…

[NLP] LLM---<训练中文LLama2(三)>对LLama2进行中文预料预训练

预训练 预训练部分可以为两个阶段: 第一阶段:冻结transformer参数,仅训练embedding,在尽量不干扰原模型的情况下适配新增的中文词向量。第二阶段:使用 LoRA 技术,为模型添加LoRA权重(adapter&…

Android 格式化存储之Formatter

格式化存储相关的数值时,可以用 android.text.format.Formatter 。 Formatter.formatFileSize(Context context, long sizeBytes) 源码说明,在 Android O 后,存储单位的进制是 1000 ,Android N 之前单位进制是 1024 。 /*** Fo…

java 字符串只保留数字、字母、中文

public static void main(String[] args) {String str "测 试 WG23-D";// 只留字母String s1 str.replaceAll("[^a-zA-Z]", "");// 只留数字String s2 str.replaceAll("[^0-9]", "");// 只留中文String s3 str.replaceA…