OBS.COM.CN官网 OBS中文版官方分流下载欢迎您!
OBS直播推流软件中文站 OBS官网版本分流下载 OBS插件免费下载
收费技术咨询微信:
OBSStudio
OBS教程

OBS 推流、录像编码器详解

作者:OBS中文官网 日期:2022-10-15 人气:5654

作者:从不咕咕的阿坤 更新日期:2022/6/27

 

一、编码器:

1、x264 【CPU】

使用CPU进行编码,占用CPU资源多,但编码出来视频质量更好

2、intel Quick Sync 【英特尔集成显卡】

即采用英特尔的集成显卡进行H.264的“硬”编码。英特尔显卡编码出来的质量介于CPU编码和NVENC编码之间。

3、NVIDIA NVENC H.264(New)【英伟达显卡】

基于GPU编码,编码的计算负载由NV显卡的GPU承担,从而大大降低了CPU的压力。NV显卡编码的缺陷是在相同的h.264编码参数设置下,其编码后视频的质量比x264要次,特别是在大量运动画面和转场画面的情况下,会更为明显。

对于有的电脑来说,虽然配有NV的独立显卡,但在主板Bios上没有激活该显卡,而是使用的集成显卡,因此在“编码器”中不会有“NVENC H.264”的选项。

4、AMD (Advanced Media Framework)AMF/VCE 【AMD显卡】

采用AMD的显卡进行编码。在其余条件相同的情况下,根据第三方测试结果,在这4种编码中,AMD显卡编码后的视频质量是最低的。

5、其余不常用编码器 AOM AV1 / SVT - AV1】等


AOM AV1 / SVT - AV1 预设 数字越大对性能的影响就越小,可以看到OBS这部分的作者在说明的时候调皮了一下。

 

如果 AMD NVIDIA 卡的编码器同时存在,优先推荐把不玩游戏那张卡拿来加速。

其次按推荐顺序是 NVIDIA卡,接着是 Inter 卡,然后是 AMD 卡,最后才是纯 CPU

但在某些极端条件下:上传很慢(只有12Mb),但是 CPU 非常强的话,优先纯 CPU 来编码,因为 10Mb以内的这种低码率,相同画质纯CPU视频码率会远远小于显卡加速。

以上内容来源于下方OBS优化配置 整理。

二、码率控制器 比特率 == 码率

测速网站:https://www.speedtest.net/

测速网站:https://www.speedtest.cn/

网络测速转换:https://purecalculators.com/zh-CN/convert-kbps-to-mbps

码率越高,画质越清晰,对上传速度需求也就越大,相对,观众下载速度也要达标。

上传不达标,传不动,观众卡顿等你传完播放,上传达标,观众下载不达标,卡顿下载完播放。

CBR = 固定码率:根据设定的码率相对波动,波动幅度很小,码率优先,质量第二。

VBR = 动态码率:固定设定的码率上下波动,波动幅度较大,按照实时上传速度进行推流。

ABR = 平均码率可以看成是权衡CBR和VBR的结果。

该模式也是以质量为目标,和VBR相比,更加温和一点,实际码率波动不会那么大,但可能就会牺牲一点点的质量为代价。

CQP = 恒定QP:瞬时码率会随场景复杂度波动。x264和x265中支持CQP模式,libvpx不支持。

H.264中QP范围是[0, 51]。QP值越大表示越大的量化步长,编码视频的质量越低。QP为0表示进行无损编码,意思就是,0~51,数字越大,画质越低,0就是无损原画质。

不推荐使用这个模式,除非你明确知道这个模式的原理而有特定的用途。

CRF = 固定质量模式:该模式下码率由CRF质量值来进行控制,CRF取值范围在1~51之间,H264编码的默认CRF值为23,取值越低,编码质量越好,同时对CPU或者GPU的压力就越大。

无损:电脑性能和网速强悍的上!

其他不做说明,因为不常用。

根据图像内容的复杂程度来分配不同的码率以确保画面的质量。在图像十分复杂,画面运动剧烈的情况下,其码率就会有大幅的提高,而在画面简单以及运动小或者几乎没有运动的情况下,码率会很低。

三、关键帧间隔

关键帧间隔越大,也就是GOP越长,数据压缩越大,实际码率就会越低。但GOP太大会导致画质变差,特别是在运动画面中最为明显。所以我们不建议GOP设置太长,以确保画面质量,默认情况下可以设置为0,即系统自动设定。如果自己设置,可以考虑在半秒到2秒之间。

四、CPU使用预设(Present)

分了10级,即从最下面的placebo到最上面的ultrafast。级别越靠上,CPU处理的数据量越小,编码时对CPU的处理能力要求越低,但画质会越来越差。该参数对CPU的影响非常大,即使是从faster到fast一个级别的变化,CPU的运行量可能就会翻倍。一般可以选择在fast~veryfast级别之间,平衡画质与CPU的负载。

