HlsPushDestinationSettings interface

Configuration for pushing a segmented media stream directly to a generic http server

Signature:

export interface HlsPushDestinationSettings

Properties

Property Type Description

addCmsdHeaders?

boolean

(Optional) Add Common Media Server Data headers to the POST requests

customHeaders?

{ name: string; value: string; }[]

(Optional) Custom headers to add to the POST requests

defaultSegmentCount?

number

(Optional) In the absence of a HLS_SKIP query parameter, how many segments should be served in a playlist this effectively controls how far back in time a player can seek from first load (as long as the data exists)

deleteExpiredSegments?

boolean

(Optional) Send HTTP DELETE for segments that have expired past the retention period.

deltaPlaylist?

string

(Optional) If specified: generate a Delta Playlist update with this playlist name (and appropriate CAN-SKIP-UNTIL tags in the main playlist). Not supported with client-side playlist rewriting.

holdBackSeconds?

number

(Optional) Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play this should take into account the end to end latency from source capture, to the segment and playlist being published

host

string

The hostname of the web server being pushed to. This will be used to re-resolve the IP address on failures

id

DestinationId

A unique identifier for this destination

This can be used for supplying updates to configuration to this destination specifically see: UpdateCredentials

namingConvention?

"standard" | "cmaf-long" | "cmaf-ism" | "cmaf-short"

(Optional) Segment and init segment path naming convention. All CMAF conventions use HTTP PUT with CMAF file extensions (.cmfv for video, .cmfa for audio, .cmft for text) and do not push HLS/DASH playlists — the receiving origin generates those.

- "standard" — Norsk default. Uses HTTP POST with .mp4/.m4s extensions and full path routing: /{sourceName}/{programNumber}/{streamId}/{renditionName}/{segmentNumber}.mp4. Playlists (.m3u8/.mpd) are also pushed. Use this with Norsk’s own HTTP server or CDNs that expect HLS push.

- "cmaf-long" — Each track gets its own URL path prefix. Init and media segments have distinct URLs: - Init: {prefix}/{representationId}/init.cmfv - Media: {prefix}/{representationId}/{segmentNumber}.cmfv Compatible with DASH-IF Live Media Ingest Interface 1 receivers.

- "cmaf-ism" — ISM/Smooth Streaming style. Uses Streams() wrapper with sub-paths for init and each segment: - Init: {prefix}/Streams({name}.cmfv)/InitializationSegment - Media: {prefix}/Streams({name}.cmfv)/Segment({number}) Compatible with Unified Streaming Origin and similar ISM-based origins.

- "cmaf-short" — DASH-IF short form. All segments (including init) for a track are PUT to the same URL — the receiver identifies segments by parsing the MP4 boxes: - Init + Media: {prefix}/Streams({name}.cmfv) Compatible with DASH-IF Live Media Ingest Interface 1 receivers that support the short Streams() URL form.

partHoldBackSeconds?

number

(Optional) Server control directive, informs the client how far back in the stream (in seconds) it should attempt to play when using the lower latency parts this should take into account the end to end latency from source capture, to the part and playlist being published

pathPrefix

string

the path under which segments and playlists will be pushed to

port

number

the port of the web server being pushed to.

retentionPeriodSeconds

number

Informs the playlist generation how long segments will be retained for on the remote server in order to generate an accurate playlist

sessionId?

string

(Optional) Optionally supply a string that will be inserted into the path structure for segments published in this stream

This is useful for stream restarts or republishing when duplicate segment IDs would be generated causing problems with cacheing directives

supportsGzip?

boolean

(Optional) Whether the server supports gzip request compression for PUT/POST requests

tlsTransport?

boolean

(Optional) Whether to use TLS or plain TCP transport, by default TLS used if port is 443

type

"generic"