Skip to content

Video Playback

Protocols for video playback

Flussonic Media Server can play video streams via various protocols.

On this page you will find:

  • the URL addresses that you should use in players in order to play video via different protocols

  • links to sections that provide more information about configuring the playback via each certain protocol

  • how to allow and prohibit certain output protocols.

Playback options are found in the Flussonic's web interface in the Output in stream settings.

URLs for playing video

embed.html

URL: http://FLUSSONIC-IP/STREAMNAME/embed.html

Flussonic Media Server has a special page embed.html which is intended for video insertion to a website or viewing of video via a browser. The page automatically detects a browser version to select a supported protocol. For the majority of devices for today — it's HLS. Read more in the article «Video insertion on the website (embed.html)».

HLS

URL for the player: http://FLUSSONIC-IP/STREAMNAME/index.m3u8

Read more in «HLS playback». Use (embed.html)or any third-party player to insert HLS stream on your website. For example, hls.js or clappr.

HLS for multi-language streams, viewing using an STB or VLC

URL for the player: http://FLUSSONIC-IP/STREAMNAME/video.m3u8

Read more in «Multilanguage HLS».

HTML5 (MSE-LD)

The stream is available at the URL: http://FLUSSONIC-IP/STREAMNAME/embed.html?realtime=true

Read more in «HTML5 (MSE) low latency playback».

DASH

The stream is available at the URL: http://FLUSSONIC-IP/STREAMNAME/index.mpd

Also Flussonic Media Server has special playlist "rewind-N.mpd" with a wide sliding window that allows to rewind and pause DASH streams for many hours. http://flussonic-ip/STREAMNAME/rewind-7200.mpd

Read more in «DASH playback».

MSS

The stream is available at the URL: http://FLUSSONIC-IP/STREAMNAME.isml/manifest

Playing individual tracks, selecting subtitle tracks

If a stream has several audio, video, and subtitles tracks, you can specify which tracks should be delivered. For this, specify track numbers by adding ?filter.tracks= to the stream's URL.

  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=v1a1 — select the first audio and second video tracks.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=a1 — select audio only.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=v1 — select video only.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=a1t2 — select the first audio and second subtitle tracks.
  • http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=v1t1t2t3 — select the first video track and three tracks with subtitles.

Selecting tracks is useful to play video on client devices that do not support, for example, the multi-language MSS manifest.

How to play an archive via MSS is described in Accessing DVR archives

HTTP MPEG-TS

The stream is available at the URL: http://FLUSSONIC-IP/STREAMNAME/mpegts

HDS

URL for the player: http://FLUSSONIC-IP/STREAMNAME/manifest.f4m

RTMP

The stream is available at the URL: rtmp://FLUSSONIC-IP/static/STREAMNAME

RTSP

The stream is available at the URL: rtsp://FLUSSONIC-IP/STREAMNAME

If a stream has several audio and video tracks, Flussonic uses the first track by default (a1v1).

You can specfy which tracks Flussonic must deliver. For this, specify track numbers in the tracks parameter of the stream's URL.

Examples:

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=a2v1

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=a2v1&from=1 — DVR.

  • rtsp://FLUSSONIC-IP/vod/file?tracks=a2v1 — VOD.

  • rtsp://FLUSSONIC-IP/STREAMNAME2 = rtsp://FLUSSONIC-IP/STREAMNAME1?tracks=v1a1

Selecting only one track:

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=a1 — select an audio track.

  • rtsp://FLUSSONIC-IP/STREAMNAME?tracks=v1 — select a video track.

If you specify more than two tracks or make a syntax error, the default tracks will be used (a1v1).

WebRTC

The stream is available at the URL:

  • ws://FLUSSONIC-IP/STREAMNAME/webrtc

  • wss://host/STREAMNAME/webrtc?transport=tcp — using TCP for delivery of a WebRTC stream.

Read more about our WebRTC player and how to organize playback in «WebRTC Playback».

SHOUTcast

The stream is available at the URL: http://FLUSSONIC-IP/STREAMNAME/shoutcast

Flussonic Media Server can deliver SHOUTcast, ICEcast radio stream.

SRT