视频编码器 x264 有许多“预设”,它们会相应地改变您的视频质量和 CPU 使用率。OBS 默认速度非常快,这在大多数情况下是 CPU 使用率和视频质量之间的最佳平衡。可以在设置 > 输出中更改此设置(如果您处于简单模式,请检查启用高级编码器设置)> 编码器预设。

预设的名称旨在指示编码器应该运行多“快”。更快的预设将以质量计算为代价使用更少的 CPU。较慢的预设将使用更多的计算来提高质量,但会使用更多的 CPU。

例如,如果您想在不修改分辨率或 FPS 的情况下尝试降低 CPU 使用率,您可以通过将 x264 预设更改为 superfast 或 ultrafast 来降低 CPU 使用率,x264 将花费更少的时间来尝试使图像看起来不错,并会为您节省一些 CPU 周期。图像可能看起来有点块状或像素化,但您将能够保留您的分辨率/fps。

使用此设置要非常小心,因为即使快一步或慢一步也会对 CPU 使用率产生巨大影响。例如,名为“faster”的预设可以使用两倍于“veryfast”的CPU,即正上方的那个。如果您不确定将其设置为什么,请始终将其设置回非常快。

五、配置(Profile)

定义了视频在进行H264编码时的视频信号抽样和视频压缩方式(算法)相关的一组参数值,或者说特性。H264一共定义了7个档次,我们OBS中只支持最常见的三种,从低到高依次为baseline、main和high。在码率等其余参数不变的情况下,三种档次从低到高压缩率逐渐提高,对CPU计算能力的要求也逐步提高,同时画面质量也会更好。

六、微调(Tune)

8种适应场景。
  1.film:电影画质场景,主要用户画质较高、比特率较高的应用场合;
  2.animation:适用于卡通场景,对平坦区域较大的图形画面有一定的优化;
  3.grain:应用于颗粒化比较多的画面,编码后能够较好保持原画面的颗粒感;
  4.stillimage:应用于静态画面场合。
  5.psnr和ssim:psnr和ssim是2个视频质量的量化指标,用于客观判断编码后的数据值和编码器前数据值的差异,但比不能真正的反应质量是否有所有提升。
  6.fastdecode:使编码后的数据在解码时,对解码器CPU和(或)GPU的要求不高,即低处理能力的解码器也能快速的进行解码。
  7.zerolatency:实现快速编码,适用于延迟要求低的场合,但画质可能有一定的影响。

七、分辨率(resolution)

  1.基础画布分辨率:这是指OBS预监和输出框的分辨率,我们建议该分辨率和输入视频的分辨率一致,在不一致时,需要进行手动拉伸,以恰好适应画布的大小。
  2. 输出(缩放)分辨率:即编码后的输出分辨率,根据实际需要调整,默认情况下建议于原始视频一致。
  输出分辨率的大小对CPU或者计算计算资源有较大的关联性,在码率等其余条件不变的情况下,分辨率越高,占用的计算资源会越高,对硬件的要求越高。
  3.缩小方法:指原高高分辨率视频下变换成低分辨率视频时,所采用的计算方法,obs提高了4种算法,即双直线法、区域法、双立方法和lanczos法,这四种方法下变换后的视频质量依次提高,但更好计算资源,所幸的是,对计算资源的占用量也不会有多大的影响。

八、帧率(FPS)
  即一秒钟内视频的帧数,帧数越高,画面的流畅感越强,临场感越强,对于运动剧烈的画面,建议使用高分帧率。

九、其他杂项说明

关键帧间隔:默认是0,从其他地方看到直播设置2,录像5

GPU按照数字排序设置好你的GPU,使用任务管理器性能可以看到,但并不是绝对准确

录像:MKV  [突然中断会保存]

前向考虑:启动动态B帧,但会增加GPU的使用率(内存)

心里视觉调整:启用编码器设置以优化比特率使用,但会增加GPU的使用率(内存)

 

个人理解:

性能不掉帧 -- 网速不卡顿 -- 画面质量更好

 

数据分析归纳部分来源地址:

[视频]比木OBS如何使用AV1编码|AOM-AV1SVT-AV1编码

https://www.bilibili.com/video/BV1sP4y1P7wy

[视频] CPU预设:

https://www.bilibili.com/video/BV1kV411p7Ry

[视频] 双显卡设置:

https://www.bilibili.com/video/BV1PU4y1T7VQ

[视频] 关键帧、B帧等说明:

https://www.bilibili.com/read/cv9056690/

 

[主要文章] OBS配置项:编码器--软编--硬编+码率控制:

https://blog.csdn.net/smartgps2008/article/details/124501049


[
文章] OBS直播优化配置:

https://blog.csdn.net/weixin_30883777/article/details/96363622

[文章] OBS推流编码器参数设置:

https://blog.csdn.net/zhulc2001/article/details/104906929/

[文章] OBS GITHUB

https://github.com/obsproject/obs-studio/wiki/General-Performance-and-Encoding-Issues


付款方式
×