[FFmpeg-user] Listing the hardware accelerators
Carl Eugen Hoyos
ceffmpeg at gmail.com
Fri Sep 27 16:31:12 EEST 2019
Am Fr., 27. Sept. 2019 um 15:04 Uhr schrieb Verachten Bruno
<gounthar at gmail.com>:
>
> Thanks a lot for your answers and new questions.
> When I run the -hwaccels, I get:
> ffmpeg -hwaccels
> ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
> built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
> configuration: --enable-gpl --enable-version3 --disable-static
> --enable-shared --enable-small --enable-avisynth --enable-chromaprint
> --enable-frei0r --enable-gmp --enable-gnutls --enable-ladspa
> --enable-libaom --enable-libass --enable-libcaca --enable-libcdio
> --enable-libcodec2 --enable-libfontconfig --enable-libfreetype
> --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack
> --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
> --enable-libopencore-amrwb --enable-libopencore-amrwb --enable-libopenjpeg
> --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg
> --enable-librubberband --enable-librtmp --enable-libshine
> --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
> --enable-libtesseract --enable-libtheora --enable-libtwolame
> --enable-libv4l2 --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
> --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265
> --enable-libxvid --enable-libxml2 --enable-libzmq --enable-libzvbi
> --enable-lv2 --enable-libmysofa --enable-openal --enable-opencl
> --enable-opengl --enable-libdrm --enable-nonfree --enable-libfdk-aac
> --enable-libbluray --extra-libs='-lnettle -lhogweed -lgmp'
(You compiled your FFmpeg binaries with several options that
you don't need.)
> libavutil 56. 31.100 / 56. 31.100
> libavcodec 58. 54.100 / 58. 54.100
> libavformat 58. 29.100 / 58. 29.100
> libavdevice 58. 8.100 / 58. 8.100
> libavfilter 7. 57.100 / 7. 57.100
> libswscale 5. 5.100 / 5. 5.100
> libswresample 3. 5.100 / 3. 5.100
> libpostproc 55. 5.100 / 55. 5.100
> Hardware acceleration methods:
> drm
> opencl
>
> So... That would mean that on this machine, with what configure has been
> able to detect, I only have access to drm and opencl.
>
> That's on a i5 laptop with an Intel 5500GPU
Then install the vaapi drivers and development headers (sorry, I
don't know the package names) and recompile.
> Information gathered from Chromium with the "about:gpu":
> GPU0VENDOR = 0x8086 [Intel Open Source Technology Center], DEVICE=
> 0x1616 [Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) ] *ACTIVE*
>
> > We (developers) apparently think that just as you have to know your
> > input file to use ffmpeg (not every command line supports every
> > input file), you also have to know the hardware you are using...
> Great. That was not crystal clear for me up to now.
> My first (reasonable) option would be to study the various systems I use,
> try to understand which hardware accelerators they have if any, and then
> choose the correct options in configure so that I will have a bespoke
> ffmpeg.
This is less about configure options (the common hardware accelerations
are auto-detected) and more about missing development headers (vaapi
and vdpau / nvcodec which you need for nvidia gpus).
> I have already tried that path (more or less) with ARM SoCs, and my
> wounds have not healed yet.
arm can be more difficult, there is something called v4l2-m2m that is
also auto-detected and for which you also need specific drivers and
headers at compile time.
There are also rkmpp, omx and mmal: Only enable these if you know
what you are doing.
> The second (harebrained) option would be to turn every hardware accelerator
> related option on with configure on every machine, so that I have a
> consistent ffmpeg build script, and then try to understand for each
> machine/build the hardware accelerators we have access to, if any (that
> would be once more a pain in the neck with ARM SoCs).
Except for arm, this may not really be such a pain, the necessary headers
are available for all distributions.
Please do not top-post here, Carl Eugen
More information about the ffmpeg-user
mailing list