Flussonic Media Server supports playing video via the DASH protocol.
The supported codecs are: H264, H265, AAC, MP3, and AC-3.
Flussonic Media Server supports access via MPEG-DASH to live streams, VOD files, and DVR (catchup and timeshift).
If an incoming stream has DVB subtitles, then Flussonic can pass them to an output MPEG-DASH stream if you configure Flussonic for that. Subtitles are saved in DVR archive if a stream is recorded to the archive.
DASH uses a manifest file for transmitting information about a requested stream. To keep it simple, we call it 'playlist' here.
On this page:
- Simple video playback via DASH
- Playing back individual tracks
- DVR catchup playback via DASH
- Rewinding DASH videos
- DVR timeshift playback
- DASH manifests for playing on TVs with WebOS and other devices
- DASH manifests for playing back archives of live streams
- DVB compliance of a DASH manifest
- Playback with subtitles
When you have a live stream or file (one video track, one audio track) for playing, the URL for playback via DASH is simple:
flussonic-ip is a placeholder for your Flussonic Media Server host + port address.
If a stream has several audio and video 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/index.mpd?filter=tracks:v2a1— select the first audio and second video tracks.
http://flussonic-ip/STREAMNAME/index.mpd?filter=tracks:v1— select video only.
http://flussonic-ip/STREAMNAME/archive-1362504585-3600.mpd?filter=tracks:v2a1— DVR archive playback starting from UTC 1362504585 and with the duration of 3600 seconds.
When your stream is already recorded on a server with our DVR, you can play video via DASH if you know the beginning and ending time of telecast, for example, from EPG.
URLs for playing video from archives will be like this:
Such a URL will give a list of segments starting from UTC 1362504585 (2013, March, 5th, 17:29:45 GMT) and for one hour forward (3600 seconds).
If you have more than one language or more than one bitrate, you will get an adaptive stream with the possibility to select the audio track.
Flussonic Media Server has a special playlist "rewind-N.mpd" with a wide sliding window that allows you to rewind DASH streams and pause them for many hours.
Here 7200 is the duration of the DASH manifest in seconds, so your clients will be able to pause the stream for up to 2 hours or rewind to the start of a TV show without using catchup URLs.
Also, there is a playlist in which you can receive a live stream and rewind up to a specified time: "archive-N-now.mpd", where N - is a Unix timestamp of the moment to which users can rewind the stream.
Here we descibe one more way to play an archive via DASH with the option to rewind up to the specified time. If you haven't configured a timeshifted stream, you can still play timeshifted video via DASH by using a propely constructed URL.
Here goes the example of an URL for absolute timeshift:
where 1584435600 is 03/17/2020 @ 9:00am (UTC)
The player will play live at the start and allow rewinding up to 1584435600.
Flussonic can create DASH manifest of two types: with multiple periods and with a single period.
Initially, Flussonic designed its DASH manifest for DVR playback with the view to usage in CDN. The manifest with multiple periods was suitable for this purpose.
However, such a manifest is incompatible with a wide range of devices and TV sets used by consumers in many countries, such as US. These include LG TVs on WebOS and others.
For devices that cannot play DASH with multi-period timeline, we designed a single-period manifest enabling you to play DASH on that devices.
period=mono to the URL as follows:
Note. The single-period manifest for live with the option to view the recorded archive (archive-TIME-now.mpd?period=mono) is sensitive to the quality of the input stream source — it is necessary that there are no gaps in the live stream.
Note. This information is useful if you need a static manifest for playing DVR over DASH of a currently live stream.
- 1350274200 — the start time of a requested chunk in DVR archive.
- 4200 — how many seconds to play back.
Imagine you have streams that are broadcasted live and recorded to DVR. For playing them back from the archive, the requested fragment might end in the future where no broadcast exists yet.
Flussonic allows you to choose the type of manifest (playlist) to send to clients when playing back DVR of such live streams over DASH. A DASH manifest can be static or dynamic (updatable).
By default, Flussonic updates the manifest along with live broadcast progress, which means the manifest is dynamic. When the real time reaches the specified moment when the archive fragment must end, the manifest automatically becomes static because all info about the stream is received and there is no need to update the manifest any longer. In some cases it might be better to use a static manifest.
To specify the type of a manifest, use the
dynamic=false. Flussonic Media Server will generate a static manifest. In a player, an archive will be played the same way as a file. The manifest will contain information about the requested time range and will not be updated during playback.
dynamic=auto. This is the default behavior, so this parameter can be omitted. First, Flussonic creates a dynamic manifest (and updates it while a live broadcast is going in parallel with DVR playback). Then Flussonic changes the manifest to static – it happens when the live broadcast reaches the end time of the requested DVR fragment.
If you use a validator for DASH and you turn on checking for DVB compliance in the validator, you'll need to make sure that your DASH manifests are compliant with the DVB profile.
In order to get a DVB-compliant manifest, add the option
dvb=1 to the stream's URL:
Flussonic supports passing both TTML and WebVTT subtitles into DASH streams. This allows showing subtitles on a wider range of devices and set-top boxes.
Choosing subtitles format for DASH playback
As two formats of subtitles are included in a DASH manifest, you can choose one of them when playing an output stream:
https://FLUSSONIC-IP/STREAMNAME/index.mpd?text=ttml (TTML is the default format)
text can be used also with URLs like