• Support
  • ErsatzTV not using GPU when set to QSV

I have a lenovo mini PC running windows 10 with an Intel(R) HD Graphics 4600 integrated GPU. From reading docs and support I think I should be setting QSV in my ffmpeg profile for it to utilize my GPU. However, when I do that, it throws an error from QSV and falls back to CPU (which then sits at 100% and I end up with lots of freezing and stuttering in playback). See error below from QSV capabilities and ffmpeg section of General capabilities. Is there something I'm missing or doing wrong? Please let me know if any other info is needed to help troubleshoot.

System info:
Intel(R) Core(TM) i7-4765T CPU @ 2.00GHz
8.00 GB RAM
Intel(R) HD Graphics 4600 integrated GPU
Windows 10

QSV Info:

Checking device /dev/dri/renderD128
Exit Code: -1313558101

ffmpeg version n6.1-2-gc7fe7ee8d4-20231121 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-nvenc --enable-nvdec --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-d3d11va --enable-dxva2 --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20231121
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
Input #0, lavfi, from 'nullsrc':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: wrapped_avframe, yuv420p, 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 25 tbn
[AVHWDeviceContext @ 000001f3e56ddd40] Error creating a MFX session: -9.
Device creation failed: -1313558101.
No device available for decoder: device type qsv needed for codec wrapped_avframe.
[vist#0:0/wrapped_avframe @ 000001f3e56dad00] Hardware device setup failed for decoder: Unknown error occurred
[vost#0:0/h264_qsv @ 000001f3e56dcd40] Error initializing a simple filtergraph
Error opening output file -.
Error opening output files: Unknown error occurred

ffmpeg info:

"FFmpegProfiles": [
{
"Id": 1,
"Name": "1920x1080 x264 ac3",
"ThreadCount": 0,
"HardwareAcceleration": "Qsv",
"VaapiDriver": "Default",
"QsvExtraHardwareFrames": 64,
"ResolutionId": 3,
"Resolution": {
"Id": 3,
"Name": "1920x1080",
"IsCustom": false,
"Height": 1080,
"Width": 1920
},
"ScalingBehavior": "ScaleAndPad",
"VideoFormat": "H264",
"VideoProfile": "high",
"VideoPreset": "",
"AllowBFrames": false,
"BitDepth": "EightBit",
"VideoBitrate": 2000,
"VideoBufferSize": 4000,
"AudioFormat": "Aac",
"AudioBitrate": 192,
"AudioBufferSize": 384,
"NormalizeLoudnessMode": "Off",
"AudioChannels": 2,
"AudioSampleRate": 48,
"NormalizeFramerate": false,
"DeinterlaceVideo": true
}
]

    a month later

    I'd guess that if you are using docker to run Ersatz, do you have the iGPU passed through to the docker container?

    Same thing for VMs, however, remember that if a VM is using a GPU it cannot be used by a seperate docker container not within the VM, but you can have multiple docker containers using the same GPU within the same space either within the VM or not. (if that makes sense)

    If you have a dedicated GPU installed into the computer sometimes the iGPU will disable itself in the bios to make way for the dedicated GPU. You'd have to go into the bios and enable to use both.

    That iGPU may be too old for QSV. I would check that you have the latest driver from Intel before trying once more. If that doesn't resolve it you may not be able to use QSV acceleration on Windows.

    goose9137

    8 days later

    Thanks all for the info/help!

    I'm not running in docker or a VM so I think I'm in the clear there.

    I did check if there was a driver update but it appears I'm on the latest so unfortunately I think you're right, it's probably just too old. I'll have to try again if I get a chance to upgrade my server.