Releases: rust-av/Av1an
latest
0.5.0
What's Changed
- Update dependencies and fix lints by @shssoichiro in #912
- Fix x265 target quality by @shssoichiro in #923
- Update ffmpeg to 7.1 for the windows workflow by @Uranite in #926
- Fix encoding with multiple encoders by @SwareJonge in #910
- Fix Scene Detection frames mismatch causes invalid frame access crashes by @BoatsMcGee in #927
- Fix clippy issues and stop it from breaking with every Rust update by @shssoichiro in #929
- Fix the CI by @shssoichiro in #935
- fix(av1an-core): fix path-handling in vapoursynth script by @baysonfox in #924
- Improve setting default encode parameters by @FlyingWombat in #798
- Add Richly-Typed loadscript VapourSynth Script to Source Control by @BoatsMcGee in #886
- Bump crossbeam-channel from 0.5.14 to 0.5.15 by @dependabot[bot] in #933
- Enable automatic dependency updates by @shssoichiro in #937
- Bump tokio from 1.43.0 to 1.43.1 by @dependabot[bot] in #932
- Delete .mergify.yml by @shssoichiro in #939
- Validate MSRV as part of CI by @shssoichiro in #947
- chore(deps): bump serde from 1.0.217 to 1.0.219 by @dependabot[bot] in #945
- Update dependencies and cleanup unused ones by @shssoichiro in #948
- Also auto-update Github Actions by @shssoichiro in #949
- chore(deps): bump actions/configure-pages from 4 to 5 by @dependabot[bot] in #950
- chore(deps): bump docker/build-push-action from 4 to 6 by @dependabot[bot] in #951
- chore(deps): bump docker/metadata-action from 4 to 5 by @dependabot[bot] in #952
- chore(deps): bump actions/cache from 3 to 4 by @dependabot[bot] in #953
- chore(deps): bump actions/checkout from 3 to 4 by @dependabot[bot] in #954
- Print available encoder versions in
--versionby @shssoichiro in #955 - Fix scenechange script when downscale not specified by @shssoichiro in #957
- Enable code coverage checking by @shssoichiro in #958
- Add additional tests for chunk.rs by @shssoichiro in #959
- See if lcov gives more intuitive results by @shssoichiro in #960
- Fix logging parameters are ignored by @BoatsMcGee in #956
- Improve CLI documentation and formatting by @BoatsMcGee in #962
- Split CI into separate jobs by @shssoichiro in #963
- Add CTRL+C SIGINT handling by @BoatsMcGee in #966
- Improve CLI Documentation formatting by @BoatsMcGee in #964
- Fix logging by @BoatsMcGee in #969
- Add Target Quality feedback to mini progress bar per chunk by @BoatsMcGee in #970
- chore(deps): bump docker/login-action from 2 to 3 by @dependabot[bot] in #972
- chore(deps): bump docker/setup-qemu-action from 2 to 3 by @dependabot[bot] in #973
- chore(deps): bump docker/setup-buildx-action from 2 to 3 by @dependabot[bot] in #974
- Add kf-max-dist to aom and vpx defaults by @shssoichiro in #976
- Further changes to console logging by @shssoichiro in #975
- Move tracing instrumentation to debug by @shssoichiro in #977
- Fix issue where chunk progress is inaccurate on resume by @shssoichiro in #978
- chore(deps): bump sysinfo from 0.34.2 to 0.35.0 in the rust-dependencies group by @dependabot[bot] in #983
- Set the output FPS when concatenating by @shssoichiro in #979
- Refactor tests into separate files by @shssoichiro in #985
- chore(deps): bump the rust-dependencies group with 5 updates by @dependabot[bot] in #987
- Improvement on rustfmt. by @master-of-zen in #989
- Cleanup and update dependencies by @shssoichiro in #997
- Cleanup and inline public exports by @shssoichiro in #998
- chore(deps): bump the rust-dependencies group with 2 updates by @dependabot[bot] in #1000
- Fix resuming crashes from attempt to subtract with overflow by @BoatsMcGee in #1001
- Add
--probing-speedOption for Target Quality by @BoatsMcGee in #1002 - chore(deps): bump the rust-dependencies group with 2 updates by @dependabot[bot] in #1004
- chore(deps): bump which from 7.0.3 to 8.0.0 by @dependabot[bot] in #1011
- chore(deps): bump the rust-dependencies group with 3 updates by @dependabot[bot] in #1010
- New Probing Options & Better Search & Cleanups by @emrakyz in #1014
- Small fix for "copy" mechanism by @emrakyz in #1015
- Mention silent truncation of probing_rate>4 by @t-nil in #803
- Make codecov not fail CI if coverage decreases by @shssoichiro in #1018
- fix fbba019: forcing output FPS breaks using FPS changing filter by @t-nil in #1017
- Refactor TQ & Consolidate Stats (Cross-PR with Boats) by @emrakyz in #1016
- chore(deps): bump the rust-dependencies group with 3 updates by @dependabot[bot] in #1020
- Add new Target Quality Metrics by @BoatsMcGee in #988
- Fix CLI argument validation warnings do not print by @BoatsMcGee in #1022
- Fix target-metric documentation inconsistencies by @BoatsMcGee in #1024
- Remove clap from av1an-core by @BoatsMcGee in #1025
- Fix final probe copy shortcut ignores probing rate, probing speed, and ffmpeg filters by @BoatsMcGee in #1023
- Add missing zoning options by @KosakaIsMe in #1032
- Add Target Quality Retries by @BoatsMcGee in #1026
- feat: Set Number of Threads for VScore to 1 When No VPY File Is Specified by @shssoichiro in #1037
- Undo restricting decoder threads by @shssoichiro in #1040
- Refactor scene handling code by @shssoichiro in #1039
- Fix incorrect comment by @shssoichiro in #1041
- Fix loading of the scenes.json to load pre- and post- splits by @shssoichiro in #1042
- Fix logging consistency by @shssoichiro in #1044
- Update to latest av-decoders and av-scenechange by @shssoichiro in #1045
- Further improvements for CRF search by @emrakyz in #1043
- chore(deps): bump indicatif from 0.17.11 to 0.17.12 in the rust-dependencies group across 1 directory by @dependabot[bot] in #1046
- Clean up dependencies by @shssoichiro in #1047
- replace TQ tolerance with configurable ranges by @emrakyz in #1048
- Fix extra-splits 0 and min-scene-len 0 erroring by @shssoichiro in #1051
- add configurable interpolation methods for TQ by @emrakyz in #1049
- ಠ_ಠ by @shssoichiro in #1052
- Cargo refused to update the lockfile by @shssoichiro in #1053
- Improve error tracking when vapoursynth calls fail by @shssoichiro in #1054
- Refactor to reduce number of spawned Environments by @shssoichiro in #1055
- chore(deps): bump the rust-dependencies group with 2 updates by @dependabot[bot] in #1058
- Fix MKVMerge Fails to Concatenate on Linux When Total Chunks Exceed ulimit by @BoatsMcGee in #1065
- Fix Failing Test on Windows (#1066) by @NandeMD in #1067
- Fix zones replaces last frame with 0 and fails to parse by @BoatsMcGee in #1061
- Fix Split Method None Zoning Logic by @BoatsMcGee in #1068
- Reduce Scene Detection loadscript Usage by @Boat...
0.4.4
Full Changelog: 0.4.3...0.4.4
What's Changed
- Replace atty crate with fn is_terminal from std by @FreezyLemon in #875
- Fix cargo lock file by @shssoichiro in #877
- Update lsmash link in Readme to ffmpeg7-compatible fork by @shssoichiro in #876
- lockfile: bump vapoursynth-sys to 0.4.1 by @FreezyLemon in #880
- libvmaf: Use model='path=...' instead of model_path=... by @FreezyLemon in #869
- Allow more than 1 worker per thread pool set by set-thread-affinity by @damster101 in #873
- Remove assertion that prevents resuming if all chunks are finished by @shssoichiro in #882
- Make --vmaf parameter work independently again by @damster101 in #881
- Windows build and compiling.md changes by @Uranite in #887
- Fix doc link by @SnowSquire in #890
- Delete tag before making a release by @Uranite in #888
- Fix compatibility with x265 4.0 by @shssoichiro in #893
- Better logging with tracing by @master-of-zen in #897
0.4.3
What's Changed
Full Changelog: 0.4.2...0.4.3
- Bump mio from 0.8.10 to 0.8.11 by @dependabot in #816
- Bump libgit2-sys from 0.16.1+1.7.1 to 0.16.2+1.7.2 by @dependabot in #809
- Fix new clippy lint in Rust 1.77 by @shssoichiro in #819
- append to log file by @jcj83429 in #817
- Update Windows CI job by @FreezyLemon in #820
- Fix vmaf flag check with target-quality by @luigi311 in #823
- Bump MSRV to 1.70 by @shssoichiro in #835
- Support ffmpeg 7.0 by @shssoichiro in #834
- Modify windows-build.yml to use ffmpeg 7.0 by @Uranite in #839
- Fix "Received a packet for an attachment stream" error when encoding certain files. by @0xBA5E64 in #841
- Implement pipeless scene detection for Vapoursynth inputs by @shssoichiro in #844
- Bump dependencies and remove an old file by @shssoichiro in #845
- Implement pipeless scene detection for basic video inputs by @shssoichiro in #847
- Remove vapoursynth-plugin-lsmashsource by @Extarys in #851
- Use updated av-scenechange with threaded ffmpeg decoder by @shssoichiro in #853
- Update compile docs by @Uranite in #855
- Add support for passing variables to the vspipe python environment by @Vernoxvernax in #858
- Clippy fixes and other minor cleanup by @shssoichiro in #859
- fix docker ref by @lyj0309 in #862
- Fix everything breaking the CI by @shssoichiro in #864
- Use absolute instead of canonicalize for better Windows path handling by @shssoichiro in #861
- Update NASM and VapourSynth in windows-build.yml by @Uranite in #866
- Update compiling.md by @Uranite in #867
New Contributors
0.4.2
What's Changed
- ci(Mergify): configuration update by @shssoichiro in #737
- Remove tpl by @master-of-zen in #739
- Move framerate to chunk by @master-of-zen in #742
- Action: Test target-quality is working correctly. by @luigi311 in #743
- Action: Tag latest, update versions, add docker-publish checker by @luigi311 in #741
- Fix estimated fps when using --resume flag by @shssoichiro in #736
- Routine dependency updates by @shssoichiro in #748
- Move audio size to progress bar OnceCell by @master-of-zen in #754
- simplify progress bar finish and consolidate dec_bar function by @master-of-zen in #755
- Fix target quality command syntax by @HaveAGitGat in #756
- Bump rav1e dependency by @shssoichiro in #757
- Split user facing encode args from internals by @shssoichiro in #761
- Photon noise arguments by @superyu1337 in #764
- Add additional flags, options by @woot000 in #671
- Only get frame rate from Vapoursynth once while creating queue by @shssoichiro in #774
- Fix rustc 1.71 clippy lints by @shssoichiro in #775
- CI: Update dependencies in Windows build by @FreezyLemon in #779
- Add DGDecNV and BestSource chunk method by @simulping in #776
- Fix a variety of clippy lints by @shssoichiro in #792
- Bump proc-macro2 crate to fix compatibility with latest nightly by @shssoichiro in #791
- move ignore frame mismatch to chunk by @master-of-zen in #794
- unimportant improvements by @damian101 in #795
- Remove support for DgDecNv by @shssoichiro in #796
- Clarify preferred methods of obtaining support by @shssoichiro in #800
- Revert "Remove support for DgDecNv" by @shssoichiro in #799
- Update dependencies by @shssoichiro in #804
- Bump shlex from 1.2.0 to 1.3.0 by @dependabot in #807
- Rework docs into BookMD by @master-of-zen in #811
- Support grain tables for SVT-AV1 by @shssoichiro in #812
- Create mdbook.yml by @master-of-zen in #813
New Contributors
- @HaveAGitGat made their first contribution in #756
- @superyu1337 made their first contribution in #764
- @simulping made their first contribution in #776
- @damian101 made their first contribution in #795
Full Changelog: 0.4.1...0.4.2
0.4.1
0.4.1
Av1an 0.4.0
What's Changed
- Update vapoursynth and other dependencies by @redzic in #540
- Rework log levels to be more useful by @shssoichiro in #546
- Do not automatically backport each PR to stable by @shssoichiro in #549
- Display chunk index instead of worker index in verbose mode by @shssoichiro in #550
- Do not state that vapoursynth is optional by @redzic in #552
- Fix ffmpeg issue in docker container by @redzic in #555
- Fix mkvmerge on network drives for windows by @redzic in #558
- Warn about slowness when using "select" chunk method by @shssoichiro in #560
- Update SVT-AV1 target quality params for v0.9.0 by @redzic in #557
- Future proof SVT-AV1 version parsing by @redzic in #562
- Update rav1e and vapoursynth by @redzic in #565
- Fix progress bar size estimate by @redzic in #566
- Update several dependencies by @shssoichiro in #568
- Compile rav1e from git in Dockerfile by @redzic in #569
- Update dependencies by @redzic in #571
- Update to ffmpeg 5.0 by @redzic in #575
- remove old appveyour.yml by @master-of-zen in #576
- Lastrosade sc only by @lastrosade in #574
- fix indicatif by @master-of-zen in #583
- Adaptive extra splits by @master-of-zen in #584
- Multiple input files by @master-of-zen in #582
- Set required for input by @redzic in #585
- Replace memory writes with mask in sse4.1 aom/vpx parsing, fix edge case by @redzic in #588
- Update dependencies by @redzic in #589
- Speed up CI, Reduce container image size by @luigi311 in #591
- Fix a memory leak in standard scene check method by @shssoichiro in #593
- Use github cache action instead of using gha. Dedupe Dockerfile by @luigi311 in #594
- Silence remaining clippy lints by @shssoichiro in #595
- Disable grain table generation if
--photon-noise 0is set by @shssoichiro in #599 - Reduce binary size by removing regex by @redzic in #600
- Add zones support by @shssoichiro in #598
- Fix ffmpeg filter escaping by @redzic in #602
- Include whether lsmash and ffms2 were found in version info by @redzic in #606
- Fix extra splits and zones handling with split method none by @redzic in #607
- Use published ffmpeg-next by @shssoichiro in #609
- Upgrade to edition 2021 by @shssoichiro in #610
- Updated README.md by @FazlyMR in #608
- Error and retry chunk if frame count mismatches by @shssoichiro in #612
- Add compilation instructions for Windows by @redzic in #617
- Remove data streams when encoding audio by @GaveUp in #616
- docs: First pass for SVT-AV1 documentation by @hansejo in #614
- Error if scene change frame count does not match by @shssoichiro in #618
- Consolidate import style in rustfmt.toml by @redzic in #619
- Improvements to grain synth gamma handling by @shssoichiro in #622
- Zones fixes by @shssoichiro in #624
- Print a proper error message if the input file does not exist by @shssoichiro in #626
- Log video info at the start of encode by @shssoichiro in #629
- Improve selection of HDR content by @shssoichiro in #632
- Use std::available_parallelism instead of num_cpus by @shssoichiro in #633
- Don't panic if ffmpeg fails to count frames by @Y0ba in #634
- Catch panics in child threads by @Y0ba in #635
- Do not call parse_encoded_frames in first pass by @redzic in #637
- Fix x265 2-pass params by @Y0ba in #636
- Fix clippy warnings by @redzic in #639
- Change progress bar characters by @redzic in #640
- vmaf_percentile to 1, default vmaf rate to 1 by @master-of-zen in #641
- Create workflow for Windows x64 builds by @FreezyLemon in #638
- Temporarily disable docker caching via cargo-chef by @redzic in #643
- Automate Windows binary releases on changes to master by @FreezyLemon in #646
- Reenable cargo chef by @FreezyLemon in #647
- Update readme by @FreezyLemon in #649
- Readme changes by @master-of-zen in #651
- Fix compilation with latest rav1e by @shssoichiro in #652
- Migrate grain synth code to external crate and allow chroma grain synth by @shssoichiro in #653
- Update av1-grain to fix a major bug that made it not work by @shssoichiro in #654
- Allow generating photon noise tables for rav1e by @shssoichiro in #655
- Use
-c y4minstead of deprecated-yin vspipe by @shssoichiro in #657 - Bump ffmpeg-next to 5.1.1 by @FreezyLemon in #658
- Fix CI Windows builds by @FreezyLemon in #656
- Fix stalled pipe on Windows when using target quality by @woot000 in #596
- Fix extra_splits when fps is NaN by @redzic in #661
- Fix usage of --quiet flag by @redzic in #669
- Various dependency updates and cleanup by @shssoichiro in #679
- Fix Windows build by @FreezyLemon in #680
- Temporarily disable steady ticks on progress bars by @shssoichiro in #682
- Fix stuttering FPS and ETA on progress bar by @shssoichiro in #684
- Cleanup workspace by @shssoichiro in #685
- Improve verbose progress for several encoders by @shssoichiro in #688
- Fix way too many new clippy lints from Rust 1.66 by @shssoichiro in #693
- Fix x26* progress bar by @shssoichiro in #692
- Remove patches and bump av-scenechange by @master-of-zen in #694
- 0.4.0 by @master-of-zen in #695
New Contributors
- @FazlyMR made their first contribution in #608
- @GaveUp made their first contribution in #616
- @hansejo made their first contribution in #614
- @Y0ba made their first contribution in #634
- @FreezyLemon made their first contribution in #638
- @woot000 made their first contribution in #596
Full Changelog: 0.3.1...0.4.0-release
Av1an 0.3.1
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
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
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