OBS直播录制 高级设置 H264计算、配置、等级、帧、颜色、色彩,OSU音游设置等 杂谈|天天快消息

2023-05-14 19:12:40 来源:哔哩哔哩

本文核心的主旨是帮助音游玩家调整自己的OBS设置,理解设置的目地,影响什么。而不是一味的抄参数,不知其所以然。学术性错误请谅解,非常欢迎技术性指正,互相学习,批判性质的请远离,非常感谢。


(资料图)

首先需要注意,以下所述是一种思路,关键在于理解,不同参数都是互相影响的。对于obs高级设置,应该稍有一定的了解,本文稍偏硬核向。

1.     首先打开<H264级别(Level)计算器.htm>

https://www.cnblogs.com/zyl910/archive/2011/12/12/h264_level_calculator.html尾页下载,

感谢大佬

2.     进入网络测速网址,进行测速,建议多测几次,得到一个靠谱的值

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

我的上传网速为68Mbps,即68 Mbps /8≈8M/s(MBps,实际所见的网速),

计算时保守一点,向下取整。

3.     根据所测网速,在计算器网页下面的表,查得自己能用的Max video bit rate (kbit/s)和Level,我的网络68Mbps=68,000kbit/s(kbps)

基于1080P@60FPS,我就是处于L4.2~5之间,注意这是一种参考方法,并不是实际意义上的换算,影响带宽因素极多,诸如VBR、CBR、ABR、CQP、CQ 、crf等。

对于L5级别,我能跑但跑不满,并且差距略大,

使用Baseline配置下(BP),跑不到112Mbps(14M/s),

使用main配置下(MP),跑不到112Mbps(14M/s),

使用High配置下(Hip),跑不到140Mbps(18M/s)

相信这个时候你也明白了,obs中的配置的区别,也就是理论支持的最高画质不同,

如果你想直播的同时预留网速做别的,那么你的设置速度应该小于测量网速,

如我使用L4.2,HiP,6300 Kbps,那我画质跑满的情况下至少剩500/8=625KB/s网速,

如果我播的是网络游戏,团战或者进游戏时可能就会因网速而卡,当然网卡cpu等会分配带宽,这只是一种举例。

网络游戏(如命运2或APEX)一般要预留3MB/s的峰值网速才不卡,LOL游戏中一般100KB/s左右,团战可能会涨到大几百。

盲目的拉满画面,就可能让你游戏不畅

4.    Obs设置-输出-编码器,选择x264或H264

本文中不讲此设置,涉及较广,不影响理解下文和设置。

无论使用哪种,都跑不开预设这一项,设置中叫cpu预设或预设,这个预设就包含了大量的编码参数,包括level。

当你需要特殊设置时,就要在最下面的设置中额外指定参数,见5.

假如预设选择了速度,你画面是1080P@60FPS,那么这时它给你预设的是level4.2,而你的画面简单、但是速度极快,既想要速度带来的快速编码,由想要超高码率,那么就需要单独设置level=5,如果用120FPS,那么就要设置level=5.1。

以上只是假设,不一定是实际含义,预设以后会另开一篇单独讲他对画面的影响。

5.    Obs设置-输出-AMF/FFmpeg,看不懂或没需求就空着

编码器用x264时,此项叫x264选项,

编码器用h264、265时,此项叫AMF/FFmpeg

一般就是输出页最后一行,这里可以输入自定义参数,如<level=4.2 ref=4>等,一般不用写,Ref是参考帧数,见10.

6.    Obs设置-输出-配置,一般用main或High

我的网速是68Mbps,所以我用L4.2级别时,配置最好设置为high,用L5级别时,配置最好设置为main或high。

而baseline和main对配置的需求稍有不同,一般用main就行,老机器用baseline(因为老机器带不动高清)。

这里之所以这样说,是因为main与high稍有其他不同,先不做过多展开。个人不建议无脑High,除非你配置允许。

配置不影响画质,因为多数情况你设置的比较高,但码率喂不饱它

一些极限情况,可能你就是用high会卡,用main不卡,但画面看着也没区别。

7.    Obs设置-高级-颜色格式(像素格式),一般用NV12

分为YUV和RGB,感兴趣自行搜索

YUV:也称YCbCr,亮度通道Y,色度通道UV(含蓝色Cb、红色Cr)

使用YUV格式时,需要区分采样差异,也就是420、444

RGB:红R、绿G、蓝B

使用RGB时就是444

A卡设置-显示器中的像素格式:

上图中,420、444、010都是采样,配合high,就分别近似于表中的Hi422P、Hi444PP、Hi10P

*注意:NV12、P010之外都用于录像,直播时需要转换颜色,增加cpu占用。

直播时,8Bit用NV12,10Bit用P010。

详解 YUV 格式https://blog.csdn.net/vblittleboy/article/details/803313,

4:4:4 表示不降低色彩,颜色信息一一对应。

4:2:2 表示 2:1 水平下采样,没有垂直下采样。色彩为1/2,数据量为2/3,视觉看着和原来差不多

4:2:0 表示 2:1 水平下采样,同时 2:1 垂直下采样。色彩为1/4,数据量为1/2,会造成边缘模糊

图像基础02 丨 什么是4:4:4、4:2:2、4:2:0?https://zhuanlan.zhihu.com/p/41530371

从obs设置中也能够看到对应的采样,不同采样对你实际画面的色彩和亮度都有影响,当你和观众使用同款显卡、显示器设置时,这个颜色格式设置也会影响你们实际看到的颜色是否相同。同时这也是影响码率的因素。设置时要综合考虑。

所以有时候你配置用High会卡而main不卡,有可能是因为色彩设置高了,或网速不够,

导致配置处理不动。从表中也能看出,当你用High时,颜色格式影响极大。

如果你对视频接口了解较多的话,应该知道接口协议、带宽等影响画面能跑多少色深(8bit、10bit),以及能不能带动某画质的HDR

8.    高级-色彩空间,一般Rec.709

也就是常说的色域。

Obs中的直播色彩空间通常是:

sRGB(图像标准)或

Rec.709(BT.709)(视频标准),16:9,60hz

在色彩范围上sRGB= Rec709(但是显示器上实际调色可能不同)

而:

Rec.601(BT.601),YUV422,是标清范围,720P用。

Rec.2100(BT.2020)是开HDR时才用的。

sRGB/REC.709/AdobeRGB/NTSC/DCI-P3色域说的是什么?

https://www.zhihu.com/tardis/bd/art/81158201?source_id=1001

主要的视频格式简介: - 知乎

https://zhuanlan.zhihu.com/p/511584005

到这里需要明白的是,颜色格式与色彩空间相互影响,拓展:

也就是说RBG的冷色信息略多余Rec709,相差只有1%。

对应显示器中常见的99%RGB色域、对应100%Rec709。

(B站很多科普视频也有讲【硬件科普】显示器的色域和色准是什么东西?他会影响哪些体验)

PBR 前言 颜色理论:色度、色域与色彩空间

https://blog.csdn.net/haozi2008/article/details/121473460

详解色彩模型、色域以及颜色空间转换 (dgrt.cn)

https://www.dgrt.cn/a/1919928.html?action=onClick

9.    初步判断

根据以上讲解,应该就清楚自己需要什么样的设置了,再根据实际情况做取舍

直播或播录双工,用NV12,Rec.709;只录像,可以用I444或RGB,sRGB

其实不用444就没那么大影响

10. 计算

有了以上的了解,这时再进行计算,就很清晰了。

1)      在in中设置实际的宽度、高度、帧率;

2)      看out中的level,去改in中  level。这里我计算出的是4.2,将in里改为level4.2后,out中得到ref为4.3

3)      将计算出的4.3输入in中,再次得到level5,

4)      这时注意看,out中L4.2下已经支持64FPS,其实我们就不用再改了。

假如重复操作,直到in和out一致看到out中的level和ref都不再变了,那么就是L5,ref13.6。无论怎样,我们都会得到最终的DPB。

经验上DpbMbs/10(*2)=比特率,如3600或7100 kbps。注意含义上完全不是一回事。

11. 结果

我的硬件信息:68Mbps的网速,8bit、P3色域显示器,不开HDR,NV12+Rec709

使用显卡进行h264编码VBR速率控制,1080P输出画面,通过计算,可使用以下配置:

如果你的配置极好,网络上行10M/s以上,用x264\crf14-18,h264\CQP15-23,能得到一个质量较为恒定的画面。不在本文范围

下图是油管推荐码率:

YouTube 推荐的上传编码设置 - YouTube 帮助

https://support.google.com/youtube/answer/1722171?hl=en#zippy=%2Ccontainer-mp%2Caudio-codec-aac-lc%2Cvideo-codec-h%2Cframe-rate%2Cbitrate

码率控制(一):理解码率控制模式(x264,x264,vpx)_crf/cq什么意思_Dillon2015的博客-CSDN博客

https://blog.csdn.net/Dillon2015/article/details/105825814

12. 帧与音游建议

实际视频画面中,单帧色彩不同,还有GOP压缩编码等因素影响,并不容易计算出真实的最大比特率。

尤其是音游,画面长时间保持快速运动,可能有些玩家遇到过,无论性能占用、码率、上行都不存在问题,但画面看着就是卡卡的这种情况。就是驱动问题,或画面设置不匹配导致输出画面不流畅。这并不是常说的丢帧。

