On 19/01/2026 21:27, David Niklas via ffmpeg-user wrote:
On Mon, 19 Jan 2026 16:51:30 +0000
Peter van den Houten via ffmpeg-user<[email protected]> wrote:
On 17/01/2026 17:52, David Niklas via ffmpeg-user wrote:
On Sat, 17 Jan 2026 09:51:08 +0000
Peter van den Houten via ffmpeg-user<[email protected]> wrote:
On 16/01/2026 18:01, David Niklas via ffmpeg-user wrote:
Hello,
I'm trying to encode a 4K video with ffmpeg. The QSV encoder will
not initialize.
I've tried searching online, but all I can find is that my syntax
might be incorrect. I have tried to read the ffmpeg wiki, but it
doesn't explain what to use nor how to use it. The provided examples
in the wiki fail with the exact same errors as below.
Any ideas?
Thanks!
% ffprobe tmp.mp4
<snip reason=Duplicate version info.">
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tmp.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf62.3.100
Duration: 00:03:15.79, start: 0.000000, bitrate: 36078 kb/s
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661),
yuvj420p(pc, bt709, progressive), 3840x2160, 35970 kb/s, 30 fps, 30
tbr, 90k tbn (default) Metadata: handler_name : VideoHandle
vendor_id : [0][0][0][0]
Side data:
displaymatrix: rotation of -180.00 degrees
% ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -i tmp.mp4 -c:v
vp9_qsv -b:v 2M -preset veryslow vp9_qsv.webm ffmpeg version 8.0
Copyright (c) 2000-2025 the FFmpeg developers built with gcc 12
(Debian 12.2.0-14+deb12u1) configuration: --prefix=/usr/local
--enable-gpl --enable-version3 --enable-nonfree --enable-gray
--enable-doc --enable-alsa --enable-chromaprint --enable-frei0r
--enable-gmp --enable-ladspa --enable-lcms2 --enable-libaom
--enable-libaribb24 --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libcdio
--enable-libcodec2 --enable-libdav1d --enable-libdavs2
--enable-libdvdnav --enable-libdvdread --enable-libflite
--enable-libfontconfig --enable-libfreetype --enable-libharfbuzz
--enable-libglslang --enable-libgme --enable-libgsm
--enable-libilbc --enable-libjack --enable-libjxl
--enable-libkvazaar --enable-libmodplug --enable-libmp3lame
--enable-liboapv --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264
--enable-libopenjpeg --enable-libopenmpt --enable-libopus
--enable-libqrencode --enable-librabbitmq --enable-librav1e
--enable-librist --enable-librsvg --enable-librubberband
--enable-librtmp --enable-libshine --enable-libsnappy --enable-
libsoxr --enable-libspeex --enable-libsrt --enable-libssh
--enable-libsvtav1 --enable-libtesseract --enable-libtheora
--enable-libtwolame --enable-libuavs3d --enable-libv4l2
--enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libvvenc --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxeve --enable-libxevd --enable-libxavs
--enable-libxavs2 --enable-libxvid --enable-libxml2
--enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2
--enable-lzma --enable-libmysofa --enable-openal --enable-opencl
--enable-opengl --enable-openssl --enable-pocketsphinx
--enable-sndio --enable-sdl2 --enable-vapoursynth --enable-libvpl
--enable-v4l2-m2m --disable-stripping --cpu=native
--target-os=linux --enable-shared libavutil 60. 8.100 / 60.
8.100 libavcodec 62. 11.100 / 62. 11.100 libavformat 62.
3.100 / 62. 3.100 libavdevice 62. 1.100 / 62. 1.100
libavfilter 11. 4.100 / 11. 4.100 libswscale 9. 1.100 / 9.
1.100 libswresample 6. 1.100 / 6. 1.100 [QSV @ 0x55c48ea44440]
No supported child device type is enabled Device creation failed:
-38. Failed to set value 'qsv=hw' for option 'init_hw_device':
Function not implemented Error parsing global options: Function not
implemented
Hey David
What version is your Intel CPU?
I gave you the model number in the title (265K), so I'm uncertain what
you're interested in, specifically. Here's the first listing of
/proc/cpuinfo, if it helps:
% less /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 198
model name : Intel(R) Core(TM) Ultra 7 265K
stepping : 2
microcode : 0x119
cpu MHz : 800.095
cache size : 30720 KB
physical id : 0
siblings : 20
core id : 0
cpu cores : 20
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 35
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs
bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf
tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt
tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm
3dnowprefetch cpuid_fault ssbd ibrs ibpb stibp ibrs_enhanced
tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2
smep bmi2 erms invpcid rdt_a rdseed adx smap clflushopt clwb intel_pt
sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk
avx_vnni lam wbnoinvd dtherm ida arat pln pts hwp hwp_notify
hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg
gfni vaes vpclmulqdq rdpid bus_lock_detect movdiri movdir64b fsrm
md_clear serialize arch_lbr ibt flush_l1d arch_capabilities vmx flags
: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad
ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid
unrestricted_guest vapic_reg vid ple shadow_vmcs pml ept_violation_ve
ept_mode_based_exec tsc_scaling usr_wait_pause notify_vm_exiting
ipi_virt bugs : spectre_v1 spectre_v2 spec_store_bypass
swapgs bhi bogomips : 7759.00 clflush size : 64
cache_alignment : 64 address sizes : 46 bits physical, 48 bits
virtual power management:
I've not been able to solve this problem using the qsv API, only
using -hwaccel vaapi or -hwaccel cuda (if you have a Nvidia GPU).
There appears to be some confusion as to which Intel GPU version
supports the FFmpeg qsv API and how this is implemented.
Yeah, I kinda noticed that.
Also, the h.266 encoder, enabled via your libvvenc, will not encode
with Quick Sync and libvvdec will only work with the very latest
Intel CPU/GPUs.
Cheers Peter
Well, the 265K is the very latest -- unless you're referring to the
paper launched laptop CPUs from intel at CES.
Thanks,
David
Apologies for missing the Intel 265K in the subject line; my brain
quickly tabbed to the body of the email at "Cannot use QSV."
I use a Nvidia GPU for encoding workflows but since my Debian FFmpeg
machine (GIT build with --enable-libvpl, the latest Intel incantation)
has a Xeon CPU supporting QSV, I thought I might be able to add another
decoding/encoding instance using QSV.
Several years back, I successfully used FFmpeg with QSV on an old
borrowed _Windows_ laptop; this is making me think that the problem is
Linux driver related, as you are also having problems with a very
modern CPU (albeit with a different error message):
"No supported child device type is enabled Device creation failed:
-38" vs my "Error creating a MFX session: -9").
Another caveat is that HandBrake also reports that QSV is missing,
although it also uses some of the same libraries as FFmpeg, so that may
still be a factor.
I don't have a physical Windows platform available to test the latest
FFmpeg, only Windows VMs and they do not pass through the Intel GPU.
This is the beginning of the command that I successfully used on the
physical Windows platform. Some of these options might not work/be
invalid with the latest FFmpeg:
ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -hwaccel qsv
-hwaccel_output_format qsv
Lastly, according to the QSV encoding/decoding compatibility chart,
your CPU (Arrow Lake) is not supported for VVC. This chart may be out
of date but there are so many conflicting resources and no definitive
answers, I'm not sure any longer:
https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video
Hello,
First of all, I'd like to point out that I'm trying to encode VP9 *not*
VVC. If you read my original email, quoted above, you'll see that.
The wikipedia article says that QSV is run via vaapi. When I compiled
ffmpeg, I encountered several errors trying to build the various
features. I reported opencv as not compiling, but got no answers. I
didn't want to overload the ML, so I didn't bother with the others, like
vaapi.
Vaapi doesn't build because my Devuan (Debian) system /usr/include
doesn't have stdbit.h.
The ffmpeg source has it in compat/stdbit/stdbit.h .
Below is the exact error.
Any ideas on how to resolve this? I have build-essential installed as
well as pretty much every dependency I could find with ./configure.
Thanks!
PS: Yes, I did read INSTALL.md. It didn't mention any dependencies.
gcc -D_ISOC11_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -O2 -mtune=native
-march=native -march=native -std=c17 -fomit-frame-pointer -fPIC -pthread
-I/usr/local/include/oapv -I/usr/include/lilv-0 -I/usr/include/serd-0
-I/usr/include/sord-0 -I/usr/include/sratom-0 -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/fribidi
-I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16
-I/usr/include/bs2b -I/usr/local/include -I/usr/include/libdrm
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -DHWY_SHARED_DEFINE
-I/usr/local/include -I/usr/lib/x86_64-linux-gnu/pkgconfig/../../../include
-I/usr/lib/x86_64-linux-gnu/pkgconfig/../../../include/vpl -DMFX_DEPRECATED_OFF
-I/usr/include/openjpeg-2.5 -I/usr/include/x86_64-linux-gnu -I/usr/include/opus
-I/usr/include/opus -I/usr/include/rav1e -I/usr/include/librsvg-2.0
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
-I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0
-I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/webp
-pthread -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2
-I/usr/include/p11-kit-1 -I/usr/include/srt -I/usr/include/svt-av1 -DEB_DLL
-I/usr/include/leptonica -I/usr/local/include -I/usr/local/include
-I/usr/include/webp -I/usr/include/webp -DX264_API_IMPORTS -I/usr/local/include
-I/usr/local/include/xevd -I/usr/local/include/xeve -isystem
/usr/include/mit-krb5 -I/usr/include/pgm-5.3 -I/usr/include/libxml2
-I/usr/include/libxml2 -I/usr/include/AL -I/usr/include/sphinxbase
-I/usr/include/pocketsphinx -I/usr/include/x86_64-linux-gnu
-I/usr/include/x86_64-linux-gnu/sphinxbase -I/usr/include/libdrm -g -Wall
-Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings
-Wtype-limits -Wundef -Wmissing-prototypes -Wstrict-prototypes -Wempty-body
-Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign
-Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -O3
-fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security
-Werror=implicit-function-declaration -Werror=missing-prototypes
-Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto
-Wno-maybe-uninitialized -c -o /tmp/ffconf.GB4dpkT1/test.o
/tmp/ffconf.GB4dpkT1/test.c
/tmp/ffconf.GB4dpkT1/test.c:1:10: fatal error: stdbit.h: No such file or
directory
1 | #include <stdbit.h>
| ^~~~~~~~~~
compilation terminated.
ERROR: vaapi requested but not found
1) Regarding VVC, I originally read your FFmpeg VP9 command but was simply pointing out
that including "--enable-libvvenc" in your ./configure when using the Intel QSV
core was redundant, as currently, QSV only decodes. Obviously it will work with the Intel
CPU cores. I haven't tried VVC for a while, as it was painfully slow using the required
FFmpeg patch a few years back.
Just tried it with the latest builds and is still pedestrian using my Xeon CPU
cores - and there is no Nvidia or AMD encoder support planned, never mind the
fact that few media players provide support. However, the file size change is
impressive. How is the encoding performance on your 265K?
2) Using "-hwaccel vaapi" works for decoding but as soon as I add one of the QSV encoders
like "-c:v:0 hevc_qsv" it fails, hence this ongoing thread and the utter confusion in
trying to get it to work under Linux.
3) I played around with stdbit.h and I'm puzzled as to why your build is
ignoring FFmpeg's compat/stdbit/stdbit.h
To test, I moved mine away, causing the build to fail, then added a
"--extra-cflags=-I/new_location" and it worked as it should.
_______________________________________________
ffmpeg-user mailing list -- [email protected]
To unsubscribe send an email to [email protected]