Skip to content
Class

HlsOutputFormat ​

HTTP Live Streaming (HLS) output format. HLS media is represented by a set of .m3u8 playlist files and media segment files, meaning this format writes out multiple files, requiring the use of a pathed Output (OutputOptions.target must be a PathedTarget).

This output format creates the following files:

  • A master playlist .m3u8 file, containing the list of available playlists. A master playlist is always emitted, written to the root path.
  • One .m3u8 file for each playlist, each containing a list of media segments.
  • Many media segments, containing the actual media data.

To emit media playlists that use the #EXT-X-PROGRAM-DATE-TIME tag to map segment timestamps to real-world time, set BaseTrackMetadata.isRelativeToUnixEpoch to true for all tracks.

Extends: OutputFormat

Constructor ​

ts
constructor(
	options: HlsOutputFormatOptions,
): HlsOutputFormat;

Creates a new HlsOutputFormat configured with the specified options.

See HlsOutputFormatOptions.

Properties ​

fileExtension ​

ts
get fileExtension(): string;

The file extension used by this output format, beginning with a dot.

mimeType ​

ts
get mimeType(): string;

The base MIME type of the output format.

negativeTimestampSupport ​

ts
get negativeTimestampSupport(): 'full' | 'none' | 'prefer-non-negative' | null;

The degree to which this output format supports writing media data with negative timestamps.

  • 'full' - Negative timestamps are fully supported.
  • 'prefer-non-negative' - Negative timestamps are technically supported, but their use is discouraged.
  • 'none' - Negative timestamps are not supported.
  • null - Not applicable since the container doesn't support timestamped media at all.

supportsTimestampedMediaData ​

ts
get supportsTimestampedMediaData(): boolean;

Whether this output format's tracks store timestamped media data. When true, the timestamps of added packets will be respected, allowing things like gaps in media data or non-zero start times. When false, the format's media data implicitly starts at zero and follows an implicit sequential timing from there, using the intrinsic durations of the media data.

supportsVideoTransformationMetadata ​

ts
get supportsVideoTransformationMetadata(): boolean;

Whether this output format supports video rotation and flip metadata.

Methods ​

getSupportedAudioCodecs() ​

ts
getSupportedAudioCodecs(): AudioCodec[];

Returns a list of audio codecs that this output format can contain.

See AudioCodec.

getSupportedCodecs() ​

ts
getSupportedCodecs(): MediaCodec[];

Returns a list of media codecs that this output format can contain.

See MediaCodec.

getSupportedSubtitleCodecs() ​

ts
getSupportedSubtitleCodecs(): SubtitleCodec[];

Returns a list of subtitle codecs that this output format can contain.

See SubtitleCodec.

getSupportedTrackCounts() ​

ts
getSupportedTrackCounts(): TrackCountLimits;

Returns the number of tracks that this output format supports.

See TrackCountLimits.

getSupportedVideoCodecs() ​

ts
getSupportedVideoCodecs(): VideoCodec[];

Returns a list of video codecs that this output format can contain.

See VideoCodec.

Deprecated ​

supportsVideoRotationMetadata ​

Deprecated. Use OutputFormat.supportsVideoTransformationMetadata instead.

ts
get supportsVideoRotationMetadata(): boolean;

Whether this output format supports video rotation metadata.

Released under the Mozilla Public License 2.0.