首页 > 其他分享 >好用的开源免费录屏工具|OBS录屏参数设置|OBS录屏参数优化|录屏工具科普|OBS如何设置录屏才能不模糊

好用的开源免费录屏工具|OBS录屏参数设置|OBS录屏参数优化|录屏工具科普|OBS如何设置录屏才能不模糊

时间:2024-07-29 23:54:06浏览次数:17  
标签:视频 输出 分辨率 录制 录屏 参数 设置 OBS 参数设置

背景/引言

我的需求

相信这也是大多数用户的录屏需求。

选择一款开源免费的PC录屏软件(开源意味着可能需要了解一些参数概念以及如何设置,设置多少的问题,灵活性带来入门门槛的问题,但是相应的也会掌握一些视频相关的知识,也非坏事),不是直播录制,而是录制屏幕即可;

关键的需求,录制的视频质量要好,不要模糊没法看(这在一些商业软件上体现在高清录屏可能需要开会员);

然后我当前不需要录制音频,因此可以不用采集音频只录制视频即可,也就是录制的视频无声就行。

OBS录屏软件

支持Windows,Apple OS, Linux系统。

基于我再次使用OBS这款开源录屏软件(它也支持直播录屏,只是我还没这个需求,因此没玩过,有了解的小伙伴可以留言区交流)的一些设置与思考。

我想新手使用,肯定会面临一个问题(因为我已经踩过坑了,还因此苦恼过),那就是:

  • 怎么输出的视频质量那么差?
  • 这软件行不行啊?
  • 免费真的没好玩意儿?

首先先说结论,No!!!

OBS可以输出质量很棒的录屏视频,关键在于视频、输出相关参数设置与参数优化。

掌握核心的参数设置就可以运用自如了。

如果再多说一点,我们可以一起探讨下:如何找到自己想要的合适的参数,这可能对我们来说很重要。

这与自己机器(PC)的硬件性能以及自己的需求(输出视频质量)有关。最简单的就是大概根据我提供的一个参数设置了,能用,效果还行,那就可以直接用,觉得还有优化空间(主要针对输出视频的文件大小,视频质量),可以自己再调整优化;

那如何优化参数呢?

其实,根据实时统计面板可以优化自己的视频输出参数,以更满足自己的需要

在尽可能不丢帧的情况下(丢帧严重代表着当前机器负载过重,会提示编码过载,甚至软件会卡死。丢帧严重肯定会导致视频质量很差,因此我们的参数调整优化的前提是尽量不丢帧),基本可输出设置参数对应的视频效果:

  • 优化视频质量,就提供足够的存储空间(具体占用多大空间,可以简单录一小段,根据录制时长简单推算下),然后提升视频输出相关参数,比如优先考虑提升码率,直到再提升码率导致丢帧严重,或者视频效果无明显提升为止,之后可以再考虑下帧率适当提升看看效果,在者考虑下分辨率提升看下效果
  • 优化输出视频文件大小,那么在视频不是很糊,基本满足需要的情况下,适当降低相关视频相关参数,比如视频码率适当降低,帧率适当降低,分辨率适当降低。

但每次只调整一个参数以查看该参数影响效果;

这些看似增加了使用门槛的设置,实际上也因此给用户带来了极大的灵活性。

初始设置(Getting Started)

这个网上普遍很容易找到一些帖子,这里只做简洁说明:

  • 在界面下方创建一个场景,它类似一个命名空间的作用,隔离不同的场景下的视频来源、混音器、转场动画的配置;也就是说我们可以创建多个场景,比如直播录制场景,屏幕录制场景,每个场景单独设置来源和混音器等,也就是通过场景进行参数隔离;
  • 新建一个来源,我这里是录屏,因此新建了一个显示器采集,选择要录制的那块屏幕;
  • 我这里不需要录制音频进去,因此在设置中禁用了音频,因此混音器这里是空的。正常可以设置采集扬声器的声音和麦克风的声音,然后在这个混音器位置会显示;
  • 剩下的转场动画,我没研究这个参数,因为不涉及,所以可以默认不动;
  • 控制按钮。这个好理解,就是当我们设置好了视频输出相关内容,点击控制按钮面板的开始录制,这个按钮显示为停止录制,就会开始录屏;当录制完成,点击停止录制,即完成本次录制。

OBS软件版本

介绍版本的原因是:不同版本可能界面不太一样,但设置的内容基本上找到对应的地方,设置好,或者根据机器实际情况调整参数以达到自己录制所需效果即可;

当前(24.07.08)下载的OBS最新版本30.2.2

录屏视频相关设置

主要参数:

  • 音频参数设置,我不用录声音进去所以省略该步骤;
  • 视频相关核心参数:分辨率,帧率,码率,视频格式

设置面板在菜单栏-文件-设置

我这里不需要录制音频,只需要录制视频,音频后期再加,因此仅仅设置视频相关参数。

主要看设置面板视频页和输出页。

以下是我的设置以及一些简单的思考。

按照以下给定的最常规参数参考值,理论上可以得到一个可以看的不模糊的一个录屏视频。但是也和你的机器硬件有关(这个参数大部分机器应该没问题,能hold的住,下面会告知我的机器参数);

如果丢帧严重,可以再适当降低些视频质量相关参数:

    • 优先降低帧率比如你先前设置60fps,降到30fps甚至29fps;
    • 降低视频分辨率,比如先前设置的4k那就降到1080p,1080p实际够用;
    • 再者考虑降低码率。

按照次序每次调整一个参数,观察丢帧情况,如果降低帧率,不丢帧了,那可以使用当前帧率录制即可,可以无需再调整分辨率,码率了;如果帧率降了还是丢帧,那就再降低分辨率,再者再降码率。

至于如何查看丢帧情况,下面我们再一起看。

以及再考虑上输出录制视频文件的大小这一因素,下面内容也会涉及到。

视频设置

设置基础(画布)分辨率

其实就是采集屏幕窗口分辨率,这个根据自己显示器来就行;其实按照我的理解也可以叫做输入分辨率,这样更容易理解些,相对于最终录制视频输出分辨率而言(以下我会括号输入分辨率注释);

输入分辨率最常规设置:1080P

(即1920x1080,当然现在的机器分辨率会更高,但是并不意味着1080p不够用,机器性能够可以设置更高的分辨率,1080p仅供参考)

设置输出分辨率

就是设置最终以多大分辨率输出;

在OBS这款软件中,这个值<=画布分辨率(输入分辨率)。

也就是不大于上面的画布分辨率(输入分辨率).

如果设置小于画布分辨率(输入分辨率),就要涉及到算法运算,来对画布分辨率(输入分辨率)运算成输出分辨率,因此就涉及算法选择,算法选择也会涉及到运算速度和输出质量;

总之涉及到运算还是要消耗CPU的,因此考虑自己需要输出的视频分辨率,以及机器性能,能够以画布分辨率(输入分辨率)输出的话,最好,省去转换分辨率的运算(因为如果录制过程CPU很吃紧的话,再加上这里的运算消耗CPU,更会雪上加霜,就会丢帧严重,影响输出质量)。

最常规输出分辨率设置:与输入分辨率一致1080p

保持一致,应该就免去了分辨率转换的运算过程。可以使用这些CPU时间提升视频质量,而不是用在转换分辨率上面。

设置帧率

也是根据机器性能以及自己真实需要,比较常规的就使用30fps,稍微高点就60fps,这个看情况,帧率高对应着输出视频占用存储空间更大。

帧率的设置对效果的影响在于:帧率越高,视频感觉越丝滑,相对于帧率很低,比如玩游戏机器温度太高很卡掉帧卡成翔而言。这样有个对照,大概对这个参数就有了了解。但是并不意味着有60fps就要设置60fps而30fps就没法看。

仅仅简单的参考数据:一般30fps够用了,想再优化下输出效果可以试试设置成60fps。这个可以自己实验,找到自己想要的数值,简单粗暴就安排30fps,之后感觉录制效果不行再考虑加大到60fps再试。

最常规帧率设置:30fps

1080p 30fps这也是当下很多手机拍摄视频默认的输出设置。

可以尝试手机拍拍视频(要拍动态的,比如景物不懂你可以移动手机啊),感觉下设置不同分辨率,不同帧率的效果是什么样的,这样对分辨率和帧率就会有个认识;

常见地:

  • 默认地,分辨率1080p(1920x1080),帧率30fps;
  • 分辨率4k(3840x2160),帧率30fps,会感觉更清晰了,然后视频文件大小更大了,毕竟分辨率提升了;
  • 分辨率4k(3840x2160),帧率60fps,会感觉既清晰,又丝滑顺畅,真实感很强,更有带入感,更有身临其境地感觉,视频文件大小会更大。

可以设置成30fps这个比较常规地设置,然后这里还没讲到一个更重要地参数,码率——它会对视频的质量起到至关重要的作用!下面我们一起来看。

输出设置-录像设置

我这里不是直播使用,仅仅录制PC屏幕:

设置路径:文件-设置-输出-录像

注意:录屏是选择录像,默认进入直播tab页

看下放大图

注意输出模式选择高级,进行录屏输出参数设置。

  • 文件路径:指定下录屏文件输出位置。
  • 我不采集音频,因此我忽略了音频相关内容。参数没调。
  • 关键参数视频码率,这个是视频质量的非常关键的参数,默认它是2000Kbps我记得,遗忘了,反正不是很高,我机器20000Kbps码率能够保证输出质量还OK,且基本不丢帧。

这个值是通过下面参数优化部分的方法逐步优化而来的。

其他的参数可以如上图保持一致就行。

参考码率值:20000Kbps

该码率录制会较为清晰的。

要获得一个自己合适的码率值,可以按照下面的参数优化过程自行调整。

参数优化

观察丢帧情况

调出统计面板:菜单栏,停靠窗口-统计

注意:每次录制前,重置统计面板,以重新记录丢帧情况。

我们对输出视频参数的调整主要依赖丢帧情况。

我们一起看下统计面板大图:

如何充分最大限度利用CPU的性能,以输出最高质量的视频,是我们调整参数,或者说优化视频输出参数的目的。

前提是上图由于渲染延迟错过的帧由于编码延迟跳过的帧这两个参数。

全都是0就是没有丢帧,表示当前机器性能对于当前的参数完全hold住,扛得住没问题,甚至还可以尝试继续提升参数,来压榨CPU,以达到更优视频输出质量。

上面两个参数中任何一个参数存在不是0就是存在丢帧,但丢帧并不意味着视频一定质量很差,丢帧较少,输出视频质量还是ok的;

丢帧严重会导致视频质量变差,甚至严重到上面两个参数爆红了,软件左下方提示编码过载,甚至软件crash掉,得重启软件。

参数优化思路

一般视频效果跟码率关系很大,码率高点会很清晰,码率太低就很糊。当然,码率高也对应着输出视频的占用存储空间也更大。

不能既要...又要...

这意味着:

如果就想优先考虑视频质量,就要提供更多的存储空间;

如果优先考虑视频文件大小(这通常是在视频文件传播,文件分享时考虑的一个因素),那么就在视频清晰前提下视频设置以及输出相关参数能低一点就尽量低一点

当然还存在一种情况,机器硬件性能不得不设置低些;

可以先设置自己比较理想的参数(也可以根据上面我提供的参考值进行初步设置),然后根据实时统计值,观看是否丢帧,在尽可能不丢帧情况下,观看输出视频,人眼自己感觉下质量是否满意。

如果实时统计面板显示不丢帧,表示当前视频相关参数机器hold住。若此时视频质量不OK可以考虑再提升下视频相关参数,比如比较关键的参数码率(这个下面 会讲到在哪设置)。

码率高,分辨率1080P输出视频效果也会比较好,码率低即使输出分辨率为4K输出视频质量也会特别差,特别糊,根本没法看。

因此分辨率参数当前来看1080P是比较常规的设置,不要再低了,然后机器性能很好,显示器4K也可以使用4K分辨率,但无论如何保证码率够。

我的机器参数
  • CPU i7-4712MQ
  • 内存16GB

这个机器参数,它非常普通甚至几近过时,但是按照我的录制视频参数还够用。

因此我相信大部分机器是没问题的,除非机器太古老,那就另当别论了。

我的录制视频参数

我当前设置(根据机器的性能,及根据统计情况进行调整参数最终的效果)是:

(录制:web网页)

  • 原屏1080p录制,1080p输出,因此不需要选择缩小算法(选择1080p,而不是4k,是考虑机器性能,外接显示器4k,但是4k输出1080p会涉及运算,也消耗性能,丢帧太多,因此调整了分辨率最终选择了1080p。直接使用笔记本原屏幕的1080p,直接输出1080p)
  • 帧率60fps(1080p 30fps,60fps我试着我这边机器都还行,因此选择了60fps,要是丢帧太多就换成30fps)
  • 视频码率20000Kbps,(码率越高相对细节越多,越清晰,最终输出视频也会占存储空间越大。我这边两万Kbps的时候比较清晰,默认的几千Kbps效果太差了,这个可以自行测试着来。当3万Kbps时候没有更清晰了,丢帧严重,反而质量变差,且提示编码过载。两万多丢帧也严重,看着统计面板实时码率能到2万Kbps,因此选择了2万Kbps码率)
  • 无声录制,因为后期有音频添加进去,仅仅录制视频,这样输出文件也会稍小;
  • 选择了MP4容器输出,最终以.mp4为后缀;这个格式非常常见,当然可以根据自己需要设置合适的格式。

