NVFBC功能是nvidia给专业设备如Quadro系列产品上利用显卡缓存录像视频的功能。可大幅减少录像对游戏帧数造成的性能损失。但对于真正玩游戏和主播用户而言,大多数都是用的消费级Geforce系列显卡。就偏偏是这样皮衣刀客还是把这个功能在消费级显卡驱动中给关了,因此我们需要手动对驱动打补丁,再安装OBS的NVFBC插件。
1.驱动补丁
首先,NVFBC功能硬件需要开普勒(geforce 6xx)或更新版本的GPU支持。
其次,驱动最好更新到最新稳定版,但也不能太新,目前支持最新470.74。建议不要升级到beta版
可以通过nvidia显卡驱动控制面板或nvidia-smi命令来确认驱动版本
NVIDIA驱动控制面板
nvidia-smi命令查看显卡驱动信息满足以上两个条件,即可继续安装驱动补丁
git克隆下载驱动补丁:
git clone https://github.com/keylase/nvidia-patch.git
进入下载路径打补丁
cd nvidia-patch
sudo ./patch.sh
sudo ./patch-fbc.sh
在这里第一个patch是用来解除消费级显卡上同时利用nvenc功能录像的数量限制。属于可选项目。第二个patch-fbc则是真正开启nvfbc功能。
如果想退回未打补丁的状态:
sudo ./patch.sh -r
sudo ./patch-fbc.sh -r
这个补丁也支持windows版本驱动
2.安装OBS-nvfbc插件
git克隆下载插件:
git clone https:///fzwoch/obs-nvfbc
安装依赖项:
Fedora/其他rpm系(需要RPMfusion源,当然OBS本身也需要这个源因此不详细介绍如何添加RPMfusion源)
sudo dnf install mesa-libGL-devel obs-studio-devel simde-devel meson ninja-build
Ubuntu/其他deb系
sudo apt install libgl-dev libobs-dev libsimde-dev meson ninja-build
进入源码路径编译
cd obs-nvfbc
meson build && ninja -C build
将当前路径下 build/nvfbc.so 复制到~/.config/obs-studio/plugins/nvfbc/bin/64bit
若此路径不存在则需先手动创建
安装完毕后再打开OBS就可以看到录制来源多了一个NvFBC source选项
NvFBC source根据这个插件的项目主页介绍,暂时采用了现存和系统内存直接互相捣数据的方案,对于OBS来说还不是直接从显存的某个buffer直接读数据,因此还不是最优解。除非将来nvidia进一步开放api。
实测下来10700F+32G DDR4+1T NVME SSD(西数SN550)+1660ti 4K游戏+录像大约帧率损失在8%-10%。相比传统方式,大约70-80帧的原始性能,录像时动辄掉20-30帧;现在只损失6-8帧,有比较明显改善。