答案1
我正在尝试以尽可能最低的比特率从 OBS 20.0.1 流式传输 FPS 射击游戏,同时保持尽可能最好的质量(即更少的块状像素)。
您可以这样做,但这将花费大量的编码时间。由于您正在直播,我假设您需要单次编码,并且最好是一次快速的编码,即最大限度地利用您的 CPU 资源。因此,您应该尝试使用 CPU 速度预设 - 选择您可以容忍的最高速度。
不可能同时优化所有这些参数(速度、质量、比特率),这就是为什么 x264(和其他编码器)提供一种选择速度预设的方法(例如,x264 中的从ultrafast
到veryslow
)。这些预设分别启用/禁用某些选项,以优化压缩质量或最小化编码时间。
我担心更多的参考帧会增加我的比特率
通常这是正确的,因为它们要大得多。
那么,既然这是高动态流媒体,我应该使用 -tune 动画来增强去块效果吗?或者 PSNR 或 SSIM 会是更有希望的候选者吗?
看看这个其他帖子,其中解释调谐模式。
对于低延迟实时流式传输的特殊情况,使用一次编码过程是没有意义的film
。这是为了保留(颗粒状)细节。
您对低比特率块状现象的担心是可以理解的,但该animation
预设对于直播来说没有意义,因为它还会增加 B 帧的数量,而您无论如何都希望将其设置为 0(或较低的数字)以允许快速编码。B 帧需要对过去和未来的帧进行编码,这意味着编码器/解码器必须保留更大的缓冲区来存储这些帧。B 帧越多,质量越好,但代价是编码时间。
psnr
和模式ssim
也没什么用;它们仅在编码器开发/优化期间使用,实际上可能会导致更差的主观质量。
也许zerolatency
更适合您的用例?
有没有比使用测试流尝试更好/其他的方法来测试哪个 -tune-option 最好?
理论上,你可以对一些原始流进行编码,然后使用不同的设置对它们进行编码,并通过全参考视频质量分析仪运行它们,例如虚拟质谱或者军事空军。这些将为您提供编码的质量分数。但我想,在您的情况下,目视检查结果也足够了。
答案2
调整设置不是为了高/低质量,而是为了优化给定源类型的外观。
调谐动画适用于基于赛璐珞(平面)的动画。不适用于游戏流媒体。
Tune Film 适用于真人视频或电影,但足够逼真的 CGI(例如精细纹理)也可以从中受益。尝试一下没问题。
其他调整设置可能都不合适。最重要的是使用“更快”预设(或更好),因为所有较低质量预设都会显著降低质量。给它足够的比特率也很重要。请注意,x264 将使用相当多的 CPU,因此请做好准备。硬件编码器(例如 NVENC)可能在某种程度上有助于解决此问题,但视频质量会略低。
除非您的平台强制要求,否则没有必要调整低延迟,因为这对于流式传输您的游戏不是必需的(即,如果在已经存在的几秒钟延迟之上还有几分之一秒的延迟,观众不会受到影响)。
答案3
该tune
参数对流质量没有太大影响,这与指南中对其选项的讨论和/或提及不足有关。animation
可以与低比特率流一起使用以增加去块效果,film
可以与高比特率流一起使用以保持流尽可能忠实于源。虽然我不确定去块效果有多有效或缺乏。
PSNR
用于SSIM
速率控制(CBR、ABR、VBR、CRF)之间的测试和比较。