{
  "schemaVersion": 1,
  "contentVersion": "ca42e61ede0a24f789d7287a0001244ad22f4abf",
  "id": "docs/tools/software-encoders/kvazaar",
  "collection": "docs",
  "title": "Kvazaar",
  "description": "Kvazaar is an open-source, BSD-licensed HEVC encoder from Tampere University's Ultra Video Group, used mainly in research and where a permissive licence matters.",
  "canonicalUrl": "https://encode.wiki/tools/software-encoders/kvazaar/",
  "apiUrl": "https://encode.wiki/api/v1/documents/docs/tools/software-encoders/kvazaar.json",
  "markdownUrl": "https://encode.wiki/api/v1/markdown/docs/tools/software-encoders/kvazaar.md",
  "status": "current",
  "tags": [
    "migrated"
  ],
  "license": "CC BY-SA 4.0",
  "dates": {
    "lastVerified": "2026-10-08T00:00:00.000Z"
  },
  "authors": [],
  "sources": [
    {
      "title": "Kvazaar v2.3.2 release",
      "url": "https://github.com/ultravideo/kvazaar/releases/tag/v2.3.2",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "Kvazaar v2.3.2 README (options, presets, build instructions)",
      "url": "https://github.com/ultravideo/kvazaar/blob/v2.3.2/README.md",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "Kvazaar v2.3.2 bit-depth definition",
      "url": "https://github.com/ultravideo/kvazaar/blob/v2.3.2/src/kvazaar.h",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "Ultra Video Group, Kvazaar",
      "url": "https://ultravideo.fi/kvazaar.html",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "FFmpeg 9.0.2 libkvazaar wrapper",
      "url": "https://github.com/FFmpeg/FFmpeg/blob/n9.0.2/libavcodec/libkvazaar.c",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    }
  ],
  "provenance": {
    "originUrl": "https://github.com/av1-community-contributors/codec-wiki/blob/37c3317fd058b23c71a87679bed5619a98f77752/docs/encoders/Kvazaar.mdx",
    "originCommit": "37c3317fd058b23c71a87679bed5619a98f77752",
    "migratedAt": "2026-08-21T00:00:00.000Z",
    "modified": true,
    "originPath": "docs/encoders/Kvazaar.mdx"
  },
  "headings": [
    {
      "depth": 2,
      "text": "Get Kvazaar",
      "anchor": "get-kvazaar"
    },
    {
      "depth": 2,
      "text": "Encode with Kvazaar",
      "anchor": "encode-with-kvazaar"
    },
    {
      "depth": 2,
      "text": "Related pages",
      "anchor": "related-pages"
    }
  ],
  "sections": [
    {
      "id": "_preamble",
      "title": "Page introduction",
      "depth": 0,
      "canonicalUrl": "https://encode.wiki/tools/software-encoders/kvazaar/",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/_preamble.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/_preamble.md",
      "checksum": "eae1117ed7fbfb238dedb838e18ebea4dcb72dbf18808e7c6957e6087b87aeff",
      "bytes": 1016
    },
    {
      "id": "get-kvazaar",
      "title": "Get Kvazaar",
      "depth": 2,
      "anchor": "get-kvazaar",
      "canonicalUrl": "https://encode.wiki/tools/software-encoders/kvazaar/#get-kvazaar",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/get-kvazaar.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/get-kvazaar.md",
      "checksum": "abbcb4e9c2ef46bd2fad00cff64acbdcdd86617097966ad90524bbd94f494047",
      "bytes": 818
    },
    {
      "id": "encode-with-kvazaar",
      "title": "Encode with Kvazaar",
      "depth": 2,
      "anchor": "encode-with-kvazaar",
      "canonicalUrl": "https://encode.wiki/tools/software-encoders/kvazaar/#encode-with-kvazaar",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/encode-with-kvazaar.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/encode-with-kvazaar.md",
      "checksum": "b423add6c0bde527c79d1912e3939ac30af8035050cd0ec98a4387419abfa4b6",
      "bytes": 1410
    },
    {
      "id": "related-pages",
      "title": "Related pages",
      "depth": 2,
      "anchor": "related-pages",
      "canonicalUrl": "https://encode.wiki/tools/software-encoders/kvazaar/#related-pages",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/related-pages.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/software-encoders/kvazaar/related-pages.md",
      "checksum": "874f243f7d8dcad7af0779c3fa995a7a0267ac30fa78650f8af9e7386cfca20e",
      "bytes": 179
    }
  ],
  "outboundReferences": [
    "/codecs/video/hevc/",
    "/tools/software-encoders/uvg266/",
    "/tools/software-encoders/x265/",
    "/tools/utilities/ffmpeg/",
    "https://github.com/ultravideo/kvazaar",
    "https://github.com/ultravideo/kvazaar/blob/v2.3.2/README.md#compiling-kvazaar",
    "https://github.com/ultravideo/kvazaar/releases/tag/v2.3.2",
    "https://ultravideo.fi/kvazaar.html"
  ],
  "checksum": "0f9e040c84d235a5d2d19dd239428f0f0382b345c64d649f79f0e968ad3e16cc",
  "contentFormat": "markdown",
  "markdown": "> **Repository:** [ultravideo/kvazaar](https://github.com/ultravideo/kvazaar). An open-source HEVC encoder. Latest release: [v2.3.2](https://github.com/ultravideo/kvazaar/releases/tag/v2.3.2), Sep 17, 2025. Last commit: Sep 30, 2026. License: BSD-3-Clause. Stars: 966.\n\nKvazaar is an open-source [H.265 / HEVC](/codecs/video/hevc/) encoder written in C by the [Ultra Video Group](https://ultravideo.fi/kvazaar.html) at Tampere University, Finland. It is an academic project, licensed under the 3-clause BSD licence, and is still maintained: the latest release is v2.3.2 (September 2025), with ongoing commits on master. The same group's VVC encoder, [uvg266](/tools/software-encoders/uvg266/), is based on Kvazaar.\n\nFor quality-focused HEVC encoding most people use [x265](/tools/software-encoders/x265/), which has a more mature rate control and psychovisual tuning. Kvazaar is mainly of interest for research, for its fast presets and low-delay GOP structures, and when a permissive licence matters (x265 is GPL).\n\n## Get Kvazaar\n\nArch Linux packages it as `kvazaar`; other platforms usually build from source with CMake or Autotools as described in the [README](https://github.com/ultravideo/kvazaar/blob/v2.3.2/README.md#compiling-kvazaar). On MinGW/MSYS2, build with Clang (`CC=clang ./configure`): with GCC the AVX2 optimizations are disabled because of a long-standing GCC issue, and performance suffers badly.\n\nThe sample bit depth is fixed at compile time and defaults to 8. For 10-bit, build with `-DKVZ_BIT_DEPTH=10`:\n\n```sh\ncmake -S kvazaar -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=\"-DKVZ_BIT_DEPTH=10\"\ncmake --build build\n```\n\nFFmpeg's `libkvazaar` wrapper accepts only 8-bit `yuv420p`, and many FFmpeg builds do not include it. Extra options go through `-kvazaar-params` as a comma-separated `key=value` list.\n\n## Encode with Kvazaar\n\n```sh\nkvazaar -i input.y4m --preset slow --qp 24 -o output.hevc\nffmpeg -i input.mkv -f yuv4mpegpipe - | kvazaar -i - --input-file-format y4m --preset slow --qp 24 -o output.hevc\n```\n\nKvazaar detects Y4M from the file extension; for a pipe, give `--input-file-format y4m`, or `--input-res` and `--input-fps` for raw YUV. It does not take the bit depth from the Y4M header, so a 10-bit build needs `--input-bitdepth 10` for 10-bit input. The output is a raw HEVC stream to mux afterwards.\n\n| Option | Default | Notes |\n| --- | --- | --- |\n| `--preset` | `medium` | `ultrafast` to `placebo`, same names as x264/x265. The README lists what each preset sets. |\n| `--qp` | `22` | Base QP. There is no CRF mode; B-frames in the GOP pyramid get higher QPs automatically. |\n| `--bitrate` | `0` (off) | Target bitrate in **bits** per second, not kbit/s. Uses lambda-domain rate control by default. |\n| `--vaq` | Off | Variance-based adaptive quantization, strength 1–20; upstream recommends 5. |\n| `--gop` | `16` (8 at `fast` and faster) | GOP structure: 8 or 16 for a B-frame pyramid, `0` to disable, or `lp-…` for low-delay P/B GOPs. |\n| `--period` | `64` | Intra period in frames (0 = only the first frame). |\n| `--open-gop` | On | Use `--no-open-gop` for streams that will be cut at keyframes. |\n| `--threads` / `--owf` | auto | Worker threads and number of frames encoded in parallel. |\n\n## Related pages\n\n- [H.265 / HEVC](/codecs/video/hevc/)\n- [x265](/tools/software-encoders/x265/)\n- [uvg266](/tools/software-encoders/uvg266/)\n- [FFmpeg](/tools/utilities/ffmpeg/)\n"
}