录制完成丢帧情况:

下图是录制视频时长5分钟20s丢帧情况:

不是很多,但会丢一点点,在全屏网页窗口和退出全屏以及刚开始时候丢帧(因此适当延长视频,以避开开始全屏和退出全屏时候丢帧的影响,当然机器性能好可能没这个问题),还有中间偶尔丢帧。视频质量还OK,也就是丢帧不太严重是没问题的,这个也可以根据实际输出视频的观看质量来自行判断。

标签:视频,输出,分辨率,录制,录屏,参数,设置,OBS,参数设置
From: https://blog.csdn.net/qq_28727015/article/details/140782067

相关文章

  • Dom-API | MutationObserver使用方法详解
    MutationObserver介绍MutationObserver是是一个用于监视DOM变动的WebAPI。通过它可以监控DOM树中的更改,比如元素的属性、子元素的增加和删除等,并在这些变化发生时执行回调函数。可以替代过时的MutationEvents,它具有更高的性能和更广的适用性。使用步骤详细说明1.创......
  • FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有于2017年推出的SRT协议,相比常见的RTMP协议,SRT协议具有更低的延迟,并且消除了卡帧、抖动等花屏现象。腾讯视频云已经引入了SRT协议,在实践......
  • getBoundingClientRect 和 IntersectionObserver 的区别和用法
    目录getBoundingClientRectIntersectionObservergetBoundingClientRectgetBoundingClientRect是一个DOMAPI方法,用于获取指定元素相对于视口的位置和尺寸信息。它返回一个DOMRect对象,包含了元素的左上角和右下角相对于视口的坐标。“图片懒加载”,这个词语想必大家再熟悉不......
  • 华为云对象存储OBS obsutil复制对象定时备份
    Linux系统使用一、下载obsutil安装包安装我这里是x86架构的,ARM架构:wgethttps://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_arm64.tar.gz执行wget命令下载obsutil工具wgethttps://obs-community.obs.cn-north-1.myhuaweicloud.com/ob......
  • 华为云对象存储OBS s3fs挂载使用
    一、服务器下载相关依赖包yuminstallfusesudoyuminstallautomakefusefuse-develgcc-c++gitlibcurl-devellibxml2-develmakeopenssl-devel需要保证云服务器上fuse版本>=2.8.4,部分过老操作系统可能不满足这个约束,需要自行适配。二、下载s3fs支持通过以下两种......
  • uniapp集成安卓原生录屏插件以及使用
    概述我们知道UniApp的出现简化了开发者的工作流程,并减少了代码的重复编写。开发者可以使用一套代码编译到iOS、Android、以及各种小程序的应用,节省了人力和时间成本,但是涉及到与系统交互的时候,比如录屏、录音、录像、文件操作等就需要借助原生插件来完成。这样的话当需要做一......
  • python cobs协议编解码算法demo
    1.SummaryCOBS(ConsistentOverheadByteStuffing)是一种算法,直译为一致的开销字节填充。简而言之,无论数据包的内容如何,都能通过产生高效可靠明确的数据包帧,从而使接受端能够从损坏的包中恢复。通常使用0x00来作为数据包的分隔符,即切割数据包的片分隔符。当使用0x00作为......
  • [二、状态管理]2管理组件拥有的状态(5)@Observed装饰器和@ObjectLink装饰器:嵌套类对象属
    上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二层的属性变化是无法观察到的。这就引出了@Observed/@ObjectLink装饰器。说明从APIver......
  • 电脑可以录屏吗?一步步教你如何操作
    随着电脑的普及和互联网的快速发展,人们对电脑录屏的需求日益增强。无论是录制游戏精彩时刻、制作教程、还是在线会议记录,电脑录屏都发挥着重要作用。但是很多人不知道电脑可以录屏吗,本文将详细介绍两种主流的电脑录屏方法,帮助用户轻松掌握电脑录屏技巧。电脑可以录屏吗?电脑......
  • opencascade AIS_InteractiveContext源码学习9 obsolete methods
    AIS_InteractiveContext前言交互上下文(InteractiveContext)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才......