Skip to content

emrakyz/xav

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

  1. Description
  2. Features
  3. User Guide
  4. Dependencies
  5. Building
  6. Other Recommended Tools

Description

  • XAV is a command-line tool full of micro-optimizations and automations for scene change detection, cropping, decoding, encoding, metric testing, and memory flows and the complete pipeline required for efficient chunked video encoding, with the option of quality metric testing/targeting
  • Aims for the lowest RAM and VRAM usage with the fastest possible operation. It can flexibly use more memory for even faster operation if it is abundant
  • Designed for a more automated & opinionated approach for ease of use; using shorter commands on the command line and memorizing less flags/parameters
  • Uses and optimizes FFMS2 & vship internally without relying on VapourSynth and/or FFmpeg or any other external calls

Features

  • Fastest and most efficient chunked video encoding
  • Fastest and most efficient target quality encoding with state-of-the-art metrics such as CVVDP and Butteraugli 5p-norm & SSIMULACRA2 from JPEG XL (Google/Cloudinary)
  • Very fast, state-of-the-art scene change detection with pre-configured sane defaults. Optionally, other SCD methods such as TransNetv2 can be used externally
  • Automated color & HDR metadata and frame/container metadata parsing
  • Fully automated, very fast and safe crop detection and cropping, by also accounting for multi aspect ratio videos
  • Optional photon noise application
  • Convenient optional Opus audio encoding: With optional automated bitrate calculation, stereo downmixing and loudness normalization based on AC-4 standards: ETSI TS 103 190-1, Section 6.2.17
  • Detailed progress monitoring for encoders and quality metric testing.
  • Detailed video output summary, TQ output summary and TQ related JSON log file.
  • Auto resume where you left off for additional safety if it crashes or intentionally stopped

User Guide and FAQ

  • Refer to user_doc.pdf (work in progress)

Dependencies

  • SVT-AV1 or a fork of it
  • mkvmerge
  • FFMS2
  • VSHIP (optional for GPU based target quality encoding)
  • Rust Nightly, NASM, Clang (build-time)

Building

Build script for now is Linux only.

Run the build.sh script: Select static or dynamic build

Building statically requires you to have static libraries for: glibc, libstdc++, llvm-libunwind, compiler-rt

Other Recommended Tools

Other robust tools I recommend with different philosophies:

  • Av1an: A CLI tool utilizing VapourSynth and FFmpeg, that I always loved and contributed to. Most people interested in xav already know what it is, as it's a legendary pick
  • HandBrake: One of the most popular GUI/CLI video encoding frameworks. Less fancy in terms of bleeding-edge features but more complete for standardized video encoding.
  • StaxRip: A Windows-only GUI with several encoders, FFMpeg and VapourSynth support
  • nmkoder: Windows-only GUI wrapping FFMpeg tools and av1an
  • alabamaEncoder: Offers some very interesting features but harder to use. Partially experimental and it's a work in progress as the author declared but definitely requires a mention
  • ab-av1: It's an interesting pick. It can be seen as less sophisticated version of xav or av1an but might be preferable to some. For reference, it doesn't use chunked encoding; does not do scene-by-scene target quality and it only offers less psychovisually relevant VMAF/XPSNR metrics
  • aviator: Very easy to use and minimal GUI for encoding video/audio with svt-av1-psy forks and Opus

About

Fastest, Most Efficient, Minimal, Chunked & Target Quality Video Encoding

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •