Skip to content
 
 

Latest commit

 

History

12,872 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x265-aMod for Linux

Prebuilt Linux x86-64 binaries of DJATOM's x265-aMod — the modded HEVC encoder (aq-mode=5, grain-preservation profile) that DJATOM only ships for Windows. This fork adds:

  • a multilib CLI (8-bit + 10-bit + 12-bit in one binary) with the full mod feature set
  • static ffmpeg builds with the aMod libx265 embedded (8-bit and 10-bit)
  • reproducible Linux build scripts and two upstream compatibility fixes (see below)

Everything is built from upstream tag 3.6+30 — the same code DJATOM's latest Windows release uses.

⬇️ Download (no compiling)

Grab the tarball from the Releases tab (right sidebar) or directly:

https://github.com/makeitmakesencethen/x265-aMod-linux/releases/latestx265-aMod-linux-3.6+30.tar.gz

tar xzf x265-aMod-linux-3.6+30.tar.gz
cd x265-aMod-linux-3.6+30
./bin/x265 --version        # -> HEVC encoder version 3.6+30 [DJATOM's Mod], 8bit+10bit+12bit

The tarball contains bin/, lib/, tests/ and build/. The binaries ship as release assets (same model as DJATOM's own releases); this git tree holds the full source plus our additions.

What's inside

File What
bin/x265 Multilib mod CLI — 8/10/12-bit via --output-depth, XLENGTH y4m tags, extended progress line, Avisynth + VapourSynth script readers
bin/ffmpeg Static ffmpeg 7.1.5, aMod libx265 (8-bit) embedded
bin/ffmpeg-10bit Static ffmpeg 7.1.5, aMod libx265 (10-bit) embedded (Main10; upconverts 8-bit input too)
lib/libx265-multilib.a Merged static library (8+10+12) for embedding into your own tools

Quick start

# 1. encode with the mod profile (aq-mode=5 is mod-only — stock x265 rejects it)
./bin/x265 --input in.y4m --output out.mkv \
  --preset slow --crf 20.5 \
  --pools 8 \
  --aq-mode 5 --aq-strength 0.60 --deblock -3:-3 --no-sao --psy-rd 2.0 --psy-rdoq 2.0

# or via ffmpeg (8-bit)
./bin/ffmpeg -i source.mkv -c:v libx265 -preset slow -crf 20.5 \
  -x265-params "aq-mode=5:aq-strength=0.60:deblock=-3:-3:sao=0:psy-rd=2.00:psy-rdoq=2.00" \
  -c:a libopus out.mkv

# 2. VapourSynth script (needs VapourSynth installed, see below) — node selection:
./bin/x265 --input encode.vpy \
  --reader-options "library=/usr/lib/libvsscript.so;output=1;requests=4" \
  --output out.mkv --crf 20

# 3. Avisynth+ script (needs AviSynth+ for Linux):
./bin/x265 --input encode.avs --output out.mkv --crf 20

# 4. 10-bit or 12-bit encode from any input, one binary:
./bin/x265 --input in.y4m --output-depth 12 --output out12.mkv --crf 20

Mod features (verified working on Linux)

  1. XLENGTH y4m tag support — total frame count from the y4m header, so pipes get proper progress/ETA.
  2. Extended progress line — elapsed/ETA, size + estimated final size, e.g. [1.7%] 1/60 frames, 50.83 fps, 499.20 kb/s, elapsed: 0:00:00, eta: 0:00:01, size: 2.44 KB, est. size: 146.25 KB
  3. Avisynth script reader — loads an external AviSynth library at runtime (dlopen), override path via --reader-options "library=...". Verified against AviSynth+ 3.7.5.
  4. VapourSynth script reader — external vsscript library, output-node selection and parallel frame requests. Verified against VapourSynth R7x (VSScript4/API4).

Runtime requirements

  • x265: just glibc + libstdc++ — runs on any modern distro.
  • ffmpeg / ffmpeg-10bit: additionally libopus0 and zlib1g (sudo apt install libopus0 zlib1g on Debian/Ubuntu).
  • VapourSynth reader: VapourSynth R70+ (libvsscript.so). After installing, run vapoursynth config once so the library can find its Python.
  • Avisynth reader: AviSynth+ for Linux (libavisynth.so).

Differences vs upstream (this fork)

upstream this fork (linux branch @ 3.6+30)
Prebuilt binaries Windows x64 only Linux x86-64 (release assets)
AviSynth+ C-API broken with AviSynth+ ≥ 3.7 (opaque structs) patched to use official avs_get_*_p accessors — build/patches/avisynth-plus-capi.patch
VapourSynth runtime expects old libvapoursynth-script.so works with new R70+ libvsscript.so via --reader-options library=...

Build from source

Reproduces the exact binaries: build/build-linux-multilib.sh (needs nasm, VapourSynth API4 headers, AviSynth+ headers; details inside). Test scripts live in tests/.

License & credits

GPLv2 (see COPYING). Encoder: DJATOM's x265-aMod (itself derived from MulticoreWare x265). Avisynth/VapourSynth readers upstream: Xinyue Lu. Linux build + patches: this fork. ffmpeg builds: FFmpeg project, GPL.

About

DJATOM's mod for x265 encoder

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages