2020-01-11 14:05:38 +00:00
< h1 align = "center" >
< br >
Av1an
< / br >
< / h1 >
2020-01-13 14:07:26 +00:00
< h2 align = "center" > All-in-one tool for streamlining av1 encoding< / h2 >
2020-01-11 14:05:38 +00:00
2020-03-05 12:39:02 +00:00
![alt text ](https://cdn.discordapp.com/attachments/665440744567472169/685103807952060447/143740_05_03_20.png )
2020-01-12 03:44:02 +00:00
2020-02-16 16:00:26 +00:00
< h4 align = "center" > < img src = "https://ci.appveyor.com/api/projects/status/cvweipdgphbjkkar?svg=true" alt = "Project Badge" > < a href = "https://codeclimate.com/github/master-of-zen/Av1an/maintainability" > < img src = "https://api.codeclimate.com/v1/badges/41ea7ad221dcdad3fe8d/maintainability" / >
< img = src = "https://app.codacy.com/manual/Grenight/Av1an?utm_source=github.com&utm_medium=referral&utm_content=master-of-zen/Av1an&utm_campaign=Badge_Grade_Dashboard" > < / a >
< a href = "https://www.codacy.com/manual/Grenight/Av1an?utm_source=github.com&utm_medium=referral&utm_content=master-of-zen/Av1an&utm_campaign=Badge_Grade" > < img src = "https://api.codacy.com/project/badge/Grade/4632dbb2f6f34ad199142c01a3eb2aaf" / > < / a >
< / h4 >
2020-03-10 19:14:34 +00:00
< h2 align = "center" > Easy, Fast, and Efficient < / h2 >
2020-01-13 14:07:26 +00:00
2020-02-01 21:44:19 +00:00
Start using AV1 encoding. All open-source encoders are supported (Aom, Rav1e, SVT-AV1).
2020-01-12 03:44:02 +00:00
Example with default parameters:
2020-01-13 16:55:07 +00:00
./av1an.py -i input
2020-01-12 03:44:02 +00:00
2020-01-13 14:07:26 +00:00
With your own parameters:
2020-01-12 03:44:02 +00:00
2020-03-22 16:11:15 +00:00
./av1an.py -i input -enc aom -v " --cpu-used=3 --end-usage=q --cq-level=30 " -ff " -vf scale=-1:720 "
2020-03-26 11:35:49 +00:00
-w 10 -p 2 -a " -c:a libopus -b:a 24k " -s scenes.csv -log my_log -o output_file
2020-01-12 03:44:02 +00:00
2020-01-13 14:07:26 +00:00
< h2 align = "center" > Usage< / h2 >
2020-01-13 17:04:14 +00:00
-i --file_path Input file (relative or absolute path)
2020-02-14 06:42:25 +00:00
2020-01-16 08:23:40 +00:00
-o --output_file Name/Path for output file (Default: (input file name)_av1.mkv)
2020-02-14 06:42:25 +00:00
2020-02-01 16:24:35 +00:00
-enc --encoder Encoder to use (aom or rav1e or svt_av1. Default: aom)
2020-01-16 09:38:52 +00:00
Example: -enc rav1e
2020-02-17 14:13:16 +00:00
-v --video_params Encoder settings flags (If not set, will be used default parameters.
2020-01-16 04:30:21 +00:00
Required for SVT-AV1s)
2020-01-27 18:55:00 +00:00
Can be set for both video and image mode
Must be inside ' ' or " "
2020-02-14 06:42:25 +00:00
2020-02-17 14:09:10 +00:00
-p --passes Set number of passes for encoding
2020-02-14 06:42:25 +00:00
(Default: Aomenc: 2, Rav1e: 1, SVT-AV1: 2)
At current moment 2nd pass Rav1e not working
2020-01-13 17:04:14 +00:00
-a --audio_params FFmpeg audio settings flags (Default: copy audio from source to output)
2020-02-03 23:09:23 +00:00
Example: -a '-c:a libopus -b:a 64k'
2020-02-14 06:42:25 +00:00
2020-03-26 11:35:49 +00:00
-w --workers Overrides automatically set number of workers.
2020-03-01 13:29:08 +00:00
Example: Rav1e settings " ... --tile-rows 2 --tile-cols 2 ... " -t 3
2020-02-14 06:42:25 +00:00
2020-02-06 00:43:33 +00:00
-s --scenes Path to file with scenes timestamps.
2020-02-07 23:25:04 +00:00
If given `0` spliting will be ignored
2020-02-06 00:43:33 +00:00
If file not exist, new will be generated in current folder
2020-02-14 06:42:25 +00:00
First run to generate stamps, all next reuse it.
2020-03-01 13:29:08 +00:00
Example: "-s scenes.csv"
2020-02-14 06:42:25 +00:00
2020-03-22 17:58:23 +00:00
-tr --threshold PySceneDetect threshold for scene detection Default: 30
2020-02-14 06:42:25 +00:00
2020-02-17 14:21:35 +00:00
-ff --ffmpeg FFmpeg options. Example:
2020-03-01 13:29:08 +00:00
--ff " -r 24 -vf scale=320:240 "
2020-02-14 06:42:25 +00:00
2020-01-26 20:58:45 +00:00
-fmt --pix_format Setting custom pixel/bit format(Default: 'yuv420p')
Example for 10 bit: 'yuv420p10le'
2020-02-17 13:22:34 +00:00
Encoding options should be adjusted accordingly.
2020-02-14 06:42:25 +00:00
--resume If encode was stopped/quit resumes encode with saving all progress
Resuming automatically skips scenedetection, audio encoding/copy,
spliting, so resuming only possible after actuall encoding is started.
/.temp folder must be presented for resume.
--no_check Skip checking numbers of frames for source and encoded chunks
Needed if framerate changes.
By default any differences in frames of encoded files will be reported
2020-03-26 11:35:49 +00:00
2020-03-17 00:56:58 +00:00
--keep Not deleting temprally folders after encode finished
2020-03-26 11:35:49 +00:00
2020-01-22 08:54:10 +00:00
-log --logging Path to .log file(Default: no logging)
2020-03-26 11:35:49 +00:00
2020-03-24 19:19:14 +00:00
--temp Set path for temporally forlders. Default: .temp
2020-03-26 11:35:49 +00:00
2020-03-25 18:06:52 +00:00
--boost Enable experimental CQ boosting for dark scenes. Refer to 1.7 release notes
2020-03-26 11:35:49 +00:00
-bl CQ limit for boosting.
2020-03-19 08:18:50 +00:00
-br CQ range for boosting.
2020-01-13 14:07:26 +00:00
2020-01-12 03:44:02 +00:00
< h2 align = "center" > Main Features< / h2 >
2020-01-15 03:09:33 +00:00
**Spliting video by scenes for parallel encoding** because AV1 encoders currently not good at multithreading, encoding is limited to single or couple of threads at the same time.
2020-01-12 03:44:02 +00:00
2020-02-16 16:19:37 +00:00
* [PySceneDetect ](https://pyscenedetect.readthedocs.io/en/latest/ ) used for spliting video by scenes and running multiple encoders.
2020-02-16 16:22:34 +00:00
* Both Video and Image encoding* (Single frame to .ivf, can be viewed by videoplayer).
* Resuming encoding without loss of encoded progress.
* Simple and clean console look.
* Automatic determination of how many workers the host can handle.
* Building encoding queue with bigger files first, minimizing waiting for last scene to encode.
2020-03-26 20:38:47 +00:00
* Both video and audio transcoding with FFmpeg.
2020-02-16 16:22:34 +00:00
* Logging of progress of all encoders.
2020-03-26 20:38:47 +00:00
* "Boosting" quality of scenes based on their brightness
2020-01-12 03:49:10 +00:00
2020-01-18 05:59:32 +00:00
## Install on Windows
2020-01-11 14:15:21 +00:00
2020-02-16 16:19:37 +00:00
### 1. Use ready [Release](https://github.com/master-of-zen/Av1an/releases)
2020-02-29 17:09:13 +00:00
Just unpack it to desired folder and use like ` av1an.exe params`
2020-03-26 11:35:49 +00:00
2020-03-03 17:11:47 +00:00
Autobuilding .exe from current git available at [AppVeyor ](https://ci.appveyor.com/project/master-of-zen/av1an ).
2020-03-26 11:35:49 +00:00
2020-02-18 05:48:54 +00:00
All .exe for ffmpeg, and encoders should be in same folder
2020-02-14 06:42:25 +00:00
2020-02-16 16:19:37 +00:00
### 2. Install with dependancies
* [Python3 ](https://www.python.org/downloads/ )
2020-03-26 11:35:49 +00:00
* [FFmpeg ](https://ffmpeg.org/download.html )
2020-02-16 16:19:37 +00:00
* [AOMENC ](https://aomedia.googlesource.com/aom/ ) For Aomenc encoder
* [Rav1e ](https://github.com/xiph/rav1e ) For Rav1e encoder
* [SVT-AV1 ](https://github.com/OpenVisualCloud/SVT-AV1 ) For SVT-AV1 encoder
2020-01-18 05:59:32 +00:00
2020-03-12 12:34:06 +00:00
All .exe for ffmpeg and encoders should be in same folder
2020-02-18 01:04:31 +00:00
2020-03-12 12:34:06 +00:00
Install all requirements listed in `requirements.txt` file with `pip install -r requirements.txt`
2020-01-27 19:05:21 +00:00
2020-02-14 06:42:25 +00:00
If installed programs don't added to enviroment variable,
2020-01-27 18:51:58 +00:00
executables can be put in same folder with av1an
2020-01-27 19:05:48 +00:00
2020-03-03 17:11:47 +00:00
Run with command: `python -i ./av1an.py params..`
2020-01-18 05:59:32 +00:00
## Install on Linux
2020-02-16 16:19:37 +00:00
* [Python3 ](https://www.python.org/downloads/ )
2020-02-18 05:45:05 +00:00
* [FFmpeg ](https://ffmpeg.org/download.html )
2020-02-16 16:19:37 +00:00
* [AOMENC ](https://aomedia.googlesource.com/aom/ ) For Aomenc encoder
* [Rav1e ](https://github.com/xiph/rav1e ) For Rav1e encoder
* [SVT-AV1 ](https://github.com/OpenVisualCloud/SVT-AV1 ) For SVT-AV1 encoder
2020-01-19 04:02:21 +00:00
Install all requirements listed in `requirements` file
Optionally add Av1an to your PATH
2020-01-20 11:00:28 +00:00
Run with command: `av1an.py params...`
2020-03-01 20:50:48 +00:00
2020-03-26 11:35:49 +00:00
### Donations for Threadripper 3990x dream
2020-03-01 20:50:48 +00:00
Bitcoin - 1gU9aQ2qqoQPuvop2jqC68JKZh5cyCivG