webrtc自适应分辨率的设置

news/2025/1/11 6:12:49/

DegradationPreference 是一个枚举类,用于在视频编码或实时通信(如 WebRTC)中指定系统资源不足时如何处理质量下降的策略。以下是该枚举类的中文解释:

enum class DegradationPreference {// 禁用:不根据资源过载信号采取任何行动。不属于 Web API 的一部分。DISABLED,// 保持帧率:在资源过载时,请求降低分辨率,可能会导致画面缩小。MAINTAIN_FRAMERATE,// 保持分辨率:在资源过载时,请求降低帧率,可能会导致丢帧。MAINTAIN_RESOLUTION,// 平衡模式:尝试在帧率和分辨率之间找到一个“令人满意”的平衡点。BALANCED,
};

详细解释:

  1. DISABLED

    • 含义:禁用任何基于资源过载信号的质量下降策略。

    • 适用场景:当你不希望系统自动调整视频质量时使用。注意,这个选项通常不属于 Web API 的一部分。

  2. MAINTAIN_FRAMERATE

    • 含义:在资源过载时,优先保持帧率,降低分辨率以减轻系统负担。

    • 适用场景:适用于对流畅性要求较高的场景(如游戏直播、实时视频通话),即使画面分辨率降低,也要确保视频流畅。

  3. MAINTAIN_RESOLUTION

    • 含义:在资源过载时,优先保持分辨率,降低帧率以减轻系统负担。

    • 适用场景:适用于对画质要求较高的场景(如演示文稿、静态画面),即使帧率降低,也要确保画面清晰。

  4. BALANCED

    • 含义:在资源过载时,尝试在帧率和分辨率之间找到一个平衡点,既不过分降低帧率,也不过分降低分辨率。

    • 适用场景:适用于大多数通用场景,兼顾流畅性和画质。

使用场景示例:

  • 如果你在开发一个视频会议应用,可以选择 MAINTAIN_FRAMERATE,以确保视频流畅性。

  • 如果你在开发一个屏幕共享应用,可以选择 MAINTAIN_RESOLUTION,以确保共享内容的清晰度。

  • 如果你不确定具体需求,可以选择 BALANCED,让系统自动调整。

这个枚举类帮助开发者在资源有限的情况下,灵活地控制视频质量与性能之间的权衡。

具体在项目中配置:

	rtc::scoped_refptr<CapturerTrackSource> video_device =CapturerTrackSource::Create();if (video_device) {rtc::scoped_refptr<webrtc::VideoTrackInterface> video_track_(peer_connection_factory_->CreateVideoTrack(video_device, kVideoLabel));//main_wnd_->StartLocalRenderer(video_track_.get());((MainWindow*)main_wnd_)->registerFrame(video_track_.get());auto result_or_error = peer_connection_->AddTrack(video_track_, { kStreamId });auto v = result_or_error.value();auto para = v->GetParameters();para.degradation_preference = webrtc::DegradationPreference::DISABLED;v->SetParameters(para);if (!result_or_error.ok()) {RTC_LOG(LS_ERROR) << "Failed to add video track to PeerConnection: "<< result_or_error.error().message();}}


http://www.ppmy.cn/news/1562168.html

相关文章

标定 3

标定场景与对应的方式 标定板标定主要应用场景: (1)无法获取到执行机构物理坐标值,比如相机固定,执行机构为传送带等 (2)相机存在畸变等非线性标定情况,需要进行畸变校正 (3)标定单像素精度 (4)获取两个相机之间的坐标系关系 标定板操作步骤: (1)确定好拍…

【踩坑记录❌】ubuntu 安装 NVIDIA 显卡驱动不要 autoinstall

背景 在 ubuntu 22.04 安装 NVIDIA 显卡驱动参考了 博客 的步骤进行&#xff0c;发现有很多评论也出现了无法联网的情况 后续解决 尝试了网卡驱动下载的各类方法&#xff0c;安装驱动的过程中又缺失内核头、 gcc 编译器等文件。由于没有网络&#xff0c;每次缺失的文件只能从…

基于Express+vue+高德地图API实现的出行可视化APP

基于Expressvue高德地图API实现的出行可视化APP 1.项目简介 解决出行问题&#xff0c;用于出行行程记录&#xff0c;路线规划&#xff0c;数据可视化分析的移动端webapp 1.1技术栈 前端&#xff1a;移动端&#xff0c;vue全家桶&#xff0c;Mand组件库&#xff0c;Echarts.…

数据结构——栈的实现

今天&#xff0c;我们来写一下关于栈的博文。 1.首先我们先了解一下什么是栈&#xff1f; 一&#xff1a;概念&#xff1a; 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端称为栈顶&#xff0c;另…

conda相关操作

conda 是一个开源的包管理和环境管理工具&#xff0c;主要用于 Python 和数据科学领域。它可以帮助用户安装、更新、删除和管理软件包&#xff0c;同时支持创建和管理虚拟环境。以下是关于 conda 的所有常见操作&#xff1a; 1. 安装 Conda Conda 通常通过安装 Anaconda 或 Mi…

Word快捷键汇总

Word 中的键盘快捷方式 - Microsoft 支持 1 常用到的快捷键 执行的操作 按 打开文档。 CtrlO 创建新文档。 CtrlN 保存文档。 CtrlS 关闭文档 CtrlW 将所选内容剪切到剪贴板中。 CtrlX 将所选内容复制到剪贴板中。 CtrlC 粘贴剪贴板的内容。 CtrlV 选择所有文档…

大数据学习(32)-spark基础总结

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91e…

栈与队列OJ题精选,数据结构的实践应用

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…