{
  "schemaVersion": 1,
  "contentVersion": "ca42e61ede0a24f789d7287a0001244ad22f4abf",
  "id": "docs/tools/utilities/distributed-encode",
  "collection": "docs",
  "title": "DEAD / distributed-encode",
  "description": "DEAD (distributed-encode) is an alpha-stage Python tool that spreads Av1an chunk encoding across several machines through a Redis job queue.",
  "canonicalUrl": "https://encode.wiki/tools/utilities/distributed-encode/",
  "apiUrl": "https://encode.wiki/api/v1/documents/docs/tools/utilities/distributed-encode.json",
  "markdownUrl": "https://encode.wiki/api/v1/markdown/docs/tools/utilities/distributed-encode.md",
  "status": "current",
  "tags": [
    "distributed-encoding",
    "av1an",
    "redis",
    "experimental"
  ],
  "license": "CC BY-SA 4.0",
  "dates": {
    "lastVerified": "2026-10-08T00:00:00.000Z"
  },
  "authors": [],
  "sources": [
    {
      "title": "distributed-encode repository and README",
      "url": "https://codeberg.org/Kosaka/distributed-encode",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "distributed-encode quick start",
      "url": "https://codeberg.org/Kosaka/distributed-encode/src/branch/master/QUICKSTART.md",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "Av1an-verbosity fork required by DEAD",
      "url": "https://github.com/KosakaIsMe/Av1an-verbosity",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    }
  ],
  "headings": [
    {
      "depth": 2,
      "text": "How it works",
      "anchor": "how-it-works"
    },
    {
      "depth": 2,
      "text": "Usage",
      "anchor": "usage"
    }
  ],
  "sections": [
    {
      "id": "_preamble",
      "title": "Page introduction",
      "depth": 0,
      "canonicalUrl": "https://encode.wiki/tools/utilities/distributed-encode/",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/utilities/distributed-encode/_preamble.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/utilities/distributed-encode/_preamble.md",
      "checksum": "c3190edb878fc35f02eeb69bf3bb761133db42236734d5fe52229015c8c47e63",
      "bytes": 699
    },
    {
      "id": "how-it-works",
      "title": "How it works",
      "depth": 2,
      "anchor": "how-it-works",
      "canonicalUrl": "https://encode.wiki/tools/utilities/distributed-encode/#how-it-works",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/utilities/distributed-encode/how-it-works.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/utilities/distributed-encode/how-it-works.md",
      "checksum": "1921aca4c510c15248f20081c8bc88e5bd313dfa0f86cbb59a435339999248ff",
      "bytes": 1006
    },
    {
      "id": "usage",
      "title": "Usage",
      "depth": 2,
      "anchor": "usage",
      "canonicalUrl": "https://encode.wiki/tools/utilities/distributed-encode/#usage",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/utilities/distributed-encode/usage.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/utilities/distributed-encode/usage.md",
      "checksum": "784386919c8e2164c33d12bf9de40244fcc951d14443506175ad9bd3111776c1",
      "bytes": 717
    }
  ],
  "outboundReferences": [
    "/tools/utilities/av1an/",
    "/tools/utilities/mkvtoolnix/",
    "https://codeberg.org/Kosaka/distributed-encode",
    "https://github.com/KosakaIsMe/Av1an-verbosity"
  ],
  "checksum": "5c8dc25535d4c93c920d6c0d4e4fc4d3a81ca9d2c61db172c0f0381dad027168",
  "contentFormat": "markdown",
  "markdown": "> **Repository:** [Kosaka/distributed-encode](https://codeberg.org/Kosaka/distributed-encode) (No commits since May 2025). Poorly coded distributed encoding using av1an, python-rq, Redis, and optionally S3. Last commit: May 30, 2025. Stars: 3.\n\nDEAD (\"Distributed Encoding AV1, Dude!\"), the `distributed-encode` project by Kosaka, splits a video into scenes the way [Av1an](/tools/utilities/av1an/) does, then hands the chunks to Av1an workers on several machines. It is for people with more than one encoding box who want them to work on the same file.\n\n> **Caution — Alpha and dormant.**\n>\n> The author describes it as an early alpha with minimal documentation. The last commit was in May 2025.\n## How it works\n\nA client process detects scenes with Av1an and puts groups of scenes into a Redis queue as jobs (via python-rq). Worker processes on each machine take jobs, encode them with Av1an, and return the results, either through a shared network folder that every machine mounts at the same path or through an S3-compatible bucket. The client then joins the chunks with mkvmerge.\n\nRequirements:\n\n- Python 3.12 or newer and a reachable Redis server.\n- On every worker, a patched Av1an from the author's [Av1an-verbosity](https://github.com/KosakaIsMe/Av1an-verbosity) fork, which reports per-chunk progress; stock Av1an does not work.\n- Run it from the repository (or a distribution package; an Arch PKGBUILD is included), not from a virtual environment or pipx, because Av1an breaks inside one.\n\nAudio is dropped, so mux it back afterwards with [mkvmerge](/tools/utilities/mkvtoolnix/). A VapourSynth script can be used for filtering with `--vs-input` (and `--vs-scene-input` for scene detection).\n\n## Usage\n\nWith a shared folder mounted at `/mnt/dead` on all machines, start a worker on each encoding machine and then the client, from the root of the repository (an installed package provides the same commands as `dead`):\n\n```sh\npython src/distributed_encode.py server --name worker1 --basedir /mnt/dead --output-dir worker1_output\npython src/distributed_encode.py client --input /mnt/dead/file.mkv --av1an-options \"-e svt-av1\" --encoder-options \"--preset 4 --crf 30\" --basedir /mnt/dead --output-dir client_output\n```\n\nRedis defaults to `127.0.0.1:6379`; point remote machines at it with `--host`, `--port` and `--password`. The `--s3-*` options replace the shared folder. Only expose Redis on a trusted network.\n"
}
