[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