Skip to content

Releases: master-of-zen/Av1an

latest

07 Nov 11:41
Compare
Choose a tag to compare
latest Pre-release
Pre-release

Commit:
f549793: Delete tag before making a release (Uranite)

0.4.3

17 Aug 22:21
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.4.2...0.4.3

New Contributors

0.4.2

17 Feb 18:56
ff3009f
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.4.1...0.4.2

0.4.1

13 Mar 11:31
Compare
Choose a tag to compare
0.4.1

Av1an 0.4.0

19 Dec 16:30
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.3.1...0.4.0-release

Av1an 0.3.1

17 Jan 07:57
36fbff1
Compare
Choose a tag to compare

Changes

  • Fix mkvmerge concatenation when resuming, and mkvmerge on Windows
  • Display possible vspipe errors when ffmpeg pipe is present
  • Add warning if rate control mode was not specified (for aomenc)

Full Changelog: 0.3.0...0.3.1

Windows binary

The provided binary in this release is dynamically linked to both the vapoursynth and ffmpeg libraries. Make sure the latest version of vapoursynth is installed, and that the ffmpeg DLLs are available. The ffmpeg DLLs can be downloaded from here: https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-4.4.1-full_build-shared.7z. Extract the files, and place the DLLs (which are in the bin directory once extracted) in the same directory as the downloaded av1an.exe

Av1an 0.3.0

05 Jan 23:40
6ab07aa
Compare
Choose a tag to compare

Changes

  • Add option to generate film grain tables for aomenc
  • Allow setting thread affinity for each worker
  • Remove overhead at the start and in-between scene detection and encoding
  • Better CLI interface
  • Automatic tiling for default settings
  • Always copy subtitles and all audio tracks
  • Improve logging (especially with --verbose)
  • Implement SSE4.1/SSSE3 SIMD-accelerated frame parsing for aomenc/vpxenc
  • Fix ffmpeg concat with spaces or quotes on all platforms
  • Fix mkvmerge for Windows
  • Automatically add cq-level arg if it is not present
  • Automatically set one-pass mode if --rt was specified
  • Add more info to --help
  • Remove max/min kf distance for aomenc and vpx

Full Changelog: 0.2.0...0.3.0

Windows binary

The provided binary in this release is dynamically linked to both the vapoursynth and ffmpeg libraries. Make sure the latest version of vapoursynth is installed, and that the ffmpeg DLLs are available. The ffmpeg DLLs can be downloaded from here: https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z. Extract the files, and place the DLLs (which are in the bin directory once extracted) in the same directory as the downloaded av1an.exe

Av1an 0.2.0 Rust rewrite

01 Nov 09:05
Compare
Choose a tag to compare

Rust rewrite

The first and most important change is that Av1an was completely rewritten in Rust, which improved the stability, performance, and maintainability of the project, which allows us to leverage tools and features that would simply not be possible with Python.
Imagine not having syntax\typing errors on runtime 🤯

Scene detection methods

Now, Av1an uses parts of the Rav1e encoder for scene change detection.

To sum it up

Lots of QOL improvements all around: faster encoding, static versions of av1an, faster target-quality, better and faster scene-detection, lower RAM usage, easier build process, etc.

There is just too much to cover :D

How is that possible?

The development, growth, and success of Av1an couldn't be possible without contributors that care and develop Av1an 😘 ❤️
Those people are in descending order, but not significance:

@BlueSwordM @redzic @shssoichiro @luigi311 @n9Mtq4 @mxsrm @ishitatsuyuki @natis1 @Nestorfish @nathanielcwm

Note

Av1an now requires Vapoursynth Release Page

VVC support, Target VMAF from Rav1e, SVT-AV1, VPX

24 Jul 09:54
Compare
Choose a tag to compare

VVC support

NOTE: VVC is not yet finalized, and at the stage of test model so it can crash/don't work/behave strangely.

  • Added experimental VVC support
  • Temp YUV files created at the start of encoding for the segment, and removed after.
  • Concatenation to VVC bitstream is done by parcatStatic from VVC repository.


Usage

The encoding requires compiled encoder, bitstream concatenator, config_file from the VVC repository.

  • EncoderAppStatic and parcatStatic must be named vvc_encoder, vvc_concat, and placed in the directory from where they can be reachable, the same directory or somewhere in PATH. Place the chosen config file for the encoder in encoding folder.

  • Encoder set to VVC by -enc vvc

  • Config file passed to Av1an by --vvc_conf CONFIG_FILE

  • Required video encoding parameters:
    -wdt X - video width
    -hgt X - video height
    -fr X - framerate
    -q X - quantizer
    Example: -v " -wdt 640 -hgt 360 -fr 23.98 -q 30 "

  • After encode is done output file with extension .h266 will created
    It can be decoded to .yuv with VVC compliled decoder :
    DecoderAppStatic -d 8 -b encoded.h266 -o output.yuv
    Keep in mind that encoding time is excessive

Target VMAF for Rav1e, SVT-AV1, VPX

  • min_cq max_cq changed to min_q ,max_q
  • Default min_q max_q are set based on encoder.
  • Encoders must be in mode that requires setting quantizer. (--crf, --cq-level, --quantizer etc)

Examples:

Changed default passes for encoders

svt_av1: 1 
rav1e:   1
aom:    2
vpx:     2
x265:    1 
vvc:    1

Also, default encoding settings changed accordingly

x265 support and target_vmaf , Better-Faster target vmaf, New splitting option

22 Jul 19:45
e59f278
Compare
Choose a tag to compare

There has been ~300 commits after the last release. Lots of changes, let's keep it short.

x265 + Target_VMAF

  • Added x265
  • Added target_vmaf support for x265
    Usage: -enc x265 for encoder, --vmaf_target NUM as usual

Better target_vmaf

  • Instead of default mean for VMAF, 25 percentile is used instead. Making the worst parts of a scene weight more in the calculation, resulting in better results and more consistent quality.
  • Added early skips if extreme Q values beyond the range are more than enough or not enough to reach target VMAF.
    example: In log file with --vmaf_target 90:

Dynamic search for target Q value for the target_vmaf

OLD evenly spaced probes(blue x probe):

NEW dynamic search(green pentagon probe):

5 probes now enough to cover over extreme ranges

New splitting method: aom_keyframes

Usage: --split_method aom_keyframes


aom_keyframes use the first pass of aomenc for determining where keyframes will be placed by the encoder, and using this information for splitting, resulting in 0 loss of encoding efficiency by segmenting for this encoder.

Better error handling

Encoder error will now be printed to the terminal

Tons of refactoring and optimizations

  • Reducing complexity
  • Moving all the functions out of av1an.py to Av1an module
  • Overall better project organization