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-01-15 04:47:16 +00:00
![alt text ](https://cdn.discordapp.com/attachments/665440744567472169/666865780012482571/Screenshot_20200115_064531.png )
2020-01-12 03:44:02 +00:00
2020-01-13 14:07:26 +00:00
< h2 align = "center" > Easy And Efficient < / h2 >
2020-01-27 18:33:09 +00:00
Start using AV1 encoding. All open-source encoders are supported (Aomenc, Rav1e, SVT-AV1).
Avif encoding supported (Aomenc, Rav1e)
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-01-13 16:55:07 +00:00
./av1an.py -i input -enc aomenc -e '--cpu-used=3 --end-usage=q --cq-level=30' -a '-c:a libopus -b:a 24k'
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-01-13 14:53:30 +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-01-27 18:33:42 +00:00
-m --mode 0 - Video encoding (Default), 1 - Image encoding
2020-01-27 18:31:58 +00:00
By default used 10 bit encoding.
Constant quality mode for Aomenc
2020-01-27 18:04:36 +00:00
2020-01-16 09:38:52 +00:00
-enc --encoder Encoder to use (aomenc or rav1e or svt_av1. Default: aomenc)
Example: -enc rav1e
2020-01-16 04:30:21 +00:00
-e --encoding_params Encoder settings flags (If not set, will be used default parameters.
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-01-20 11:00:28 +00:00
2020-01-13 17:04:14 +00:00
-a --audio_params FFmpeg audio settings flags (Default: copy audio from source to output)
2020-01-13 14:53:30 +00:00
2020-01-13 17:04:14 +00:00
-t --workers Maximum number of workers (overrides automatically set number of workers.
2020-01-13 14:49:55 +00:00
Aomenc recommended value is YOUR_THREADS - 2 (Single thread per worker)
2020-01-15 19:04:33 +00:00
Rav1e and SVT-AV1 uses multiple threads,
2020-01-13 14:53:30 +00:00
Example: '--tile-rows 2 --tile-cols 2' load 2.5 - 3.5 threads
2020-01-15 19:04:33 +00:00
4 rav1e workers is optimal for 6/12 cpu
2020-01-13 14:53:30 +00:00
2020-01-16 09:21:37 +00:00
-fps --force_fps Forces fps of video. Needed when you need to change fps of video,
to prevent encoders from changing video length.
Usefully for SVT-AV1 encoder. No need to set up fps num/denum.
Example:
.. -e '-fps-num 30000 -fps-denom 1001 ..' (SVT-AV1 29.97)
.. -fps 30 -e ' -fps 30 ..' (Force FPS)
2020-01-13 17:04:14 +00:00
-tr --threshold PySceneDetect threshold (Optimal values in range 15 - 50.
2020-01-13 14:52:07 +00:00
Bigger value = less sensitive )
2020-01-13 17:04:14 +00:00
2020-01-26 20:08:37 +00:00
-p --pass Set number of passes for encoding
(Default: Aomenc: 2, Rav1e: 1, SVT-AV1: 2)
At current moment 2nd pass Rav1e not working
2020-01-14 17:44:57 +00:00
2020-01-22 08:54:10 +00:00
-vf --video_filter FFmpeg video filter options. Example:
... -vf 'scale=320:240' ...
2020-01-21 17:31:40 +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-01-27 18:31:58 +00:00
Encoding options should be adjusted accordingly
2020-01-21 17:31:40 +00:00
2020-01-22 08:54:10 +00:00
-log --logging Path to .log file(Default: no logging)
Currently not working on Windows
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
[PySceneDetect ](https://pyscenedetect.readthedocs.io/en/latest/ ) used for spliting video by scenes and running multiple encoders.
2020-01-27 18:04:36 +00:00
Both Video and Avif Image encoding
2020-01-12 03:44:02 +00:00
Simple and clean console look
2020-01-13 14:07:26 +00:00
Automatic determination of how many workers the host can handle
2020-01-12 03:44:02 +00:00
Building encoding queue with bigger files first, minimizing waiting for last scene to encode
Both video and audio encoding option with FFmpeg
2020-01-11 14:05:38 +00:00
2020-01-12 03:49:10 +00:00
And many more to go..
2020-01-18 05:59:32 +00:00
## Install on Windows
2020-01-11 14:15:21 +00:00
2020-01-18 05:59:32 +00:00
* [Python3 ](https://www.python.org/downloads/ )
* [FFmpeg ](https://ffmpeg.org/download.html ) with ffprobe and add it on env variable
* [PyScenedetect ](https://pyscenedetect.readthedocs.io/en/latest/ )
* [mkvmerge/python-pymkv ](https://pypi.org/project/pymkv/ ) and add it on env variable
2020-01-13 02:37:06 +00:00
* [AOMENC ](https://aomedia.googlesource.com/aom/ ) For Aomenc encoder
* [Rav1e ](https://github.com/xiph/rav1e ) For Rav1e encoder
2020-01-18 05:59:32 +00:00
* [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
2020-01-27 18:51:58 +00:00
If installed programs don't added to enviroment variable,
executables can be put in same folder with av1an
2020-01-19 04:02:21 +00:00
Run with command: `python -i ./avian.py params..`
2020-01-18 05:59:32 +00:00
## Install on Linux
* [Python3 ](https://www.python.org/downloads/ )
* [FFmpeg ](https://ffmpeg.org/download.html ) with ffprobe
2020-01-13 02:37:06 +00:00
* [PyScenedetect ](https://pyscenedetect.readthedocs.io/en/latest/ )
2020-01-11 14:15:21 +00:00
* [mkvmerge/python-pymkv ](https://pypi.org/project/pymkv/ )
2020-01-18 05:59:32 +00:00
* [AOMENC ](https://aomedia.googlesource.com/aom/ ) For Aomenc encoder
* [Rav1e ](https://github.com/xiph/rav1e ) For Rav1e encoder
2020-01-19 04:02:21 +00:00
* [SVT-AV1 ](https://github.com/OpenVisualCloud/SVT-AV1 ) For SVT-AV1 encoder
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...`