qsv/vaapi encoder unavailable in obs

Lengran

New Member
I just switched from Windows to Linux and find the qsv encoder missing in obs. After some searching I still don't have a clue on how to fix it. Can someone give me some ideas so I can get it working please? Thanks for any help.

Screenshot of OBS encoder settings:
Screenshot_20221109_212355.png



My hardware setting is Acer Spin 5 with an Intel i5-1035G4 CPU. OS is Manjaro 22.0.0, kernel 5.19.17-1.
Software side, I have the following packages installed by pacman:
local/intel-gmmlib 22.1.4-2
Intel Graphics Memory Management Library
local/intel-media-driver 22.4.4-2
Intel Media Driver for VAAPI — Broadwell+ iGPUs
local/intel-media-sdk 22.4.4-1
Legacy API for hardware video acceleration on Intel GPUs (Broadwell to Rocket Lake)
local/intel-ucode 20220809-1
Microcode update files for Intel CPUs
local/lib32-libva-intel-driver 2.4.1-1
VA-API implementation for Intel G45 and HD Graphics family (32-bit)
local/lib32-vulkan-intel 22.2.1-1
Intel's Vulkan mesa driver (32-bit)
local/libmfx 22.4.4-1
Intel Media SDK dispatcher library
local/libva-intel-driver 2.4.1-2
VA-API implementation for Intel G45 and HD Graphics family
local/libva-utils 2.15.0-1
Intel VA-API Media Applications and Scripts for libva
local/vulkan-intel 22.2.1-1
Intel's Vulkan mesa driver
local/xf86-video-intel 1:2.99.917+916+g31486f40-2 (xorg-drivers)
X.org Intel i810/i830/i915/945G/G965+ video drivers

vainfo:
vainfo: VA-API version: 1.16 (libva 2.15.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.4.4 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI
VAProfileHEVCMain : VAEntrypointEncSliceLP
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointEncSliceLP
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointEncSlice
VAProfileHEVCMain444 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointEncSliceLP
VAProfileHEVCMain444_10 : VAEntrypointVLD
VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP

OBS is installed by AUR: obs-studio-tytan652.

I have checked ffmpeg it seems have qsv encoders.
$ ffmpeg -encoders | grep qsv
ffmpeg version n5.1.2-1-g05d6157aab Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12.2.0 (GCC)
configuration: --prefix=/usr --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-fontc
onfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libblura
y --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --e
nable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-li
bopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enab
le-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvids
tab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enabl
e-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enabl
e-shared --enable-version3 --enable-vulkan --enable-alsa --enable-bzlib --enable-iconv --enable-libxcb-shm --enab
le-libxcb-xfixes --enable-libxcb-shape --enable-lzma --enable-sdl2 --enable-xlib --enable-zlib --enable-ffnvcodec
--enable-nvdec --enable-nvenc --enable-v4l2-m2m --enable-vaapi --enable-vdpau --enable-librist --enable-lto --en
able-libmfx --enable-libsvtav1 --enable-libvmaf --enable-cuda-llvm --disable-cuvid --disable-debug --disable-sndi
o
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
V..... h264_qsv H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (cod
ec h264)
V..... hevc_qsv HEVC (Intel Quick Sync Video acceleration) (codec hevc)
V..... mjpeg_qsv MJPEG (Intel Quick Sync Video acceleration) (codec mjpeg)
V..... mpeg2_qsv MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video)
V..... vp9_qsv VP9 video (Intel Quick Sync Video acceleration) (codec vp9)

And finally, here's my OBS logs. I can see "FFMPEG VAAPI supported" in the logs.
21:23:09.861: Using EGL/X11

21:23:09.861: CPU Name: Intel(R) Core(TM) i5-1035G4 CPU @ 1.10GHz

21:23:09.861: CPU Speed: 3319.351MHz

21:23:09.862: Physical Cores: 4, Logical Cores: 8

21:23:09.862: Physical Memory: 15786MB Total, 7504MB Free

21:23:09.862: Kernel Version: Linux 5.19.17-1-MANJARO

21:23:09.862: Distribution: "Manjaro Linux" Unknown

21:23:09.862: Session Type: x11

21:23:09.862: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.21.1

21:23:09.862: Qt Version: 6.4.0 (runtime), 6.4.0 (compiled)

21:23:09.862: Portable mode: false

21:23:09.902: OBS 28.1.2-tytan652-1 (linux)

21:23:09.902: ---------------------------------

21:23:09.902: ---------------------------------

21:23:09.902: audio settings reset:

21:23:09.902: samples per sec: 48000

21:23:09.902: speakers: 2

21:23:09.902: max buffering: 960 milliseconds

21:23:09.902: buffering type: dynamically increasing

