SVT-VP9
37c3317fd058; modified for Encode Wiki · CC BY-SA 4.0SVT VP9 encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-VP9 encoder, it is possible to spread video encoding processing ac…
SVT-VP9 is the VP9 member of Intel’s Scalable Video Technology family, alongside SVT-HEVC and SVT-AV1. Like its siblings, it was built for throughput on many-core servers, and its presets are much faster than libvpx’s good-quality mode. It is limited, though: 8-bit 4:2:0 only (VP9 profile 0), raw YUV input, and fewer rate-control options than libvpx.
Status
Section titled “Status”The repository is not archived, but it is not under active development. v0.3.1 (December 2025) was the first release since v0.3.0 in 2020. Recent commits are mostly upkeep: rebasing the FFmpeg patch, build fixes and occasional bug fixes. For quality-focused VP9, especially 10-bit, use libvpx. Use SVT-VP9 when you need 8-bit VP9 fast.
git clone --branch v0.3.1 https://github.com/OpenVisualCloud/SVT-VP9.gitcmake -S SVT-VP9 -B SVT-VP9/Build -DCMAKE_BUILD_TYPE=Releasecmake --build SVT-VP9/Build -j"$(nproc)"The encoder is written to SVT-VP9/Bin/Release/SvtVp9EncApp.
Encode
Section titled “Encode”SvtVp9EncApp takes raw 8-bit YUV 4:2:0, so give it the dimensions and frame rate, and pipe from FFmpeg:
ffmpeg -i input.mkv -pix_fmt yuv420p -f rawvideo - | \ SvtVp9EncApp -i stdin -w 1920 -h 1080 -fps 24 -n 1000 -enc-mode 4 -tune 0 -q 40 -b output.ivfWhen reading from stdin, set -n to the number of frames. Without it, the encoder can hang at the end of the input. Width and height must both be multiples of 8, so crop or pad sources such as 1920×1036 first (for example -vf crop=1920:1032). The output is IVF; mux it into WebM or MKV with FFmpeg (ffmpeg -i output.ivf -i input.mkv -map 0:v -map 1:a -c:v copy -c:a libopus final.webm).
| Option | App default | Notes |
|---|---|---|
-enc-mode | 9 | Preset, 0 (best quality) to 9 (fastest). |
-tune | 1 | 0 = visual quality, 1 = PSNR/SSIM, 2 = VMAF. Use 0 unless you are tuning for a metric. |
-rc | 0 | 0 = constant QP, 1 = VBR, 2 = CBR. |
-q | 45 | QP, 0–63, used with -rc 0. Lower is higher quality. |
-tbr | 7000000 | Target bitrate in bits per second, for -rc 1/-rc 2. |
-intra-period | −2 (auto) | Keyframe interval in frames, up to 255. −1 means only the first frame is a keyframe. |
-lp, -ss | all cores, all sockets | Logical-processor count and CPU socket, for running several encodes side by side. |
FFmpeg
Section titled “FFmpeg”FFmpeg does not include SVT-VP9. The repository ships a patch (ffmpeg_plugin/master-0001-Add-ability-for-ffmpeg-to-run-svt-vp9.patch) that adds a libsvt_vp9 encoder when FFmpeg is configured with --enable-libsvtvp9. Its options are -preset (0–9, default 9), -tune (vq, ssim, vmaf; default vq), -rc (cqp, vbr, cbr), -qp (0–51, default 32), -level and -socket, plus FFmpeg’s -b:v and -g:
ffmpeg -i input.mkv -c:v libsvt_vp9 -preset 4 -tune vq -rc cqp -qp 32 -g 240 -c:a libopus output.webm