ffmpeg based automatic transcoder tool to x265 and AV1
This tool trawls through a specified directory and performs compression estimatations using libx265 and SVT-AV1, with automatic transcoding as per specified cutoffs. The purpose is this tool is to facilitate mass transcoding of media libraries in a fashion where only files which have large potential space savings will be used. By default the tool tries to maintain near transparent re-encodes, but is flexible in terms of the quality of the output required.
Depending on the qualities of the specific input videos being used, the space savings can vary from nil to 10x. However, given input encodes that are using sane settings for the given input file (alas, uncommon for some media types, especially those that aren't from official releases) typically about 30% savings are seen. Due to the way this tool works, it can be set to specifically identify and re-encode files that stand to give large savings (e.g. over 2x file size reduction), and over a sufficiently large library of files can give very high yields in terms of space for minimum quality degradation.
The AV-1 side of this tool is not yet complete, as I am waiting for ffmpeg 5 to become widespread in terms of availability. This has much better support for the Intel SVT-AV1 encoder. Currently, to use SVT-AV1, then a 2 step process is required with ffmpeg. I did not want to implement this presently given that it will soon be superseded by extended options arriving in ffmpeg5.
This tool has been tested and used on linux only, but should be able to support both MacOS and Windows.
Dependencies: ffmpeg, libnotify (only for the alert option, linux only)