Improved Auto-Boost-Essential README

This commit is contained in:
Trix
2025-08-01 17:02:16 +03:00
committed by GitHub
parent f2ad019f14
commit a5a73947b4
2 changed files with 51 additions and 4 deletions

View File

@@ -60,7 +60,7 @@ parser.add_argument("--final-params", help="Custom final encoding parameters")
#parser.add_argument("-g", "--grain-format", help = "Select grain format: 1 = SVT-AV1 film-grain, 2 = Photon-noise table | Default: 1", default=1) #parser.add_argument("-g", "--grain-format", help = "Select grain format: 1 = SVT-AV1 film-grain, 2 = Photon-noise table | Default: 1", default=1)
parser.add_argument("--cpu", action='store_true', help = "Force the usage of vs-zip (CPU) instead of Vship (GPU) | Default: not active") parser.add_argument("--cpu", action='store_true', help = "Force the usage of vs-zip (CPU) instead of Vship (GPU) | Default: not active")
parser.add_argument("--verbose", action='store_true', help = "Enable more verbosity | Default: not active") parser.add_argument("--verbose", action='store_true', help = "Enable more verbosity | Default: not active")
parser.add_argument("-r", "--resume", action='store_true', help = "Resume an uncompleted encode | Default: not active") parser.add_argument("-r", "--resume", action='store_true', help = "Resume the process from the last (un)completed stage | Default: not active")
parser.add_argument("-nb", "--no-boosting", action='store_true', help = "Runs the script without boosting (final encode only) | Default: not active") parser.add_argument("-nb", "--no-boosting", action='store_true', help = "Runs the script without boosting (final encode only) | Default: not active")
parser.add_argument("-v", "--version", action='store_true', help = "Print script version") parser.add_argument("-v", "--version", action='store_true', help = "Print script version")
args = parser.parse_args() args = parser.parse_args()

View File

@@ -7,14 +7,61 @@ SVT-AV1-Essential sports *excellent* quality consistency, but Auto-Boost-Essenti
**Here is how it works:** the script runs a first encoder fass-pass, finds scenes based on the introduced keyframes, calculate metrics scores, automatically adjusts the CRF of scenes in order to increase quality consistency and then runs a final-pass with these adjustements. **Here is how it works:** the script runs a first encoder fass-pass, finds scenes based on the introduced keyframes, calculate metrics scores, automatically adjusts the CRF of scenes in order to increase quality consistency and then runs a final-pass with these adjustements.
The quality metric at play this time again is SSIMULACRA2. The quality metric at play this time again is **SSIMULACRA2**.
### Dependencies
Before using Auto-Boost-Essential, you will need to install the following dependencies:
- [SVT-AV1-Essential](https://github.com/nekotrix/SVT-AV1-Essential/releases)
- Python 3.12.x or newer
- [Vship](https://github.com/Line-fr/Vship/releases) (AMD/Nvidia GPU) and/or [vs-zip](https://github.com/dnjulek/vapoursynth-zip/releases/tag/R6) (CPU)
- [Vapoursynth](https://github.com/vapoursynth/vapoursynth/releases) and [vstools](https://pypi.org/project/vstools/) ([vsjetpack](https://pypi.org/project/vsjetpack/) works too!)
- [FFMS2](https://github.com/FFMS/ffms2/releases)
Lost users can refer to this [Vapoursynth install guide](https://jaded-encoding-thaumaturgy.github.io/JET-guide/master/basics/installation/) (up until "Installing the JET Packages"). If you are still lost, join the Discord server linked below and ask for help!
Arch users can run this single command to install everything:
```bash
yay -S svt-av1-essential-git vapoursynth-plugin-vsjetpack vapoursynth-plugin-vship-cuda-git vapoursynth-plugin-vszip-git ffms2
```
*Radeon users can simply replace `vapoursynth-plugin-vship-cuda-git` with `vapoursynth-plugin-vship-amd-git `.*
### Usage
Auto-Boost-Essential can be considered a helper script, as all you need to do is provide an input video file and it will manage everything for you: Auto-Boost-Essential can be considered a helper script, as all you need to do is provide an input video file and it will manage everything for you:
```bash ```bash
python Auto-Boost-Essential.py "my_video_file.mp4" python Auto-Boost-Essential.py "my_video_file.mp4"
``` ```
Results: Even though the above command is sufficient to run the script, one may use additional parameters to tweak the experience, for instance:
| Parameter | Usage |
|-----------|-------|
| `--version` | Print script version |
| `--verbose` | Enable more verbosity [*Default: not active*] |
| `--input` | Video input filepath (original source file) |
| `--temp` | The temporary directory for the script to store files in [*Default: video input filename*] |
| `--no-boosting` | Runs the script without boosting (final encode only) [*Default: not active*] |
| `--resume` | Resume the process from the last (un)completed stage [*Default: not active*] |
| `--stage` | Select stage: 1 = fast encode, 2 = calculate metrics, 3 = generate zones, 4 = final encode [*Default: all*] |
| `--cpu` | Force the usage of vs-zip (CPU) instead of Vship (GPU) [*Default: not active*] |
| `--fast-speed` | Fast encode speed (Allowed: medium, fast, faster) [*Default: faster*] |
| `--final-speed` | Final encode speed (Allowed: slower, slow, medium, fast, faster) [*Default: slow*] |
| `--quality` | Base encoder --quality (Allowed: low, medium, high) [*Default: medium*] |
| `--aggressive` | More aggressive boosting [*Default: not active*] |
| `--unshackle` | Less restrictive boosting [*Default: not active*] |
| `--fast-params` | Custom fast encoding parameters |
| `--final-params` | Custom final encoding parameters |
Yes, the script is even capable of resuming unfinished encodes like Av1an, and can also be run with boosting disabled if all you care is the convenience of a SVT-AV1-Essential wrapper.
### Contribute
The script is open to contributions!
Namely, I'm looking to improve the boosting logic to increase consistency further, with little to no additional performance implications.
Code refactors for clean-up and fixes are also appreciated!
## Benchmarks:
| Metrics | Speed | | Metrics | Speed |
|-----------------------------------------------|---------------------------------------------| |-----------------------------------------------|---------------------------------------------|
| ![Metrics](https://i.kek.sh/2Ulmd7e7zIJ.webp) | ![Speed](https://i.kek.sh/0fehFRVGuhT.webp) | | ![Metrics](https://i.kek.sh/2Ulmd7e7zIJ.webp) | ![Speed](https://i.kek.sh/0fehFRVGuhT.webp) |
@@ -24,4 +71,4 @@ Results:
The above results are not even best-case scenarios. The selected samples are very complex. More gains are expected on your average clip, granted it contains more than one scene at a minimum! The above results are not even best-case scenarios. The selected samples are very complex. More gains are expected on your average clip, granted it contains more than one scene at a minimum!
The script is also capable of resuming unfinished encodes, and can also be run with boosting disabled! *Join us over at [AV1 weeb edition](https://discord.gg/83dRFDFDp7)!*