Flussonic supports playing SRT streams.

SRT protocol offers three modes: Caller, Listener, and Rendezvous. Flussonic acts as a Listener during a playback. It waits for a connection and, as soon as it is established, it starts to communicate with the Caller.

To play an SRT stream you should define a port first. It can be either global or a stream port.

Global port is a port defined outside of stream settings. It acts as a main listening port for SRT.

Example:


srt 9998;
stream example_stream {
  url fake://fake;
}

or with the help of srt_play:


srt_play {
  port 9998;
}
stream example_stream {
  url fake://fake;
}

Stream port is a port specified within stream settings.

Example:



stream example_stream {
  url fake://fake;
  srt_play {
    port 9998;
  }
}

The main difference between the two is that if global port is enabled, you should specify a stream name in streamid to play it, whereas when stream port is enabled, it is not required. We will discuss it in further detail soon.

Let's see how to configure a playback.

Global port

URL for an SRT stream playback over global port looks as follows:

Warning

Stream name in streamid is required.

  • srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::r=STREAM_NAME,m=request

where:

  • FLUSSONIC-IP is an IP address of your Flussonic server.

  • SRT_PORT is an SRT port, enabled for playback.

  • r=STREAM_NAME is the name of a stream to play.

You can manage the playback by setting the parameters within srt_play option. See full list of parameters here.

Let's consider an example:


srt_play {
  port 9998;
}
stream example_stream {
  url fake://fake;
}

In the example above we set global port 9998 for playback. So the URL will look as follows:

  • srt://FLUSSONIC-IP:9998?streamid=#!::r=example_play,m=request

Stream port

URL for playing an SRT stream over a stream port has the following structure:

Note

Stream name in streamid is not required.

  • srt://FLUSSONIC-IP:SRT_PORT?streamid=#!::m=request

Let's move on to an example:


stream example_stream {
  url fake://fake;
  srt_play {
    port 9998;
  }
}

In the example above we enabled port 9998 for playback of an example_play stream. So the URL looks as follows:

  • srt://FLUSSONIC-IP:9998?streamid=#!::m=request

Flussonic allows you to manage the playback setting the parameters.

Parameters for an SRT playback

Here is a list of parameters to manage SRT playback aside from port:

Parameters Description Example
minversion x.y.z The minimum SRT version that is required from the peer. minversion 1.3.0.
version x.y.z Required SRT version. version 1.3.0
connect_timeout milliseconds Connection timeout (in milliseconds). connect_timeout 1500
enforcedencryption 1/0 If set to 1, both connection parties must have the same password set (including empty, in other words, with no encryption). If the password doesn’t match or only one side is unencrypted, the connection is rejected. Default is set to 1. enforcedencryption 0
passphrase string Password for the encrypted transmission. Its length can vary from 10 to 79 characters. passphrase 9876543210
linger seconds The time (in seconds) that the socket waits for the unsent data when closing. Default is set to -1 (auto). linger 2
latency microseconds Packet delivery delay (in microseconds). Used to absorb bursts of missed packet retransmissions. latency 1000000 (latency equals to 1 second)

Example with passphrase:


stream example_stream {
  url fake://fake;
  srt_play {
    passphrase 0987654321;
    port 9998;
  }
}

The URL will look like this:

  • srt://FLUSSONIC-IP:9998?passphrase=0987654321&streamid=#!::m=request

Setting up output protocols for a stream

The URLs described earlier on this page can be found in the Flussonic UI on the Output tab of stream settings.

By default, playback via all protocols is allowed, but you can prohibit playback via the protocols that you specify.

Starting from version 20.02, you can use a shorter notation for specifying output protocols for a stream. In the coniguration file, you can list all the protocols by using the protocols option.

The previously used notation is still supported.

Example

For example, you want to allow all protocols except MPEG-TS and HLS for the stream channel_01.

output protocols

In the configuration file, the settings look as follows:


stream channel_01 {
  protocols -mpegts -hls;
}

If you want to allow only DASH and RTMP for playing the stream channel_02 and disable other protocols:

output protocols

In the configuration file, the settings look as follows:


stream channel_02 {
  protocols dash rtmp;
}