HLS / HTTP, RTSP and RTMP

The transports in this group work on the node-as-client scheme: the connection is always established by the node itself, not by the far side. They therefore have neither a listening port nor a mode choice — instead of an address and a port, a full URL is specified. Reception into MPEG-TS and the limitations of each source are described in Other inputs and outputs and RTMP publishing and reception.

HLS / HTTP

The input fetches MPEG-TS over HTTP: it either parses an HLS playlist and downloads the segments, or reads a continuous stream from the server response (HLS / HTTP input). Available only to SPTS streams; there is no output of this type — HLS delivery is configured on the OTT tab of the stream itself (OTT and DVR).

Input

Field

Purpose

Values

URI

The address of the playlist or the stream. Only the http:// and https:// schemes are accepted; an address with any other scheme will not be saved by the window. A required field.

http://… or https://…

Login, Password

The HTTP credentials. The node does not send them right away: an ordinary request is made first, and only on a 401 response is the request repeated with the authorization scheme the server named. The credentials are attached both to the playlist and to every segment. The pair works as a whole: a login with an empty password is not used.

empty by default

Mode

How to treat the server response. Auto-detect — by the content type: a playlist type means HLS parsing, any other means reading a continuous MPEG-TS. HLS — always parse as a playlist (for servers that serve a playlist with an incorrect content type). Plain HTTP / MPEG-TS — always read the stream without parsing.

Auto-detect (default), HLS, Plain HTTP / MPEG-TS

Client timeout (s)

The timeout of a single network operation — connecting, sending the request and reading the response — both for the playlist and for every segment. A smaller value speeds up the switch to the backup input, a larger one is more tolerant of a distant or slow source.

from 1, default 10

Adaptive stream id

Which variant to take from the master playlist — by the order of listing in the playlist, counting from one, not by bitrate. A value greater than the number of variants leads to the last one being chosen. For an ordinary (non-master) playlist the field has no effect.

from 1, default 1

Chunks preloading

How many segments are downloaded at the same time. One means strictly sequential downloading; a larger value hides the latency of the link to the source and helps to catch up, but opens as many parallel connections.

1–10, default 1

User-Agent

The value of the User-Agent header in all requests. An empty field — the header is not sent at all.

empty by default

Cookies

A ready-made value of the Cookie header, in full, exactly as the server expects it. There is no cookie exchange: what the server sets, the node neither remembers nor returns.

empty by default

Disable URL encode

Send the path and the query parameters undecoded. Needed for servers that handle percent-encoding in playlist links incorrectly; for a correct server, enabling it may on the contrary corrupt the link.

disabled by default

Trace

Detailed logging: every request and its result, redirects, the body of the playlist, the queue and the size of the segments. A diagnostic setting — in normal operation it is off.

disabled by default

Reception details worth knowing when diagnosing: the segments must be MPEG-TS (a playlist with fMP4/CMAF segments is not accepted); the node follows no more than three redirects in a row; the server certificate is not verified with https.

RTSP

The input opens an RTSP session, reads the elementary streams and remultiplexes them into MPEG-TS (RTSP input). For SPTS streams only; there is no output of this type.

Input

Field

Purpose

Values

URI (rtsp://…)

The full address of the RTSP session. A required field. Unlike the HLS input, the scheme is not checked here when saving — an error in it will come to light when the input starts.

rtsp://…

Login, Password

The RTSP credentials. The node substitutes them into the session address, so from there on the authorization scheme required by the camera applies. The login is used with an empty password too. If the address already contains credentials, the values of these fields replace them.

empty by default

Transport

The RTP transport inside the session. UDP — separate datagrams: the lowest latency, sensitivity to losses. TCP — RTP inside the control connection: it passes NAT and firewalls. HTTP — an RTSP tunnel over HTTP for passing through a proxy.

UDP (default), TCP, HTTP

Client timeout (s)

The time limit of a single network operation of the session. Once it expires, a silent source is considered failed, and the stream switches over or reconnects.

from 1, default 10

User-Agent, Cookies

The values of the request fields of the same names — for devices that answer only known clients, and for sessions bound to a cookie.

empty by default

Trace

Logging of the session state changes to the stream log.

disabled by default

RTMP

The node works with RTMP and RTMPS only as a client: the input fetches the stream by URL, the output publishes the stream to an external ingest point. Accepting incoming publications is not supported (RTMP publishing and reception). For SPTS streams only.

Input

Field

Purpose

Values

URL (rtmp(s)://…)

The address of the source. A required field.

rtmp://… or rtmps://…

Bind interface

The local interface of the outgoing connection; chosen from the list of the node’s interfaces.

any by default

Client timeout (s)

The connect and read timeout.

1–120, default 10

Verify TLS certificate

For rtmps:// — verify the server certificate. Disabled by default, so a connection is established even with a self-signed certificate.

disabled by default

Trace

Logging of the RTMP connection state changes to the stream log.

disabled by default

Output

The same fields as the input, plus:

Field

Purpose

Values

Allow HEVC (Enhanced RTMP)

Allow publishing HEVC through the Enhanced RTMP extension. Disabling it does not convert the stream to H.264: only an H.264 source is published, while an HEVC source is not published at all when the setting is off — the reason is visible in the output statistics.

enabled by default

One program is published: one video and no more than one AAC audio track. Selecting the tracks manually is not required — the output itself takes the first suitable video and the first AAC track, discards the rest and lists what was discarded in the statistics. Publishing fails only when there is no suitable video at all. If the stream itself needs to be limited, PID filters are set on the MPEG-TS PID tab of the input window and apply to the whole stream with all its outputs (MPEG-TS filtering).