<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">сб, 26 апр. 2025 г., 12:23 Andrea paz via Cin <<a href="mailto:cin@lists.cinelerra-gg.org" rel="noreferrer noreferrer" target="_blank">cin@lists.cinelerra-gg.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A few silly questions on topics already addressed several times. I was<br>
reading about hardware acceleration in ffmpeg.<br>
In my system ffmpeg I have:<br>
<br>
$ ffmpeg -hwaccels<br>
ffmpeg version n7.1 Copyright (c) 2000-2024 the FFmpeg developers<br>
  built with gcc 14.2.1 (GCC) 20250207<br>
  configuration: --prefix=/usr --disable-debug --disable-static<br>
--disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm<br>
--enable-lto --enable-fontconfig --enable-frei0r --enable-gmp<br>
--enable-gnutls --enable-gpl --enable-ladspa --enable-libaom<br>
--enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d<br>
--enable-libdrm --enable-libdvdnav --enable-libdvdread<br>
--enable-libfreetype --enable-libfribidi --enable-libglslang<br>
--enable-libgsm --enable-libharfbuzz --enable-libiec61883<br>
--enable-libjack --enable-libjxl --enable-libmodplug<br>
--enable-libmp3lame --enable-libopencore_amrnb<br>
--enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt<br>
--enable-libopus --enable-libplacebo --enable-libpulse<br>
--enable-librav1e --enable-librsvg --enable-librubberband<br>
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt<br>
--enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2<br>
--enable-libvidstab --enable-libvmaf --enable-libvorbis<br>
--enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264<br>
--enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid<br>
--enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc<br>
--enable-opencl --enable-opengl --enable-shared --enable-vapoursynth<br>
--enable-version3 --enable-vulkan<br>
  libavutil      59. 39.100 / 59. 39.100<br>
  libavcodec     61. 19.100 / 61. 19.100<br>
  libavformat    61.  7.100 / 61.  7.100<br>
  libavdevice    61.  3.100 / 61.  3.100<br>
  libavfilter    10.  4.100 / 10.  4.100<br>
  libswscale      8.  3.100 /  8.  3.100<br>
  libswresample   5.  3.100 /  5.  3.100<br>
  libpostproc    58.  3.100 / 58.  3.100<br>
Hardware acceleration methods:<br>
vdpau<br>
cuda<br>
vaapi<br>
qsv<br>
drm<br>
opencl<br>
vulkan<br>
<br>
<br>
If I try the same command with ffmpeg contained in<br>
.../thirdparty/ffmpeg-7.0 I get:<br>
<br>
./ffmpeg -hwaccels<br>
Hardware acceleration methods:<br>
vdpau<br>
cuda<br>
vaapi<br>
vulkan<br>
<br>
<br>
So I guess OpenCL; Qsv and drm can only be obtained by manually<br>
compiling them. With what exact options in ./configure? (I never know<br>
when to use “--with-” and when to use “--enable-”).<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I set two environment variables in Slackbuild:</div><div dir="auto"><br></div><div dir="auto">EXTRA_LIBS=" -lOpenCL -lSvtAv1Enc -lvpl -ldav1d -lxvidcore -lass -lbluray -lsnappy -lzimg" \       FFMPEG_EXTRA_CFG=" --enable-libvpl --disable-doc --enable-opencl --enable-libsvtav1 --enable-frei0r --enable-libdav1d --enable-libzimg --enable-libxvid --enable-libass --enable-libbluray --enable-libsnappy --disable-debug --extra-cflags=-I/usr/local/include/vpl --extra-cflags=-I/usr/include/svt-av1" \                                                                                              </div><div dir="auto">before running configure and make.</div><div dir="auto"><br></div><div dir="auto">You need to tweak them a bit gor your include path, or delete enables you do not need.</div><div dir="auto"><br></div><div dir="auto">Not sure if "drm" hwaccel will make any sense on desktop? Never tried to use it .... Can you show some usage examples?</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
“drm” can serve in CinGG?<br>
<br>
Another thing: vulkan is already included in CinGG, but I have never<br>
been able to activate the device and get it working. How to do that?<br>
With system ffmpeg I can activate it without any problems.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">I only got my vulkan-capable gpu running yesterday ;)</div><div dir="auto"><br></div><div dir="auto">I'am rebuilding vulkan-sdk and ffmpeg 7.1 to learn now libplacebo etc works in standalone ffmpeg.</div><div dir="auto">May be purely vulkan hw decode/encode need some tweaks in cingg code ....</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I am attaching the part of ffmpeg's documentation regarding hardware<br>
acceleration.<br>
The following part (regarding decoding) seems important to me:<br>
"Note that most acceleration methods are intended for playback and<br>
will not be faster than software decoding on modern CPUs.<br>
Additionally, ffmpeg will usually need to copy the decoded frames from<br>
the GPU memory into the system memory, resulting in further<br>
performance loss. This option is thus mainly useful for testing."<br>
<br>
As usual, I thought it would be a good thing to have playback in<br>
hardware but it is not. (However, there is a video of Adam where he<br>
manages to get better decoding with his Nvidia:<br>
<a href="https://www.youtube.com/watch?v=IZdJqrObnik" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://www.youtube.com/watch?v=IZdJqrObnik</a>).<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Well, it speeds up things for me on 32bit cinelerra-gg, and most importantly frees up system ram/virtual size so 4k encode does not crash ;)</div><div dir="auto"><br></div><div dir="auto">You can try to bench your pcie bus speed:</div><div dir="auto"><br></div><div dir="auto">echo 4 | sudo tee /sys/kernel/debug/dri/1/amdgpu_benchmark</div><div dir="auto"><br></div><div dir="auto">and watch answer in dmesg ;)</div><div dir="auto"><br></div><div dir="auto">For me it does not exceed 3 GiB/s, also running nvtop shows during cingg's vaapi decode around 1.2Gb of data comes out of gpu (8 lanes * pcie 2.0).</div><div dir="auto"><br></div><div dir="auto">Integrated APU from AMD or intel probably can go faster, I was really surprized how fast decoding become on Sandybridge-based laptop when I enabled vaapi for decode! </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
-- <br>
Cin mailing list<br>
<a href="mailto:Cin@lists.cinelerra-gg.org" rel="noreferrer noreferrer noreferrer" target="_blank">Cin@lists.cinelerra-gg.org</a><br>
<a href="https://lists.cinelerra-gg.org/mailman/listinfo/cin" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.cinelerra-gg.org/mailman/listinfo/cin</a><br>
</blockquote></div></div></div>