Skip to content

v0.0.1 — first working release

Latest

Choose a tag to compare

@tpmullan tpmullan released this 03 Jul 05:12

plex-nvenc-rpc v0.0.1

First working release. Real hardware decode (NVDEC) and encode (NVENC)
for Plex Transcoder on aarch64, via a process-boundary RPC bridge —
see the main README for why an in-process plugin doesn't work and
docs/history.md for the full build/debug history, including a
GPU-path quality/bitrate bug that was silently defeating the whole
point of this project until it was found and fixed for this release.

What's attached

  • libh264_nvenc_encoder.so — the Plex-facing plugin (musl build).
    Pinned to Plex FFmpeg build hash c75335c-a7cfb6836f3ed63280a7eb83
    (glue.c's EXPECTED_BUILD_HASH) — it will refuse to load against
    any other Plex build.
    Find your own build hash with:
    find "/config/Library/Application Support/Plex Media Server/Codecs" -maxdepth 1 -type d
    
    If yours differs, you need to rebuild from source (build-plugin.sh)
    against your own hash — it's a few-second recompile, no FFmpeg
    linkage involved.
  • nvenc-helper — the glibc worker process that does all real
    CUDA/NVENC/NVDEC work. Built against a specific NVIDIA driver/CUDA
    ABI generation (driver 595.x, ffnvcodec 11.1.5.3) — if it fails to
    load your NVIDIA libraries, rebuild with build-helper.sh on your
    own host instead of using this binary.
  • SHA256SUMS — checksums for both binaries above.

Fastest path to your own working build

Don't fight the pinned build hash / driver ABI by hand. Point Claude
Code (or another coding agent) at this repo and your own Plex
container and ask it to adapt EXPECTED_BUILD_HASH, rebuild both
binaries for your Plex version and driver, and wire up the bind mounts
from the README's "Installing" section. What took a full debugging
session to build and fix from scratch the first time should be roughly
a 20-minute job for an agent working from a known-good reference
implementation instead of a blank slate.

License

GPLv2 — see LICENSE. Source for these exact binaries is this repo at
tag v0.0.1. Not affiliated with, endorsed by, or supported by Plex
Inc.