Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 5.21 KB

File metadata and controls

44 lines (35 loc) · 5.21 KB

rivet documentation

Reference pages. The top-level README is the quick tour; architecture.md is the start-here map of the codebase.

Understand the system

Page What
architecture.md Start here — the system map: the crates, the transcode lifecycle, the execution paths, where hooks fire, and how the front-ends fit.
decisions.md The why — the load-bearing design decisions (AV1-default output (+ H.264/H.265), no FFmpeg/hand-rolled FFI, GPU scheduling, streaming, HDR→SDR, web-ready defaults) and their rationale.
pipeline.md The end-to-end data flow — demux → decode-once pump → per-rung scale → multi-GPU lease engine → mux, with diagrams + a code map.

Code references (what + why, per crate)

Page What
codec-decode.md The codec crate, decode side: dispatch tiers, each GPU decoder, rivet's own software decoders (H.264 / HEVC, ProRes, VP8, VP9, MPEG-1 / MPEG-2, MPEG-4 Part 2), GPU detection, bitstream parsers, probe, HDR/SEI.
codec-encode.md The codec crate, encode side: encoder dispatch, each HW backend, quality tuning, colorspace, tonemapping, audio.
container.md The container crate: demuxers (streaming + per-format), Annex-B conversion, the AV1 MP4 muxer, CMAF/HLS, audio glue.
engine.md The rivet crate internals: the job engine, the reactive multi-GPU scheduler, progress, and the CLI/HTTP/IPC front-ends.

Use it

Page What
output-spec.md Configuring a transcode — the complete OutputSpec guide: every builder method, enum, and field, plus how to run a job.
filters/ Video filters — a page per filter (crop, pad, flip, rotate, grayscale, overlay, brightness/contrast/saturation/invert, the denoise family, parameterized nlmeans, and the temporal hqdn3d), the string + structured-object forms, and per-surface usage.
lossless-audio.md Lossless audio — FLAC and ALAC: why a web-first engine carries them, the settings, container rules and codec strings, channel order, browser support, and how they were verified.
audio-filters.md Audio filters — channelmap (remap / reorder / select channels), the channel + layout vocabulary, and how the input layout is resolved.
batch.md Batch manifest DSL — convert many files from one YAML/JSON file (rivet batch): the manifest shape, every key, glob inputs, output rules, and examples.
cli.md rivet CLI reference — every subcommand, flag, and environment variable, with examples.
hooks.md Hooks: a specific kind for each point of a job (source bytes, probe, decoded frames, encoder frames, stills, artifacts, completed, failed). Verdicts, blocking vs background, fail open or closed, per-job reports, the built-in digest and perceptual-fingerprint hooks, and the HTTP API's /v1/hooks.
hooks-cookbook.md Hook cookbook: sixteen worked recipes (size and container gates, source-material hashing, probe limits, blank-frame detection, your own hashing library, filter drift, background forwarding, output caps and manifests, metrics, rejected-job reports, policies, the HTTP API, unit-testing hooks), all compiled in examples/hook_cookbook.rs.
inference.md Running models on a job's pictures: the guide to inference on hooks. Which point and which frames, getting pixels into a model (planar_f32_letterboxed, normalisation, letterbox coordinates, HDR sources), choosing and running a runtime (ONNX Runtime and its CUDA / DirectML / OpenVINO providers, candle, tract, a model server), warm-up, session pools and CUDA graphs, annotations and gating verdicts, getting results out (report, live forwarding, HTTP API), measured performance, deployment (runtime libraries, containers, Intel compute runtime, Resizable BAR), testing, and a checklist.
hooks-yolo.md YOLO object detection with hooks: a YOLO detector (ONNX, through ONNX Runtime) as a decoded-frame and still hook. Getting a model and the runtime, every output layout (v5 to 26), what each picture goes through, reading the boxes from the report, rejecting jobs on what they show, GPUs, throughput, and other runtimes. The code is the examples/yolo crate.
api.md HTTP transcode API (rivet serve) — endpoints, request bodies, the job lifecycle, and the OpenAPI / Swagger / Redoc docs.
../bench/ Quality bench — the VMAF/SSIM harness: a reproducible corpus, a scorer that upscales each rung to source and scores a mid-clip window, and run-ladder.sh to go from a clip and any set of rivet transcode flags to a scored ladder. A ladder change is not a result until it has been scored.

Change it

Page What
testing.md The test gate — every crate × feature set a merge must run (all targets, doc tests included), how to read the result, which tests skip without an encoder, and the feature sets this box cannot build.