• Stars
    star
    380
  • Rank 112,129 (Top 3 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

AV1 re-encoding using ffmpeg, svt-av1 & vmaf.

ab-av1

AV1 video encoding tool with fast VMAF sampling & automatic encoder crf calculation. Uses ffmpeg, svt-av1 & vmaf.

Also supports other ffmpeg compatible encoders like libx265 & libx264.

Command: auto-encode

Automatically determine the best crf to deliver the min-vmaf and use it to encode a video or image.

Two phases:

  • crf-search to determine the best --crf value
  • ffmpeg to encode using the settings
ab-av1 auto-encode [OPTIONS] -i <INPUT> --preset <PRESET>

Command: crf-search

Interpolated binary search using sample-encode to find the best crf value delivering min-vmaf & max-encoded-percent.

Outputs:

  • Best crf value
  • Mean sample VMAF score
  • Predicted full encode size
  • Predicted full encode time
ab-av1 crf-search [OPTIONS] -i <INPUT> --preset <PRESET>

Command: sample-encode

Encode short video samples of an input using provided crf & preset. This is much quicker than full encode/vmaf run.

Outputs:

  • Mean sample VMAF score
  • Predicted full encode size
  • Predicted full encode time
ab-av1 sample-encode [OPTIONS] -i <INPUT> --crf <CRF> --preset <PRESET>

Command: encode

Invoke ffmpeg to encode a video or image.

ab-av1 encode [OPTIONS] -i <INPUT> --crf <CRF> --preset <PRESET>

Command: vmaf

Full VMAF score calculation, distorted file vs reference file. Works with videos and images.

  • Auto sets model version (4k or 1k) according to resolution.
  • Auto sets n_threads to system threads.
  • Auto upscales lower resolution videos to the model.
  • Converts distorted & reference to appropriate format yuv streams before passing to vmaf.
ab-av1 vmaf --reference <REFERENCE> --distorted <DISTORTED>

Install

Arch Linux

Available in the AUR.

Windows

Pre-built ab-av1.exe included in the latest release.

Using cargo

Latest release

cargo install ab-av1

Latest code direct from git

cargo install --git https://github.com/alexheretic/ab-av1

Requirements

ffmpeg newer than git-2022-02-24 with libsvtav1, libvmaf, libopus enabled.

ffmpeg should be in $PATH.

Minimum supported rust compiler

Maintained with latest stable rust.

More Repositories

1

glyph-brush

Fast GPU cached text rendering
Rust
675
star
2

ab-glyph

Rust API for loading, scaling, positioning and rasterizing OpenType font glyphs
Rust
345
star
3

spin-sleep

Rust accurate sleeping. Only use native sleep as far as it can be trusted, then spin.
Rust
150
star
4

aurto

Arch Linux AUR tool for managing an auto-updating local 'aurto' package repository
Shell
134
star
5

apart-gtk

Linux GUI for cloning & restoring disk partitions to & from compressed image files
Python
63
star
6

linked-hash-set

Rust HashSet with insertion ordering
Rust
40
star
7

dynamics

Java library for handling nested dynamic data
Java
25
star
8

single-value-channel

Rust concurrent single-value update and receive channel
Rust
21
star
9

owned-ttf-parser

ttf-parser plus support for owned data
Rust
18
star
10

int-hash

Very fast, very simple hash algorithm designed for use in Rust integer hash maps & sets
Rust
18
star
11

vimg

CLI for video images. Generates animated video contact sheets fast.
Rust
16
star
12

ktx

Rust KTX texture storage format parsing
Rust
11
star
13

benjamin-batchly

Low latency batching tool. Bundle lots of single concurrent operations into sequential batches of work.
Rust
11
star
14

gfx-shader-watch

Gfx utility for watching shaders and reloading pipeline state on the fly
Rust
10
star
15

fluent

Java 8 common library for fluent coding
Java
6
star
16

mtd-vat-cli

CLI tool to query & submit UK VAT returns
Rust
5
star
17

dynamodb-lease

Dynamodb distributed lock client for Rust
Rust
5
star
18

old-school-gfx-glutin-ext

Extensions for glutin to initialize & update old school gfx
Rust
4
star
19

apart-core

Linux util for partition cloning GUIs
Rust
3
star
20

cargo-ab-lint

CLI with extra lints for rust projects
Rust
2
star
21

nix-user

Scripts and info for using nix packages without root access.
Shell
1
star
22

rusttmp

Rust issue reproductions
Rust
1
star