O
OBS, na maioria das distros
Linux, já possui a aceleração por hardware
VAAPI. Na maioria dos casos funciona bem, mas geralmente em altas resoluções nem sempre funciona bem. Para resolver isso vou mostrar como usar o AMD AMF (Advanced Media Framework) no OBS.
Importante lembrar que no meu caso o AMF funcionou muito melhor que o VAAPI, talvez para você não seja tão efetivo.
Antes de instalar e habilitar o AMF, é preciso que o seu FFMPEG tenha suporte para ele, para verificar execute:
ffmpeg -encoders | grep amf
Se tiver suporte ótimo! Senão será necessário recompilá-lo habilitando o suporte ao AMF, um guia para compilar o ffmpeg:
O
AMF está disponível pelo driver "amdgpu-pro", para instalar siga os passos:
Ubuntu:
sudo apt install amf-amdgpu-pro
SUSE/SLE:
zypper install amf-amdgpu-pro
CentOS/RHEL:
yum install amf-amdgpu-pro
Arch:
yay -S amf-amdgpu-pro
Também é necessário ter o "StreamFX" instalado, para que o OBS reconheça os novos codecs.
Arch:
yay -S obs-streamfx
Ou siga as instruções:
Installation - Xaymar/obs-StreamFX Wiki - GitHub
Para manter o driver open-source(RADV) como padrão você pode adicionar uma variável em "/etc/environment", a variável ficaria assim:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
Para usar o OBS com AMF, devera ser executado com o driver amdgpu-pro:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json obs
Também pode ser adicionado ao lançador do OBS, ficaria assim:
env VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json obs
Ou caso queira deixar o amdgpu-pro completamente separado é possível colocá-lo em uma pasta de sua escolha, ex.:
sudo mkdir /usr/local/amdgpu-pro
sudo mv /usr/share/vulkan/icd.d/amd_pro_icd64.json /usr/local/amdgpu-pro
Para usar o OBS com AMF, deverá ser executado com o driver amdgpu-pro:
VK_ICD_FILENAMES=/usr/local/amdgpu-pro/amd_pro_icd64.json obs
Também pode ser adicionado ao lançador do OBS, ficaria assim:
env VK_ICD_FILENAMES=/usr/local/amdgpu-pro/amd_pro_icd64.json obs