21:23:09.908: ---------------------------------

21:23:09.908: Initializing OpenGL...

21:23:09.954: Loading up OpenGL on adapter Intel Mesa Intel(R) Iris(R) Plus Graphics (ICL GT1.5)

21:23:09.954: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 22.2.1, shading language 4.60

21:23:09.980: ---------------------------------

21:23:09.980: video settings reset:

21:23:09.980: base resolution: 1920x1080

21:23:09.980: output resolution: 1280x720

21:23:09.980: downscale filter: Bicubic

21:23:09.980: fps: 30/1

21:23:09.980: format: NV12

21:23:09.980: YUV mode: Rec. 709/Partial

21:23:09.980: NV12 texture support not available

21:23:09.980: P010 texture support not available

21:23:09.984: Audio monitoring device:

21:23:09.984: name: Default

21:23:09.984: id: default

21:23:09.984: ---------------------------------

21:23:10.004: No AJA devices found, skipping loading AJA UI plugin

21:23:10.005: Failed to initialize module 'aja-output-ui.so'

21:23:10.023: No AJA devices found, skipping loading AJA plugin

21:23:10.023: Failed to initialize module 'aja.so'

21:23:10.029: Failed to load 'en-US' text for module: 'decklink-captions.so'

21:23:10.036: Failed to load 'en-US' text for module: 'decklink-output-ui.so'

21:23:10.042: A DeckLink iterator could not be created. The DeckLink drivers may not be installed

21:23:10.042: Failed to initialize module 'decklink.so'

21:23:10.212: [pipewire] Available captures:

21:23:10.212: [pipewire] - Desktop capture

21:23:10.212: [pipewire] - Window capture

21:23:10.229: v4l2loopback not installed, virtual camera disabled

21:23:10.240: [obs-browser]: Version 2.18.7

21:23:10.240: [obs-browser]: CEF Version 103.0.5060.134 (runtime), 103.0.0-5060-shared-textures_143.2591+g4204d54+chromium-103.0.5060.134 (compiled)

21:23:10.255: FFMPEG VAAPI supported

21:23:10.312: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.0.1 | RPC Version: 1)

21:23:10.312: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.4.0 | Qt version (run-time): 6.4.0

21:23:10.312: [obs-websocket] [obs_module_load] Linked ASIO Version: 102000

21:23:10.317: [obs-websocket] [obs_module_load] Module loaded.

21:23:10.353: [vlc-video]: VLC 3.0.17.4 Vetinari found, VLC video source enabled

21:23:10.353: ---------------------------------

21:23:10.353: Loaded Modules:

21:23:10.353: vlc-video.so

21:23:10.353: text-freetype2.so

21:23:10.353: sndio.so

21:23:10.353: rtmp-services.so

21:23:10.353: obs-x264.so

21:23:10.353: obs-websocket.so

21:23:10.353: obs-vst.so

21:23:10.353: obs-transitions.so

21:23:10.353: obs-outputs.so

21:23:10.353: obs-libfdk.so

21:23:10.353: obs-filters.so

21:23:10.353: obs-ffmpeg.so

21:23:10.353: obs-browser.so

21:23:10.353: linux-v4l2.so

21:23:10.353: linux-pulseaudio.so

21:23:10.353: linux-pipewire.so

21:23:10.353: linux-jack.so

21:23:10.353: linux-capture.so

21:23:10.353: linux-alsa.so

21:23:10.353: image-source.so

21:23:10.353: frontend-tools.so

21:23:10.353: decklink-output-ui.so

21:23:10.353: decklink-captions.so

21:23:10.353: ---------------------------------

21:23:10.353: ==== Startup complete ===============================================

21:23:10.393: All scene data cleared

21:23:10.394: ------------------------------------------------

21:23:10.400: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.59) 15.0.0'

21:23:10.401: pulse-input: Audio format: s32le, 48000 Hz, 2 channels

21:23:10.401: pulse-input: Started recording from 'alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink.monitor' (default)

21:23:10.401: [Loaded global audio device]: 'Desktop Audio'

21:23:10.401: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.59) 15.0.0'

21:23:10.402: pulse-input: Audio format: s24-32le, 48000 Hz, 2 channels

21:23:10.402: pulse-input: Sample format s24-32le not supported by OBS,using float32le instead for recording

21:23:10.402: pulse-input: Started recording from 'alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source' (default)

21:23:10.402: [Loaded global audio device]: 'Mic/Aux'

21:23:10.403: Switched to scene 'Scene'

21:23:10.403: ------------------------------------------------

21:23:10.403: Loaded scenes:

21:23:10.403: - scene 'Scene':

21:23:10.403: ------------------------------------------------

21:23:11.055: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Desktop Audio)

21:23:11.055:
 
Top