#[non_exhaustive]pub struct Config {
pub rungs: Vec<Rung>,
pub source: Option<PathRelativeOwned>,
pub encoder: Kind,
pub decoder: Kind,
}Expand description
Transcoder configuration for run.
#[non_exhaustive]: build via Config::default() and set fields, so future
knobs don’t break callers.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.rungs: Vec<Rung>Candidate output renditions. Only rungs strictly below the source survive: a rung is dropped when its height exceeds the source, when its bitrate is not below the source bitrate (when known), or when it matches the source height without a known source bitrate to undercut. A 480p source is never transcoded up to 720p.
source: Option<PathRelativeOwned>Where the source broadcast lives relative to the output broadcast, e.g.
".." when the output is published at <source>/transcode.hang. When
set, the derivative catalog references the source renditions (all video
and audio) through this path so players fetch them from the source
directly; the transcoder never proxies or subscribes them. None omits
them from the derivative catalog.
encoder: KindWhich video encoder implementation encodes the rungs. The default prefers hardware (NVENC on Linux, VideoToolbox on macOS, Media Foundation on Windows) and falls back to openh264.
decoder: KindWhich video decoder implementation decodes the source. The default prefers hardware and falls back to openh264 (H.264 only; H.265 sources need a hardware decoder).