Mal ein bisschen Grundlagen und aufdröseln. Die Quadro K2200 hat in Hardware einen NVEDEC drin, der kann H.264 in Hardware decodieren.
H.265 hingegen kann die Karte nicht in Hardware mit dem NVDEC decodieren.
Sowohl bei VLC, als auch bei mpv sind die Fähigkeiten von FFmpeg relevant. Bei Kdenlive übrigens auch. Anschauen wie der FFmpeg gebaut wurde, und was an HWaccels eingebaut ist. Hier im Beispiel ist das mein selbstgebauter mit dem Neflix VMAF - Video Multi-Method Assessment Fusion drin:
fmpeg -hwaccels
ffmpeg version N-109429-g8ad988ac37 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12 (Ubuntu 12.2.0-3ubuntu1)
configuration: --prefix=/usr --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --disable-debug --enable-libvmaf --enable-gcrypt --enable-gmp --enable-libaribb24 --enable-libdavs2 --enable-libopenh264 --enable-librabbitmq --enable-librtmp --enable-libsrt --enable-libtesseract --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-libmodplug --enable-libplacebo --enable-avisynth --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-lcms2 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-nonfree --enable-nvenc --enable-nvdec --enable-libfdk-aac --enable-libdav1d --enable-libsvtav1 --enable-swresample --enable-cuda-nvcc --enable-cuvid --enable-cuda-llvm --enable-opencl --enable-libglslang --enable-librav1e --enable-vulkan --enable-xlib --enable-libvpl --enable-vaapi --enable-vdpau --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
libavutil 57. 43.100 / 57. 43.100
libavcodec 59. 55.103 / 59. 55.103
libavformat 59. 34.102 / 59. 34.102
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 52.100 / 8. 52.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
Hardware acceleration methods:
vdpau
cuda
vaapi
qsv
drm
opencl
vulkan
VLC nutzt die VA-API um die Fähigkeiten der Grafikkarte nutzen zu können. Theoretisch sollte VLC VDPAU nutzen können, funktioniert hier auf Kinetic Kudu zur Zeit aber nicht. Ohne den aktuellen nvidia-vaapi-driver von elFarto funktioniert die Hardwarebeschleunigung fürs encodieren nicht. Firefox nutzt auch die VA-API.
Der MPV hingegen, hat direkten Zugriff auf VDPAU und NVDEC.
Um zu beobachten, ob der NVDEC fürs decodieren, oder der NVENC fürs encodieren genutzt wird, kann man nvidia-smi im Terminal nutzen:
watch -n1 nvidia-smi pmon -c 1
Das mit G markierte ist Grafik, C+G bedeutet Compute und Grafik. Die nvidia-settings können das auch anzeigen, wenn etwa der NVENC genutzt wird zeigt sich das bei "Video Engine Utilization".
Dann gibt es auch noch nvtop, im Terminal:
nvtop
Damit lässt sich am schönsten die Nutzung der Nvidia-Grafikkarte betrachten, und sehen, ob Compute genutzt wird. Testvideo mit H.264 auf Youtube:
Auf Youtube werden die H.264 Videos mit avc1 bezeichnet, das kann man sich dort in den "Stats for Nerds" anschauen.