Skip to main content

Push input for live streams

Push inputs within Mistserver are streams that can be received through some communication method and only require a stream name as identifier. This is protocol-agnostic and allows you to choose the method through only a single set up. It's often assumed that MistIn— processes handle push inputs. Push inputs however are all handled by MistOut— processes as push inputs all involve a handshaking method & communication to another location and is then passed on to the MistInBuffer. For more information about the MistServer processes please review our binaries documentation.

A list of inputs that support push input is available here:

push inputs

To use push input you'll want to configure the source as:

push://[host][@passphrase]

Both the source host and the passphrase are optional. An incoming push will have to match at least one of the two to be allowed push access to the server, as well as the stream name.

The [host] may include a subnet mask, in CIDR notation (e.g. 192.168.0.0/16 will allow the complete 192.168.X.Y range to push). This even works with hostnames, but be aware the same CIDR mask will apply both to IPv4 and IPv6 if your hostname has records both address types!

The [passphrase] may include any character allowed in URLs, however some characters might not be valid due to the specifications of a protocol. Therefore we recommend avoiding the following characters: ! # $ & ' ( ) * + , / : ; = ? @ [ ]

Pushing inputs

Every protocol capable of being a push input within MistServer needs to be set up first. Make sure that the protocol is setup within the protocol configurations!

RTMP

If RTMP is activated within MistServer, you can push over the RTMP protocol using the following RTMP URL:

rtmp://hostname:port/passphrase/streamname

The passphrase may be filled with any value (including leaving it empty) if not used. The section "rtmp://hostname:port/passphrase" is often referred to in RTMP broadcasting software as the "application URL" while the streamname is usually referred to as either the stream name or the stream key in RTMP broadcasting software. If port 1935 is used it may be left out.

If you're familiar with RTMP you might wonder why we haven't included support for the application url. We explain our reasons here

RTSP

Pushing towards MistServer using RTSP is also possible, using the URL:

rtsp://hostname:port/streamname?pass=passphrase

The same guidelines and behaviour as for RTMP pushing apply. If port 554 is used it may be left out.

SRT

SRT behaves slightly different. It is impossible for SRT to use a passphrase setup through the push://@passphrase method. You will have to refer to the passphrase method within SRT itself. The general URL for SRT are:

srt://hostname:port?streamid=streamname

This method requires SRT to be set up in the protocol panel and accept incoming streams on an UDP port.

SRT can also be used in the traditional manner where you dedicate a specific port per SRT process, however this is incompatible with push input. SRT has several SRT specific parameters as well, these are all available within MistServer, please refer to SRT for more information.

DTSC

DTSC is MistServers proprietary protocol for efficient inter-server streaming. It supports everything MistServer can do feature & codecwise. To push DTSC to another MistServer instance the general URL should be used:

dtsc://hostname:port/streamname?pass=password

DTSC is the recommended method of sharing media data between MistServer instances.

Optional parameters

Using a push source means several optional supplemental settings become available. All push inputs can use the parameters of MistInBuffer

Wildcard push input

Wildcard push input lets you use the stream wildcard feature to create new push input live streams using the same settings on the fly. To use this configure a normal push input live stream as every push input live stream can be used for wildcard streams.

To create a wildcard stream push towards MistServer like normal, but add "+wildcard specifier" to the end of the stream name. The "wildcard specifier" can contain any character but the total length of the full stream name may not exceed 100 bytes.

Created wild card streams will show up on the stream window slightly indented and sorted under the parent stream.

Wildcard Example

The stream livestream is setup with source push:// accepting pushes from anywhere. Pushing an stream in using the stream name livestream+my_live_stream would be accepted by MistServer as a wildcard stream under livestream.

This would show up within MistServer as an unique stream called livestream+my_live_stream which inherits all settings from livestream.

Push setup examples

Some examples:

  • push:// will allow anyone to push to the given stream name, without any host or password checking.

  • push://127.0.0.1 will allow only 127.0.0.1 (localhost) to push to the given stream name.

  • push://@123abc will allow only users passing on the passphrase "123abc" to push to the given stream name.

  • push://127.0.0.1@123abc will allow 127.0.0.1 localhost without a passphrase, and all other hosts with the passphrase to push to the given stream name.