强烈建议先看一下大佬的讲解,之后再阅读下文:

关于GOP和帧率、码率的关系 - 知乎 https://zhuanlan.zhihu.com/p/259870429

直播中建议最大B帧为2,一个GOP循环中最多两个B,这样尽可能减少了输出延迟,渲染帧时不用太多的等待(保证实时性),因为B帧是需要等后面的帧渲染完才会渲染自己,。

I帧是关键帧,IDR是关键帧并且当输出IDR帧时,DpbMbs就会清空,二者不同,IDR更重要。

也就是说,让两个IDR之间最多只有2个B帧,如果没有B帧,那画面就是单向预测渲染,当预测过头时,就要“等待”,也就是说画面匀速运动时,突然由于其他如BGA影响(或者其他突发性画面变化)导致渲染过头了,note运动就要卡一下,等待后面关键帧出来重新做预测才行。不同于画面撕裂。

这就是为什么需要B帧,B帧在前后两帧动作之间取中位,B帧的存在是为了让前后过渡更加平滑,但B帧不应过多。

对于音游,尤其osu动辄上千FPS。驱动需要判断1s内,将1000帧如何划分。理论上每16.6666……ms渲染1张关键帧,即可保证画面完整平滑,单实际通过压缩后,并没有这么多I帧,可以看出这是存在一定偏移的,这时候预测帧就发挥了平衡误差的作用。

OBS设置中的关键帧间隔,手动输入时最小为1,那么就是1000ms一个完整的IDR间隔。每帧16ms/s间隔渲染,那么第二个I帧前,就可能存在±0.6666……x5的误差,

将60FPS等比缩小到6FPS去看,那么2秒内存在3种可能:

IPPPPP IPPPPP,

IPPBPP IPPBPP,

IPBPBP IPBPBP,

傻瓜一点去看,B帧的增加减少了顺序误差的累积。 

通过I、B帧间隔的设置,可以在一定程度上控制P帧的数量

我的显示器144hz,推流或录像1080P@60FPS:

osu设置Optimal,游戏中就是960FPS,960/60=16,整数倍关系;

osu设置无限制,游戏中0.4ms,即1000/0.4=2500FPS,需要2500/60=41.6666……

Optimal为显示器刷新率*4,power save为*2。同时做60的整数倍圆整。这也是ppy说追求无限制没有意义的一种原因。

Dpb可以理解为一个储存区,每个GOP存在一个独立的储存区,这就意味着,关键帧间隔影响比特率,成正相关。(当然你明白,两个IDR之间视作一个大GOP,但这不意味着1个GOP内没有其他I帧)

H.264 概念解析 - DPB https://zhuanlan.zhihu.com/p/100298666

推流1080P@60FPS时,32640DpbMbs,

3300 kbps,支持1s关键帧间隔

6600 kbps,支持0.5s关键帧间隔

osu设置Optimal,游戏中960FPS,960/60=16,1s内,960张游戏画面,每60张1间隔输出直播帧,60张直播帧中:

3300 kbps,1s关键帧,最大B帧<(60-1I-1P)/2=29

6600 kbps,0.5s关键帧,最大B帧<(30-1I-1P)/2=14

以此类推。。。

推荐2个B帧,就是在一个GOP内,靠前后两次矫正延迟,对于音游来说我是这样理解其影响的。一些直播网站好像也不允许更大了。

PS等有空可以具体实测一下影响,其实自动就好。

*再次强调,这只是一种傻瓜式的简单换算,一定程度上便于理解,不是真实情况。

其他教程:

OBS-推流编码参数的设置(质量、带宽和计算负荷相关 一)

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

OBS-推流编码参数的设置(质量、带宽和计算负荷相关 二)

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

OBS-推流编码参数的设置(质量、带宽和计算负荷相关 三)

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

上文所讲的部分关系并不是实际意义上的关联,只是理解、经验上的一些近似关系,逻辑上可能也并不严谨,伸直自我闭环,请根据自己理解去判断或找相关文件进一步了解。

碎碎念:我自己搜了一下,好像也没有多少真的结合OBS或者游戏去讲设置的。烂大街的给参数,也没个依据,全靠经验。写着写着越来越多,涵盖面太广了,没精力去纠正逻辑

*若上文中引用的文章存在盗链或转载,请您联系我换源

本文核心的主旨是帮助音游玩家调整自己的OBS设置。而不是一味的抄参数,面对参数无从下手。希望能帮助各位,知其然,亦知其所以然。

标签:

上一篇:全球头条:中国最大的动力定位浮托平台完成对接
下一篇:最后一页