The Scalable Video Technology for VP9 Encoder (SVT-VP9 Encoder) is a VP9-compliant encoder library core. The SVT-VP9 Encoder development is a work-in-progress targeting performance levels applicable to both VOD and Live encoding/transcoding video applications.
The SVT-VP9 Encoder is being optimized to achieve excellent performance levels currently supporting 10 density-quality presets (please refer to the user guide for more details) on a system with a dual Intel® Xeon® Scalable processor targeting:
SVT-VP9 Encoder also supports 3 modes:
A visually optimized mode for visual quality (-tune 0)
An PSNR/SSIM optimized mode for PSNR / SSIM benchmarking (-tune 1 (Default setting))
An VMAF optimized mode for VMAF benchmarking (-tune 2)
SVT-VP9 Encoder is licensed under the OSI-approved BSD+Patent license. See LICENSE for details.
More details about the SVT-VP9 Encoder usage can be found under:
SVT-VP9 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:
Windows* Operating Systems (64-bit):
Linux* Operating Systems (64-bit):
Ubuntu* 16.04 Server LTS
Ubuntu* 18.04 Server LTS
The SVT-VP9 Encoder library supports the x86 architecture
In order to achieve the performance targeted by the SVT-VP9 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).
In order to run the highest resolution supported by the SVT-VP9 Encoder, at least 10GB of RAM is required to run a 4k 8bit stream multi-threading on an 8180 system. The SVT-VP9 Encoder application will display an error if the system does not have enough RAM to support this. The following table shows the minimum amount of RAM required for some standard resolutions of 8bit video per stream:
Resolution | Minimum Footprint (GB) |
---|---|
4k | 10 |
1080p | 4 |
720p | 3 |
480p | 2 |
Build Requirements
Build Instructions
Binaries Location
Installation
For the binaries to operate properly on your system, the following conditions have to be met:
SvtVp9EncApp.exe -i [in.yuv] -w [width] -h [height] -b [out.ivf].
ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | SvtVp9EncApp.exe -i stdin -n [number_of_frames_to_encode] -w [width] -h [height].
Build Requirements
Build Instructions
./Build/linux/build.sh <release | debug>
(if none specified, both release and debug will be built)static
./Build/linux/build.sh --help
Sample Binaries location
Installation For the binaries to operate properly on your system, the following conditions have to be met:
chmod +x SvtVp9EncApp
./SvtVp9EncApp -i [in.yuv] -w [width] -h [height] -b [out.ivf].
ffmpeg -i [input.mp4] -nostdin -f rawvideo -pix_fmt yuv420p - | ./SvtVp9EncApp -i stdin -n [number_of_frames_to_encode] -w [width] -h [height].
Refer to the guide here.
We welcome community contributions to the SVT-VP9 Encoder. Thank you for your time! By contributing to the project, you agree to the license and copyright terms in the OSI-approved BSD+Patent license and to the release of your contribution under these terms. See LICENSE for details.
Follow the coding 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.
The notices and disclaimers can be found here