The Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder) is an AV1-compliant encoder/decoder library core. The SVT-AV1 encoder development is a work-in-progress targeting performance levels applicable to both VOD and Live encoding / transcoding video applications. The SVT-AV1 decoder implementation is targeting future codec research activities.
SVT-AV1 is licensed under the Alliance for Open Media license and Patent License. See LICENSE and PATENTS for details. Please refer to the license Q&A if you have any questions about the licensing history of SVT-AV1.
More details about the SVT-AV1 usage and implementation can be found under:
SVT-AV1 Encoder may run on any Windows or Linux 64 bit operating systems. The list below represents the operating systems that the encoder application and library were tested and validated on:
The SVT-AV1 Encoder library supports the x86 architecture
CPU Requirements
In order to achieve the performance targeted by the SVT-AV1 Encoder, the specific CPU model listed above would need to be used when running the encoder. Otherwise, the encoder runs on any 5th Generation Intel® Core™ processor, (Intel® Xeon® CPUs, E5-v4 or newer).
RAM Requirements
The SVT-AV1 Encoder adapts to the system that is being ran on. The memory requirements depend on the number of cores the system contains, the input frame rate of the input sequence (-fps
) and the look ahead distance passed to the encoder (-lad
). The SVT-AV1 Encoder application will display an error if the system does not have enough RAM to support the encode prior to the start of the encode. The following table shows the minimum amount of RAM required for some standard resolutions of 10bit video per stream:
Resolution | 8-vCPU Commit Size (GB) | 40-vCPU Commit Size (GB) |
---|---|---|
4k | 14 | 24 |
1080p | 6 | 10 |
720p | 4 | 7 |
480p | 3 | 5 |
Build Requirements
Build Instructions
Build\windows
build.bat <2019|2017|2015>
[This will generate the .sln files and build the project]Binaries Location
<repo dir>/Bin/Release
or <repo dir>/Bin/Debug
, depending on whether Debug or Release were selected in the build mode.Installation
For the binaries to operate properly on your system, the following conditions have to be met:
SvtAv1EncApp.exe
and library SvtAv1Enc.dll
are in the same folder.SvtAV1EncApp.exe -i [in.yuv] -w [width] -h [height] -b [out.ivf]
ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | SvtAv1EncApp.exe -i stdin -n [number_of_frames_to_encode] -w [width] -h [height]
Build Requirements
Build Instructions
cd Build/linux
./build.sh <release | debug>
Sample Binaries location
Bin/Release
and/or Bin/Debug
Installation
For the binaries to operate properly on your system, the following conditions have to be met:
SvtAV1EncApp
executable by running the command: chmod +x SvtAv1EncApp
./SvtAv1EncApp -i [in.yuv] -w [width] -h [height] -b [out.ivf]
ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtAv1EncApp -i stdin -n [number_of_frames_to_encode] -w [width] -h [height]
git clone --depth=1 https://github.com/AOMediaCodec/SVT-AV1
cd SVT-AV1
cd Build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j $(nproc)
sudo make install
NOTE: If you wish to use an FFmpeg tag or release before 4.4, please go here and consult that page to properly patch ffmpeg for use with SVT-AV1.
git clone --depth=1 https://github.com/FFmpeg/FFmpeg ffmpeg
cd ffmpeg
export LD_LIBRARY_PATH+=":/usr/local/lib"
export PKG_CONFIG_PATH+=":/usr/local/lib/pkgconfig"
./configure --enable-libsvtav1
make -j $(nproc)
./ffmpeg -i input.mp4 -c:v libsvtav1 -y test.mp4
Refer to the guide here.
SvtAV1EncApp.exe -nch 2 -c firstchannel.cfg secondchannel.cfg
We welcome community contributions to the SVT-AV1 Encoder and Decoder. Thank you for your time! By contributing to the project, you agree to the license, patent and copyright terms in the AOM License and Patent License and to the release of your contribution under these terms. See LICENSE and PATENTS for details.
You will be required to execute the appropriate contributor agreement to ensure that the AOMedia Project has the right to distribute your changes.
Follow the coding guidelines and the contributing guidelines
Validate that your changes do not break a build
Perform smoke tests and ensure they pass
Submit a pull request for review to the maintainer
Use the Issues tab on Github. To avoid duplicate issues, please make sure you go through the existing issues before logging a new one.
#svt
on Freenode. Join via Freenode Webchat or use your favorite IRC client. A public log is available.
Performance and raw data files available at http://videocodectracker.dev