FFMPEG and HW acceleration - capability guide

Here is the definitive guide from the FFMPEG developers as to the really complicated HW acceleration support available in the current FFMPEG (version 6, in mid 2023).


Keep in mind that with MCEBuddy, there is a standalone version of FFMPEG used by MCEBuddy for transcoding. Note that this, by definition, means that there is a decoding operation going on with the output going straight into an encoding operation. And whether either is using the GPU or not isn’t always clear, and they are entirely separate things.

In the alternative, MCEBuddy can use Handbrake for this. However, Handbrake has its own version of FFMPEG baked in and it will not use the separate FFMPEG.

The same applies to Comskip, it also has its own version of FFMPEG baked in that it uses. Comskip only does decoding. So if your Comskip isn’t using GPU acceleration, it may not be possible, or it could be that CPU decoding is just as fast - that’s kind of the point with playback (decoding).

So, in general, it isn’t simple or clear to know exactly what features each separate version of FFMPEG is supporting or capable of or even if MCEBuddy can invoke the proper options - like when using the latest donator Comskip, the nVidia GPU options can only be manually invoked on the command line. And the options don’t exist in the donator version that comes with MCEBuddy.

So I recommend looking carefully at the FFMPEG Hwaccel developer guide, know what CPU and GPU you have, which codecs (decode too - not just encode!) you’re using to really understand what that “hwaccel” option means - what it does do and more importantly what it doesn’t do, and set expectations accordingly.

What works on one server may not work the same on a different server with different CPUs and GPUs and Operating Systems. So, YMMV.