I installed the obs using home manager:
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
obs-backgroundremoval
];
};
And tried to enable opengl and vaapi using this config:
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
vaapiVdpau
libvdpau-va-gl
];
};
environment.sessionVariables.LIBVA_DRIVER_NAME = "iHD";
But OBS doesn’t show the hardware option in the video encoder config.
When I run obs --verbose
, I see these logs related to the opengl:
info: Initializing OpenGL...
debug: Created EGLDisplay 0x121a0c0
info: Loading up OpenGL on adapter Intel Mesa Intel(R) HD Graphics 530 (SKL GT2)
info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 23.1.9, shading language 4.60
debug: Loading module: obs-ffmpeg.so
error: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: No such file or directory
debug: VAAPI: Initializing display in vaapi_device_h264_supported
debug: Libva: VA-API version 1.20.0
debug: Libva: Trying to open /run/opengl-driver/lib/dri/nouveau_drv_video.so
debug: Libva: Found init function __vaDriverInit_1_20
debug: Libva: va_openDriver() returns 0
debug: VAAPI: Display initialized
info: VAAPI: API version 1.20
debug: VAAPI: 'Mesa Gallium driver 23.1.9 for NV117' in use for device '/dev/dri/renderD128'
debug: VAAPI: Initializing display in vaapi_device_h264_supported
debug: Libva: VA-API version 1.20.0
debug: Libva: Trying to open /run/opengl-driver/lib/dri/iHD_drv_video.so
debug: Libva: Found init function __vaDriverInit_1_20
debug: Libva: va_openDriver() returns 0
debug: VAAPI: Display initialized
debug: VAAPI: 'Intel iHD driver for Intel(R) Gen Graphics - 23.3.5 ()' in use for device '/dev/dri/renderD129'
debug: '/dev/dri/renderD129' support encoding with VAProfileH264ConstrainedBaseline
debug: '/dev/dri/renderD129' support encoding with VAProfileH264Main
debug: '/dev/dri/renderD129' support encoding with VAProfileH264High
info: FFmpeg VAAPI H264 encoding supported
debug: VAAPI: Initializing display in vaapi_device_hevc_supported
debug: Libva: VA-API version 1.20.0
debug: Libva: Trying to open /run/opengl-driver/lib/dri/nouveau_drv_video.so
debug: Libva: Found init function __vaDriverInit_1_20
debug: Libva: va_openDriver() returns 0
debug: VAAPI: Display initialized
debug: VAAPI: 'Mesa Gallium driver 23.1.9 for NV117' in use for device '/dev/dri/renderD128'
debug: VAAPI: Initializing display in vaapi_device_hevc_supported
debug: Libva: VA-API version 1.20.0
debug: Libva: Trying to open /run/opengl-driver/lib/dri/iHD_drv_video.so
debug: Libva: Found init function __vaDriverInit_1_20
debug: Libva: va_openDriver() returns 0
debug: VAAPI: Display initialized
debug: VAAPI: 'Intel iHD driver for Intel(R) Gen Graphics - 23.3.5 ()' in use for device '/dev/dri/renderD129'
debug: '/dev/dri/renderD129' support encoding with VAProfileHEVCMain
debug: VAAPI: VAProfileHEVCMain10 is not supported by the device '/dev/dri/renderD129'
info: FFmpeg VAAPI HEVC encoding supported