View Source Membrane.HTTPAdaptiveStream.Manifest.Track.Config (Membrane HTTP Adaptive Stream plugin v0.18.3)
Track configuration.
Summary
Types
Track configuration consists of the following fields:
id
- identifies the track, will be serialized and attached to names of manifests, headers and segmentstrack_name
- the name of the track, determines how manifest files will be namedcontent_type
- either audio or videoheader_extension
- extension of the header file (for example .mp4 for CMAF)segment_extension
- extension of the segment files (for example .m4s for CMAF)segment_duration
- expected duration of segments.partial_segment_duration
- expected duration of each partial segment, nil if not partial segments are expectedheader_naming_fun
- a function that generates consequent header names for a given tracksegment_naming_fun
- a function that generates consequent segment names for a given tracktarget_window_duration
- track manifest duration is kept above that time, while the oldest segmentsare removed whenever possible
persist?
- determines whether the entire track contents should be available after the streaming finishesmode
- track's mode that dictates type of metadata inserted into playlist's manifestencoding
- keyword of strings representing encoding of content_typeresolution
- resolution of video streammax_framerate
- maximal framerate of video stream
@type t() :: %Membrane.HTTPAdaptiveStream.Manifest.Track.Config{ content_type: :audio | :video, encoding: [encoding_t()] | [], header_extension: String.t(), header_naming_fun: (Membrane.HTTPAdaptiveStream.Manifest.Track.t(), counter :: non_neg_integer() -> String.t()), id: Membrane.HTTPAdaptiveStream.Manifest.Track.id_t(), max_framerate: float() | nil, mode: :vod | :live, partial_naming_fun: (t(), Keyword.t() -> String.t()), partial_segment_duration: Membrane.Time.t() | nil, persist?: boolean(), resolution: {non_neg_integer(), non_neg_integer()} | nil, segment_duration: Membrane.Time.t(), segment_extension: String.t(), segment_naming_fun: (Membrane.HTTPAdaptiveStream.Manifest.Track.t() -> String.t()), target_window_duration: Membrane.Time.t() | :infinity, track_name: String.t() }