Commit graph

70 commits

Author SHA1 Message Date
FreezyLemon 8f617ec68f
Create workflow for Windows builds (#638)
Co-authored-by: FreezyLemon <freezylemon@protonmail.com>
2022-06-26 09:27:13 +00:00
Luigi311 507a6e306f
Use github cache action instead of using gha. Dedupe Dockerfile (#594)
* Action: Use local cache to speed up docker-publish

* Cleanup Dockerfile

* Dockerfile: Reduce duplication
2022-03-16 01:52:27 +00:00
Luigi311 fe137408c9
Speed up CI, Reduce container image size (#591)
* Action: Add rust caching to test

* Actions: Use github action to cache docker

* Optimize Dockerfile to allow for caching

* Docker: Use cargo chef for caching

Co-authored-by: Luigi311 <luigi311.lg@gmail.com>
2022-03-14 14:54:45 +00:00
Jeremy Lee Shields f5ec4891be
Lastrosade sc only (#574)
* Add command line arg for sc-only

* added arg to settings.rs

* Add check and kill after split_routine()

Deletes the temporary directory, it would be better if it was never created in the first place.

* Initialize sc_only in EncodeArgs

* cargo fmt

* Integration test

* Make -s a requirement

* cargo fmt

* Add -s as requirement to sc-only via clap

* revert f7688ca

* Fix me not reading errors

* revert db4fb3b

* Cargo fmt

* Added --scenes as a requirement for --sc-only with clap

* Update wording

* Trying to fix the weird integration bug

* Revert 393b380

* Condition on test failure

* Github actions again

* Filename in actions
2022-03-02 05:33:31 +00:00
Josh Holmer d7c3db84ca
Pre release changes (#511)
* Use latest indicatif release

* Fix some clippy lints

* Also validate formatting and warnings in CI

* Minor dependency updates

* Do not show '/0' frames if we haven't computed frame count yet
2022-01-05 03:48:35 +00:00
Josh Holmer ff0abb01b3 Always run CI so that we can merge all PRs 2022-01-03 17:21:16 -05:00
redzic 702e73f724
Automatically set one-pass mode if --rt was specified (#462) 2021-12-22 05:09:25 +00:00
Josh Holmer 0aa8fc5281
Automatically add cq-level arg if it is not present (#460)
* Automatically add cq-level arg if it is not present

Currently, target quality requires a cq-level (or equivalent for the
encoder) arg to be present in order to work, so that it can replace the
existing cq-level with the new one. This commit makes it so that if the
arg is not present, av1an will insert it with the proper quality level.

* Use format! for insert_q

Co-authored-by: Redzic <yusufredzic@gmail.com>
2021-12-22 01:14:34 +00:00
Josh Holmer 56461c6b17
Add mergify config (#445)
* Add mergify config

This config includes the following rules:

- Automatically merge once a PR passes all tests and is approved.
- Automatically backport each PR from our main branch into our stable branch

* Merge all tests into one run

* Cleanup and speed up test suite

* Migrate to a docker image with dav1d

* Create CI profile with debug assertions enabled

* Use faster params for all encoders

Co-authored-by: Redzic <yusufredzic@gmail.com>
2021-12-15 17:58:00 -05:00
redzic 754c1192fe
Always copy subtitles and all audio tracks (#400)
* Always copy subtitles and all audio tracks

Require mkvmerge for x265

* cargo update

* Fix concat if audio file does not exist

* Use stable rustc in Docker, do not compile VVC

* Use old Docker image for now which works with vapoursynth

* Fix tests.yml

* Use mkvmerge for tests

* Add mkvtoolnix as a dependency in tests.yml
2021-11-07 14:20:12 +02:00
Josh Holmer 32cebb8808
Scene detect changes (#383)
* Remove sc-downscale-height CLI option

The standard scenecut detection method at 1080p
is currently as fast as downsampling to 720p
and running scenecut detection on that, and the
fast scenecut method is significantly faster
without downsampling, because the algorithm
is faster than ffmpeg's resizing algorithm.

As such, it doesn't make sense to have this option anymore.

* Fix conditional use of newer VS APIs

It makes sense to enable these by default,
since the vast majority of users
should have a moderately recent version
of Vapoursynth.

We also needed to disable the static ffmpeg
as the default for now. libaom returns None
for the pixel format, so it is not usable
for the changes needed later in this PR.
I attempted to get the git version of
ffmpeg-next compiling with libdav1d,
but was running into issues, I believe
because Arch's package manager only includes
a dynamic library for libdav1d and not
a static version. It probably makes sense
to disable it anyway given the issues
Windows users have been having with it.

* No longer convert input to 8-bit for scene detect

It appears that downconverting does have an impact
on scene detection accuracy. The speed penalty
for running in 10-bit compared to 8-bit is only
10%. Given this, it seems preferable to run
the scene detect in the more accurate format.

* Skip ffmpeg intermediate step for vapoursynth input

* Fix skipping of ffmpeg pipe step

This optimization added in #379 was never triggered.
Because the initialize() method always added a set
of default params to self.ffmpeg_params, the clause
to skip the ffmpeg pipe, self.ffmpeg_params.is_empty(),
was unreachable.

* Revert "Remove sc-downscale-height CLI option"

This reverts commit a51763607faddae07a595f567d4f4cf815de3299.

* Validate pixel formats based on encoder support

* Fix CI build

The dynamic linking of ffmpeg doesn't seem to play nicely with
the old version of ffmpeg which is packaged in Ubuntu's last LTS.
This enables static linking when we are running in CI to work around
that issue, given that that workaround is easier than overhauling
which docker container we use.
2021-10-20 19:54:48 +03:00
Josh Holmer f52c82f15c
Use a different method for ffmpeg frame count (#368)
* Use a different method for ffmpeg frame count

This method uses ffprobe to count the number of packets
(which is identical to the number of frames, but faster)
in a video stream. This works with more video formats,
including with --enable-keyframe-filtering=2 in aomenc.
Performance should be similar or better than ffmpeg -copy.

* Add sanity check when using keyframe filtering 2

* Use ffmpeg-next crate for getting frame count

* Add LLVM/Clang to Github Actions

* Enable ffmpeg static and build features by default
2021-10-01 23:48:40 +03:00
Zen 1d613062b5 fix ffms2 and lsmash tests 2021-07-10 17:42:17 +03:00
Luigi311 16e39713a2
Fix workflow, Fix Dockerfile (#303)
* Fix workflow
* Dockerfile: Build rust
* Action: Fix svt-av1
2021-07-19 02:36:06 +03:00
Zen 0975a77766 fix tests 2021-07-12 23:36:20 +03:00
Luigi311 308e97047e
Add probe slow, add devcontainer, update readme (#289)
* Dockerfile: Update copy with chown, seperate copy requirements from all
* Add probe-slow support
* README: Update readme with new rust cli options
* Dockerfile: Hide av1an venv
* Add devcontainer
* Action: Add baseline-select
2021-07-09 19:32:47 +03:00
Zen e36b209516 removed bad test 2021-06-29 21:58:44 +03:00
Zen 0794a5bd59 remove aomenc keyframes 2021-06-28 06:11:17 +03:00
Zen 827c6993b1 remove target quality slow probe 2021-06-27 23:12:27 +03:00
Luis Garcia da32f15ffe
Probe slow (#277)
Add probe-slow
2021-06-09 00:39:14 +03:00
Luis Garcia 7851d165b9
Fix aom_keyframes, docker-publish needs validate (#273)
* Action:publish needs validate
2021-06-05 10:40:48 +03:00
Zen 2d4366aafa fix tests 2021-06-05 10:38:22 +03:00
Zen 4c314b96de fix tests 2021-06-04 22:45:11 +03:00
Luis Garcia f8784d2764
Actions: Use dockerhub (#270)
* Actions: Use dockerhub
* Actions: Remove ls
2021-05-24 10:19:52 +03:00
Luis Garcia 36037e6e42
Docker improvements (#269)
* Actions: Docker build all, cache publish
* Docker: Add wheel
2021-05-24 09:07:47 +03:00
redzic 6f78df5c0e Fix merge conflicts and update docker and github actions 2021-05-16 03:35:36 -05:00
Luis Garcia 0f1916cf44 Rust (#260) 2021-05-16 09:25:33 +03:00
Luis Garcia ad72975a25
Rust (#260) 2021-05-15 09:09:01 +03:00
Luigi311 6791fba8be Always cat log
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-02-09 22:58:10 -07:00
Luigi311 d76bb9e2d9 Actions: Use python setup
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-02-09 22:53:13 -07:00
Luigi311 17cb56b141 Actions: Remove deps, add vs test
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-02-09 22:50:50 -07:00
Luigi311 5f0ece3781 Docker: Use luigi311/encoders-docker base, update readme
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-02-09 22:41:53 -07:00
Luigi311 3a7ed57e53 CI: Only run docker on master and push events
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-31 14:58:19 -07:00
Luigi311 efe1cb34b1 Dynamic username
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-18 20:30:55 -07:00
Luigi311 6b6da0946f Update repo
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-18 19:38:39 -07:00
Luigi311 c9155b0ad9 path
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-18 19:23:33 -07:00
Luigi311 b1273fee3a file
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-18 18:24:08 -07:00
Luigi311 f729d8c2c9 context
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-18 18:06:50 -07:00
Luigi311 628f4a9e8a Docker build and push
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2021-01-18 14:52:22 -07:00
Luis Garcia cb10508aee
Actions: Name first then enc 2020-12-23 05:06:36 -07:00
Luis Garcia 10edf26da3
Actions: Only test target_quality on all encoders, remove svt-vp9 2020-12-23 05:00:17 -07:00
Luis Garcia f0c785c69d
Actions: Name tests 2020-12-23 04:52:37 -07:00
Luis Garcia a0c8e309f8
Actions: Test all encoders 2020-12-23 04:50:41 -07:00
Zen 4bfdc8da45
add scenes test 2020-12-02 12:32:04 +02:00
Luis Garcia 224deaee7a
Actions: Install tree 2020-11-26 14:24:27 -07:00
Luis Garcia d429fd8cf0
Actions: Add vmaf_plots 2020-11-26 14:20:49 -07:00
Luis Garcia f4c8ce7436
Actions: Add vmaf test, switch from ls -a to tree -a 2020-11-26 14:19:42 -07:00
w e2af3eef30 Update tests.yml 2020-11-26 04:09:08 -08:00
w 6c71d2c508 remove fuzzywuzzy/levenshtein and use difflib sequencematcher 2020-11-26 03:56:19 -08:00
Zen e7661bd379
renaming 2020-11-26 13:32:38 +02:00