Hardware accelerated video encoding
Hardware accelerated video encoding is WAY faster and uses only a fraction of the CPU. On my machine the speedup is by a factor of 5.
ffmpeg already supports this. My suggestion is that Blender shall know when the computer supports hardware accelerated encoding for the selected codec and make use of it.
User shall in the codecs list easily see what codecs are HW accelerated by the computer so that the user can choose one of them.
HW acceleration usually needs special drivers in order to work. I use an Intel laptop with Arch Linux installed. In my case the package
intel-media-driver
needs to be installed in order to enable HW acceleration system wide.
My suggestion is that Blender shall know when HW acceleration is supported by the hardware but the OS is missing drivers, and tell the user to install that package in order for HW acceleration to be enabled.
2 Comments
I think Blender shouldn't default to using HW acceleration if the acceleration uses encoding on hardware chip because HW encoders often cause much worse image quality for the same bitrate. If encoding could be implemented as identical to CPU encoding but executed on GPU, that would be a good default.
The worse-than-optimal HW encoding is caused by HW encoders often using only easy to compute features of the video compression and software encoder is the only one that supports all the features of the codec for maximum image quality for given bitrate.
HW encoder might still make sense in some cases: for example, if one is encoding video for YouTube, they might set bitrate to 10x the best that YouTube will serve and let YouTube to re-encode the video on their cloud. However, if you're distributing the final video to consumer, you should use better encoders than HW chip encoder.
There are so many things Blender misses yet ffmpeg (which Blender uses) is capable of.
Last time I did a request about Blender's file output, it had some attention but it went basically nowhere
blender.community/c/rightclickselect/8Hbbbc/