Expand description
Transcoding & adaptive-bitrate contracts.
The actual codec work needs native encoders (FFmpeg/GStreamer, NVENC/QSV via
HwAccelBackend) and is intentionally not shipped
here. This module defines the seams: a Transcoder turns one input frame
into zero or more output frames, and a RenditionSpec describes one rung
of an ABR ladder. drive_abr_ladder drives a Transcoder from a live
stream and republishes each output rendition to its layer-key stream, so the
WebRTC egress’s per-viewer layer selection treats transcoded rungs exactly
like simulcast layers.
Structs§
- Rendition
Spec - One target rendition in an adaptive-bitrate ladder.
Constants§
- RENDITION_
TRACK_ BASE - The
track_idaTranscoderstamps on the first rendition’s output frames; rendition n (itsrenditions()[n]) usesRENDITION_TRACK_BASE + n. This is the contractdrive_abr_ladderrelies on to route each output to its rung stream.
Traits§
- Transcoder
- Transforms frames: decode/scale/encode, packetize, or fan into renditions.
Functions§
- drive_
abr_ ladder - Drive an adaptive-bitrate ladder: subscribe to the
basestream, run every frame throughtranscoder, and republish each rendition to its layer stream (base.layer(&spec.name)) so the WebRTC egress’s per-viewer layer selection treats the transcoded rungs exactly like simulcast layers.