grav1an is a binary which creates psychovisually optimized AV1 video using Vapoursynth, Av1an, Grav1synth, and MKVToolNix. Currently, it supports the encoders svt-av1-psy and rav1e. This was originally a Python script made by Ironclad, so credits to them for creating the original script. The AV1 anime discord server has the original script & support.
- TVDB support
- Rentry support
- Comparison images
- Uploading torrents
- Separate rescale into optional feature
- Dependency checks at compile-time
Bolded dependencies are required.
- FFmpeg/FFprobe (enable x264 to detect offsets)
- Vapoursynth
- Av1an
- svt-av1-psy/rav1e (at least one is required)
- MKVToolNix
- Grav1synth (required if
--no-grainis unset) - opus-tools (required if
--original-audiois unset) - BestSource/LSMASHSource/dgdecnv (at least one required)
- vszip (required if
--ssimu2-algoisn't set to ssimulacra2_rs) - vs-mlrt (required for scaling)
- vsjet (required for scaling)
- vodesfunc (required for scaling)
- lvsfunc (required for scaling)
- resize2 (required for scaling)
- descale (required for scaling)
- Install Cargo if you haven't already.
- Clone & enter this repo
git clone --depth 1 --single-branch https://github.com/SuspiciousDuck/grav1an
cd grav1an
- Build/Install
cargo install --path .
- Profit
# Add $HOME/.cargo/bin to your PATH if you haven't already
grav1an
Basic Example:
# This uses the directories ./show & ./show_out as the input & output directories.
# -w specifies the amount of workers to use when encoding (not threads).
# -n specifies the name of the show, which is used when creating output files.
# --no-torrent specifies that a resulting .torrent file shouldn't be made.
# This will encode 4 fast passes in order to target a SSIMULACRA2 score of 80 in the final encode!
grav1an -i ./show -o ./show_out -n Show -w 4 --no-torrent