Flussonic Streaming API (24.11-292)

Download OpenAPI specification:Download

This document describes possible URLs that can be accessed by a player for playing video streams and files by various protocols.

Permanent download link to JSON schema file.

It is worth noting that parameter {name} used in this schema may be multi-segment, i.e.: /part1/part2/part3/index.m3u8 and name here will be /part1/part2/part3.

At the moment container format is selected automatically depending on source video codec. fmp4 is used in case of hevc, otherwise ts is used.

In the future perspective Flussonic is going to use fmp4 container as default for all types of encoded video.

To keep using ts container please refer to HLS TS playback API section and consider to change your manifest urls.

hls

HLS playback.

HLS live and VOD

Main HLS URL that allows to play a live stream or a VOD file. This URL responds with master playlist.

Exact version of HLS is not defined here, it may vary according to different settings.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

Response samples

Content type
No sample

HLS rewind

Nice combination of live and DVR HLS playlists.

This request gives something like HLS live playlist, but with lot of segments.

If the player understands that there are too many segments for a plain live playlist, it allows to rewind back into DVR window.

We recommend to take a look at Clappr player that supports this feature out of the box.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This method returns one of two types of HLS playlists:

  • "VOD" is suitable for ended TV shows and events, CCTV recordings
  • "EVENT" is suitable for current events, webinars, and TV shows.

This URL is a recommended way to play DVR, because it allows pausing. If a player can seamlessly switch between different URLs, you can make seamless DVR playback with non-overlapping HLS DVR requests.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

event
boolean
Example: event=true

By default, the VOD playlist is returned unless "duration=now"
was requested.

If the playlist's requested range extends into the future,
the type of the event option can be changed to 'EVENT'.

When the end of the requested range passes
(for archive-1641045644-5000.m3u8 it's at 1641050644 UTC),
the playlist changes its type to VOD,
as no new segments are expected.

Note: Most HLS players start playing the VOD playlist
from the beginning and the EVENT playlist at the live edge
(the very end of the playlist).

The default behavior (always VOD) makes players
behave consistently, but players won't request updated playlists.

Responses

Response samples

Content type
No sample

HLS absolute timeshift

If your stream is already recorded on the server with DVR, you can use this URL to play the recorded stream by HLS starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Please note that when you use the same timeshift URL several times, any additional requests use the same existing session. Therefore the time is not pure "absolute" and is still related to the current session. Therefore every time you request the same time, you get different part of the video. To solve this problem, you can change the token parameter in every new request to start a new session. For example:

  • http://FLUSSONIC-IP:80/CHANNEL-NAME/timeshift_abs-1430227800.m3u8?token=123 - the first request,
  • http://FLUSSONIC-IP:80/CHANNEL-NAME/timeshift_abs-1430227800.m3u8?token=124 - the second request, and so on.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS relative timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HLS with a specified delay. This can be useful, for example, for TV broadcasting in different time zones, so that people in a different time zone watch morning broadcasts in the morning, and not late at night.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

delay
required
integer
Example: 7200

Delay in seconds.

For example, if it is 7200, the stream will be played with a two-hours (7200 seconds) delay.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

hls-ts

HLS TS playback.

HLS TS live and VOD

Main HLS URL that allows to play a live stream or a VOD file in ts format. This URL responds with master playlist.

Exact version of HLS is not defined here, it may vary according to different settings.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

Response samples

Content type
No sample

HLS live and VOD (Single Playlist)

Main HLS URL that allows to play a live stream or a VOD file in ts format. This URL responds with master playlist.

Exact version of HLS is not defined here, it may vary according to different settings.

Non-Apple devices standard URL. All tracks in a single playlist. It is used to watch a multi-language stream using VLC or a set-top box. These ones in violation of the HLS standard, expect the old version of MPEG-TS converted to HLS.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

Response samples

Content type
No sample

HLS TS rewind

Nice combination of live and DVR HLS playlists.

This request gives something like HLS live playlist, but with lot of segments.

If the player understands that there are too many segments for a plain live playlist, it allows to rewind back into DVR window.

We recommend to take a look at Clappr player that supports this feature out of the box.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS TS DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This method returns one of two types of HLS playlists:

  • "VOD" is suitable for ended TV shows and events, CCTV recordings
  • "EVENT" is suitable for current events, webinars, and TV shows.

This URL is a recommended way to play DVR, because it allows pausing. If a player can seamlessly switch between different URLs, you can make seamless DVR playback with non-overlapping HLS DVR requests.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

event
boolean
Example: event=true

By default, the VOD playlist is returned unless "duration=now"
was requested.

If the playlist's requested range extends into the future,
the type of the event option can be changed to 'EVENT'.

When the end of the requested range passes
(for archive-1641045644-5000.m3u8 it's at 1641050644 UTC),
the playlist changes its type to VOD,
as no new segments are expected.

Note: Most HLS players start playing the VOD playlist
from the beginning and the EVENT playlist at the live edge
(the very end of the playlist).

The default behavior (always VOD) makes players
behave consistently, but players won't request updated playlists.

Responses

Response samples

Content type
No sample

HLS TS absolute timeshift

If your stream is already recorded on the server with DVR, you can use this URL to play the recorded stream by HLS starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Please note that when you use the same timeshift URL several times, any additional requests use the same existing session. Therefore the time is not pure "absolute" and is still related to the current session. Therefore every time you request the same time, you get different part of the video. To solve this problem, you can change the token parameter in every new request to start a new session. For example:

  • http://FLUSSONIC-IP:80/CHANNEL-NAME/timeshift_abs-1430227800.ts.m3u8?token=123 - the first request,
  • http://FLUSSONIC-IP:80/CHANNEL-NAME/timeshift_abs-1430227800.ts.m3u8?token=124 - the second request, and so on.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS TS relative timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HLS with a specified delay. This can be useful, for example, for TV broadcasting in different time zones, so that people in a different time zone watch morning broadcasts in the morning, and not late at night.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

delay
required
integer
Example: 7200

Delay in seconds.

For example, if it is 7200, the stream will be played with a two-hours (7200 seconds) delay.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS TS live and VOD tracks

Use this URL to play specified tracks of a live stream or a VOD file. It results in HLS media playlist as a list of segments. Each segment contains the specified tracks only.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

tracks
required
string
Example: v1a1

Requested tracks

Responses

Response samples

Content type
No sample

hls-fmp4

HLS FMP4 playback

HLS FMP4 live and VOD

Main HLS URL that allows to play a live stream or a VOD file in fragmented mp4 format. This URL responds with master playlist.

Exact version of HLS is not defined here, it may vary according to different settings.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

Response samples

Content type
No sample

HLS FMP4 rewind

Nice combination of live and DVR HLS playlists.

This request gives something like HLS live playlist, but with lot of segments.

If the player understands that there are too many segments for a plain live playlist, it allows to rewind back into DVR window.

We recommend to take a look at Clappr player that supports this feature out of the box.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS FMP4 DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This method returns one of two types of HLS playlists:

  • "VOD" is suitable for ended TV shows and events, CCTV recordings
  • "EVENT" is suitable for current events, webinars, and TV shows.

This URL is a recommended way to play DVR, because it allows pausing. If a player can seamlessly switch between different URLs, you can make seamless DVR playback with non-overlapping HLS DVR requests.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

event
boolean
Example: event=true

By default, the VOD playlist is returned unless "duration=now"
was requested.

If the playlist's requested range extends into the future,
the type of the event option can be changed to 'EVENT'.

When the end of the requested range passes
(for archive-1641045644-5000.m3u8 it's at 1641050644 UTC),
the playlist changes its type to VOD,
as no new segments are expected.

Note: Most HLS players start playing the VOD playlist
from the beginning and the EVENT playlist at the live edge
(the very end of the playlist).

The default behavior (always VOD) makes players
behave consistently, but players won't request updated playlists.

Responses

Response samples

Content type
No sample

HLS FMP4 absolute timeshift

If your stream is already recorded on the server with DVR, you can use this URL to play the recorded stream by HLS starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Please note that when you use the same timeshift URL several times, any additional requests use the same existing session. Therefore the time is not pure "absolute" and is still related to the current session. Therefore every time you request the same time, you get different part of the video. To solve this problem, you can change the token parameter in every new request to start a new session. For example:

  • http://FLUSSONIC-IP:80/CHANNEL-NAME/timeshift_abs-1430227800.fmp4.m3u8?token=123 - the first request,
  • http://FLUSSONIC-IP:80/CHANNEL-NAME/timeshift_abs-1430227800.fmp4.m3u8?token=124 - the second request, and so on.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS FMP4 relative timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HLS with a specified delay. This can be useful, for example, for TV broadcasting in different time zones, so that people in a different time zone watch morning broadcasts in the morning, and not late at night.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

delay
required
integer
Example: 7200

Delay in seconds.

For example, if it is 7200, the stream will be played with a two-hours (7200 seconds) delay.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

dash

DASH playback

DASH live and VOD

Main DASH URL that allows to play a live stream or a VOD file.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

  <AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
         <SegmentTemplate media="$RepresentationID$/seg-0-$Time$.m4v.jpg" duration="8"></SegmentTemplate>
         <Representation bandwidth="10000" id="images-320x180" width="320" height="180">
            <EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="1x1"/>
         </Representation>
  </AdaptationSet>

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

DASH rewind manifest

Nice combination of live and DVR DASH playlists.

This request gives a playlist with a wide sliding window that allows you to rewind DASH streams and pause them for many hours.

For example, the playlist "rewind-7200.mpd" allows your clients to pause the stream for up to 2 hours or rewind to the start of a TV show without using catchup URLs.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
thumbnails
integer
Example: thumbnails=100

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

 <AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
         <SegmentTemplate media="$RepresentationID$/dvr-1648098000-$Time$.m4v.jpg" duration="72"></SegmentTemplate>
         <Representation bandwidth="10000" id="images-320x240" width="320" height="240">
            <EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="1x1"/>
         </Representation>
  </AdaptationSet>

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover requested duration of the DVR window.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the DVR window
by this value.

Note: This option requires the following parameters
to be included in the stream settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

DASH DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This URL works in two modes: file and event. If duration is specified as now, this url will respond with a growing playlist for playing an event.

If duration is an exact positive number, then the server will respond with playlist, having this requested amount of seconds of video as a file.

Note the following rules:

  • The first segment in this playlist will not start earlier than from.
  • The last segment in this playlist will not start later than from + duration.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
period
string
Value: "mono"

Flussonic can create DASH manifest of two types: with multiple periods
and with a single period.

By default, Flussonic creates a multi-period manifest.
If there's a break in playing a stream (such as a stream restart)
or a change in video quality, Flussonic starts a new playback period.
So the resulting playlist consists of multiple continuous periods.

Such a manifest is incompatible with a wide range of devices and TV sets.
In such cases you can specify the period=mono option:
http://FLUSSONIC-IP/STREAMNAME/archive-TIME-DURATION.mpd?period=mono.
As a result, Flussonic recalculates timestamps of all frames
and merges the segments of the interrupted video into a single period.

Note: This option should not work in the event mode
as Flussonic can't merge periods that occur in future.

thumbnails
integer
Example: thumbnails=100

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

 <AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
         <SegmentTemplate media="$RepresentationID$/dvr-1648098000-$Time$.m4v.jpg" duration="771"></SegmentTemplate>
         <Representation bandwidth="10000" id="images-320x240" width="320" height="240">
            <EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="1x1"/>
         </Representation>
  </AdaptationSet>

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the requested duration of the DVR window.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails is calculated
by dividing the total duration of the DVR window by this value.

Note: This option requires the following parameters
to be included in the stream settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

DASH absolute timeshift

If your stream is already recorded on the server with DVR, you can use this URL to play the recorded stream by DASH starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

query Parameters
thumbnails
integer
Example: thumbnails=100

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

 <AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
         <SegmentTemplate media="$RepresentationID$/dvr-1648098000-$Time$.m4v.jpg" duration="775"></SegmentTemplate>
         <Representation bandwidth="10000" id="images-320x240" width="320" height="240">
            <EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="1x1"/>
         </Representation>
  </AdaptationSet>

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover requested duration of the DVR window.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the DVR window
by this value.

Note: This option requires the following parameters
to be included in the stream settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

ll-hls

Apple Low-Latency HLS playback

LL-HLS live manifest

Use this URL to play a stream via Apple Low-Latency HLS.

To play a stream via this protocol, you should enable CMAF in the stream settings. CMAF is a standard that is used to create MP4 fragments compliant with the Low-Latency HLS specification.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

webrtc

Playing and publishing video via WebRTC

Publish WebRTC

Use this URL for publishing streams via WHIP (WebRTC HTTP ingestion protocol).

Note that JSON schema is provided for information purposes only so that you could see which fields are checked. It doesn't work for the start of WHIP session. Flussonic uses SDP only. Please select application/sdp in REQUEST BODY SCHEMA to see example SDP content.

This API is for developing your WebRTC app that establishes the session itself. You do not need it when using our Flussonic WebRTC Player library: it will prepare the URL and SDP for you.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

header Parameters
X-Sid
required
string <uuid>
Example: 8e03978e-40d5-43e8-bc93-6894a57f9324

Publisher session id

Request Body schema:
Array of objects

ICE candidates for delivering content. ICE candidate is a part of SDP that contains information about the network connection. A peer should check all of them to understand, which of them is working.

ice_username
string

ICE username that uniquely identifies a single ICE interaction session. It is specified in the a=ice-ufrag: attribute.

ice_password
string

ICE password that uniquely identifies a single ICE interaction session. It is specified in the a=ice-pwd: attribute.

fingerprint
string

ICE fingerprint. This attribute identifies the certificate that will be presented for the TLS session.

fingerprint_digest
string
Value: "sha256"

ICE fingerprint digest method. Usually, sha-256.

Array of objects
Default: []

List of the objects in Flussonic structure that are used to built media parts of SDP (starting with m command). Here we call them tracks, because of Flussonic naming.

Responses

Request samples

Content type
{
  • "candidates": [
    ],
  • "ice_username": "string",
  • "ice_password": "string",
  • "fingerprint": "string",
  • "fingerprint_digest": "sha256",
  • "tracks": [ ]
}

Response samples

Content type
{
  • "candidates": [
    ],
  • "ice_username": "string",
  • "ice_password": "string",
  • "fingerprint": "string",
  • "fingerprint_digest": "sha256",
  • "tracks": [ ]
}

Play WebRTC

Use this URL for playing streams via WHEP (WebRTC-HTTP egress protocol).

Note that JSON schema is provided for information purposes only so that you could see which fields are checked. It doesn't work for the start of WHEP session. Flussonic uses SDP only. Please select application/sdp in REQUEST BODY SCHEMA to see example SDP content.

This API is for developing your WebRTC app that establishes the session itself. You do not need it when using our Flussonic WebRTC Player library: it will prepare the URL and SDP for you.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
start_track
string
Example: start_track=v1

If a stream has several video tracks, use this parameter to specify from which track playback should be started.

filter.tracks
string
Example: filter.tracks=v1a1

If a stream has several audio and video tracks, use this parameter to specify which tracks should be delivered.

Request Body schema:
Array of objects

ICE candidates for delivering content. ICE candidate is a part of SDP that contains information about the network connection. A peer should check all of them to understand, which of them is working.

ice_username
string

ICE username that uniquely identifies a single ICE interaction session. It is specified in the a=ice-ufrag: attribute.

ice_password
string

ICE password that uniquely identifies a single ICE interaction session. It is specified in the a=ice-pwd: attribute.

fingerprint
string

ICE fingerprint. This attribute identifies the certificate that will be presented for the TLS session.

fingerprint_digest
string
Value: "sha256"

ICE fingerprint digest method. Usually, sha-256.

Array of objects
Default: []

List of the objects in Flussonic structure that are used to built media parts of SDP (starting with m command). Here we call them tracks, because of Flussonic naming.

Responses

Request samples

Content type
{
  • "candidates": [
    ],
  • "ice_username": "string",
  • "ice_password": "string",
  • "fingerprint": "string",
  • "fingerprint_digest": "sha256",
  • "tracks": [ ]
}

Response samples

Content type
{
  • "candidates": [
    ],
  • "ice_username": "string",
  • "ice_password": "string",
  • "fingerprint": "string",
  • "fingerprint_digest": "sha256",
  • "tracks": [ ]
}

radio

Playing audio streams

SHOUTcast playlist

Use this URL to play audio streams via SHOUTcast protocol which is used for streaming audio over an HTTP connection.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

mpegts

Playing and publishing HTTP MPEG-TS video

HTTP-MPEGTS playback

Use this URL to play a stream via HTTP-MPEGTS protocol.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

HTTP-MPEGTS publishing

Use this URL to publish an HTTP MPEG-TS stream.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Request Body schema: video/mpeg

Published HTTP-MPEGTS chunked transfer live stream.

string

Responses

HTTP-MPEGTS absolute timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HTTP-MPEGTS starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

Responses

HTTP-MPEGTS relative timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HTTP-MPEGTS with a specified delay. This can be useful, for example, for TV broadcasting in different time zones, so that people in a different time zone watch morning broadcasts in the morning, and not late at night.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

delay
required
integer
Example: 7200

Delay in seconds.

For example, if it is 7200, the stream will be played with a two-hours (7200 seconds) delay.

Responses

Export TS

This URL is a recommended way to export a fragment of a DVR archive to a local computer as an MPEG-TS file.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
filter.tracks
string
Example: filter.tracks=v1a1

If a stream has several audio and video tracks, use this parameter to specify which tracks should be exported

Responses

mss

Playing MSS video

MSS

Use this URL to play a stream via MSS (Microsoft Smooth Streaming) protocol.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
filter.tracks
string
Example: filter.tracks=v1a1

If a stream has several audio, video, and subtitles tracks, use this parameter to specify which tracks should be delivered. For example, http://FLUSSONIC-IP/STREAMNAME.isml/manifest?filter.tracks=a1 - select audio only.

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

Responses

MSS DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This URL works in two modes: file and event. If duration is specified as now, this url will respond with a growing playlist for playing an event.

If duration is an exact positive number, then the server will respond with playlist, having this requested amount of seconds of video as a file.

Note the following rules:

  • The first segment in this playlist will not start earlier than from.
  • The last segment in this playlist will not start later than from + duration.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
chunk
string
Value: "d"

Only 'd' value is suppoted now. If present then mss manifest chunk list will be formatted with 'duration' attribute:

< c t=UTC d=Duration /> < c d=Duration /> ... < c d=Duration />

Responses

image

Managing images during playback

JPEG thumbnail

If you configure JPEG thumbnail generation for a stream, this URL can be used to access the stream's last thumbnail (keyframe) as a JPEG image.

Note that generating JPEG thumbnails is a resource-intensive operation because Flussonic takes the first keyframe of each segment, decodes it to raw video, and encodes back to a JPEG image. Please consider using MP4 video thumbnails instead.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

JPEG thumbnail from DVR

If you configure JPEG thumbnail generation and DVR for a stream, this URL can be used to access the stream's recorded thumbnail (keyframe) which is the closest to the specified time as a JPEG image.

If no thumbnails are recorded then 404 Not Found will be returned.

Note that generating JPEG thumbnails is a resource-intensive operation because Flussonic takes the first keyframe of each segment, decodes it to raw video, and encodes back to a JPEG image. Please consider using MP4 video thumbnails instead.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
string
Example: 1644216248

The UTC moment after which Flussonic will search for the recorded JPEG.

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

JPEG thumbnail from DVR or on-demand

This URL works in two modes depending on the stream settings:

  • If you configure JPEG thumbnail generation and DVR for a stream, this URL can be used to access the stream's recorded thumbnail (keyframe) which is the closest to the specified time as a JPEG image.
  • If no thumbnails are recorded and thumbnail parameter is configured as ondemand then JPEG image will be generated from closest keyframe on the fly.

Note that generating JPEG thumbnails is a resource-intensive operation because Flussonic takes the first keyframe of each segment, decodes it to raw video, and encodes back to a JPEG image. Please consider using MP4 video thumbnails instead.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
string
Example: 1644216248

The UTC moment after which Flussonic will search for the recorded JPEG or the first keyframe to generate a JPEG file from.

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Precisely extract a frame from DVR as JPEG image

This operation returns a JPEG made of specific video frame. Specify a PTS (as millisecond timestamp). Streamer will decode the corresponding media segment from DVR, find a video frame with PTS nearest to specified one and encode it as JPEG image. Designed for running external video analytics or for use with external sensors, where output is just a timestamp.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

pts
required
integer <utc_ms> [ 1000000000000 .. 10000000000000 ]
Example: 1732200271444

PTS (presentation timestamp) of a frame to extract and return. Streamer will find a frame with nearest PTS, so some deviation is allowed, and middleware is expected to round the original timestamp to an integer value

size
required
stringfull|[0-9]+x[0-9]+
Examples:
  • full -
  • 128x128 -
  • 1280x720 -

Desired snapshot resolution In different cases user may need snapshots of different quality, e.g. it may be just 128x128 for a dense grid, 1280x720 for player splash, or a full original video size for including in reports. This parameter tells the server snapshot of which size the client needs

query Parameters
sign
required
string[0-9]{10}_[0-9a-f]{64}
Examples:
  • sign=1732200743_176b3f0349c59f2d4561c8d1f82be90416cc8144b0ef0598856c4cf0d34d4dd8 -
  • sign=1732800115_52a0a25d2c09d2384332a1c081be23394c1faf17a223da4b56c7f6b77504a1b4 -

Generating jpeg snapshots is a resource-intensive task. To prevent DoS attacks by users, each request has to be signed by middleware to have control over resource consumption. This parameter contains a token from the middleware to ensure this request for JPEG generation is approved. Format is _ valid_till is UNIX time (seconds) when this token expires.

Sha256Hash = sha256(str(valid_till) + ":" + jpeg_snapshot_sign_key + "@" + name + "/" + "snapshot-" + str(pts) + "-" + size + ".jpg")

jpeg_snapshot_sign_key is a part of stream configuration For example, when valid_till=1732200743, jpeg_snapshot_sign_key="TopSecret", name="test", pts=1732200271444, size="320x240" sign would be 1732200743_176b3f0349c59f2d4561c8d1f82be90416cc8144b0ef0598856c4cf0d34d4dd8

Responses

MP4 thumbnail

Use this URL to get the last video thumbnail (keyframe) of a stream or a VOD file in MP4 format.

Video thumbnails are essentially fragments of H.264 video each containing one frame. Flussonic takes the first keyframe from each segment of a stream or a VOD file and creates an MP4 file from it. This file is sent to the browser, where it is then shown as a picture.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

MP4 DVR thumbnail

If your stream is already being recorded on the server with DVR, you can use this URL to get a video thumbnail in MP4 format as the first keyframe after a specified moment of time.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

The UTC moment after which Flussonic will search for the first keyframe to generate MP4 file from.

If you know that somewhere in 10 minutes after a point in time you have recorded video, you can request unexistent URL (with approximate time). Flussonic will find the existing keyframe in that period of time and return it. This approach will save your cache: the browser will make two requests, but only the existing keyframe will be saved to the browser cache.

Responses

MP4 VOD thumbnail

In case of video file placed in VOD storage you can use this URL to get a video thumbnail in MP4 format as the first keyframe after a specified moment of time.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
string
Example: 01-23-55

The moment after which Flussonic will search for the first keyframe to generate MP4 file from.

The time is specified in the format: hh-mm-ss relatively to beginning of the file.

Responses

api

Getting information about played video

abstract manifest

Abstract manifest describing media segments grouped into periods of continious playback

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

Response samples

Content type
application/json
{
  • "mutability": "live",
  • "segment_prefix": "live",
  • "periods": [
    ]
}

abstract DVR manifest

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This URL works in two modes: file and event. If duration is specified as now, this url will respond with a growing playlist for playing an event.

If duration is an exact positive number, then the server will respond with playlist, having this requested amount of seconds of video as a file.

Note the following rules:

  • The first segment in this playlist will not start earlier than from.
  • The last segment in this playlist will not start later than from + duration.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
event
boolean
Example: event=false

By default, if the requested numeric range (archive-1641045644-5000.json) ends in the future, the returned manifest has mutability: event (segments may be appended). It switches to mutability: static when the end of range is in past (after 1641050644 UTC in this case). This transition indicates that no segments are going to be added at the next request.

You may pass ?event=false parameter if you want mutability to be always static (e.g. to workaround some client behaviour).

Responses

Response samples

Content type
application/json
{
  • "mutability": "live",
  • "segment_prefix": "live",
  • "periods": [
    ]
}

abstract rewind manifest

Nice combination of live and DVR DASH playlists.

This request gives a playlist with a wide sliding window that allows you to rewind DASH streams and pause them for many hours.

For example, the playlist "rewind-7200.json" allows your clients to pause the stream for up to 2 hours or rewind to the start of a TV show without using catchup URLs.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

Responses

Response samples

Content type
application/json
{
  • "mutability": "live",
  • "segment_prefix": "live",
  • "periods": [
    ]
}

abstract absolute timeshift manifest

If your stream is already recorded on the server with DVR, you can use this URL to play the recorded stream starting at the specified moment of time. For example, you can use it for old STBs or viewing recorded shows with EPG.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

Responses

Response samples

Content type
application/json
{
  • "mutability": "live",
  • "segment_prefix": "live",
  • "periods": [
    ]
}

abstract relative timeshift manifest

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream with a specified delay. This can be useful, for example, for TV broadcasting in different time zones, so that people in a different time zone watch morning broadcasts in the morning, and not late at night.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

delay
required
integer
Example: 7200

Delay in seconds.

For example, if it is 7200, the stream will be played with a two-hours (7200 seconds) delay.

Responses

Response samples

Content type
application/json
{
  • "mutability": "live",
  • "segment_prefix": "live",
  • "periods": [
    ]
}

Get recording status Deprecated

Use this method to get the information about DVR recording status of a stream. The method is replaced with ranges_list

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

Response samples

Content type
application/json
{
  • "from": 1641045644,
  • "depth": 259200,
  • "ranges": [
    ],
  • "bytes": 129600000000,
  • "disk_size": 1099511627776,
  • "duration": 172800
}

Get DVR ranges

Use this method to get the DVR ranges for a particular stream.

DVR ranges are the valid parts of the archive.

The method is used to get a detailed archive map. Usage examples:

  • draw recordings on the timeline of a player
  • get parts that should to be replicated.

DVR range is a time interval without any gaps.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
closed_at_gte
integer <utc_ms> [ 1000000000000 .. 10000000000000 ]
Example: closed_at_gte=1641045644000

Will not send ranges that have closed_at_gte earlier this closed_at_gte.

This is an analog of from, left border of screen.

opened_at_lte
integer <utc_ms> [ 1000000000000 .. 10000000000000 ]
Example: opened_at_lte=1646045644000

Will not send ranges that have opened_at time later this opened_at_lte.

This is an analog of to, right border of screen.

resolution
integer
Example: resolution=350

This parameter is sent by player to reduce response size.

resolution is an amount of seconds that can fit into one pixel on screen. Server will collapse and merge all ranges that have gap between them less than resolution.

For example if you show timeline on a screen with 500 pixels width and it is 2 days of recording, resolution = 2*86400 / 500 = 345

It means that all gaps between ranges smalle than 6 minutes, will disappear, because it is impossible to draw them.

Responses

Response samples

Content type
application/json
{
  • "estimated_count": 5,
  • "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
  • "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
  • "timing": { },
  • "ranges": [
    ]
}

Get media info Deprecated

Use this method to get technical information about the output media content. This method is applicable for a live stream or a VOD file.

The method is replaced with public_stream_get. Media info is a part of stream stats.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

Response samples

Content type
application/json
{
  • "flow_type": "stream",
  • "tracks": [ ],
  • "duration": 0,
  • "provider": "Netflix",
  • "title": "Bunny",
  • "stream_id": 253,
  • "program_id": 110
}

Get one stream

This method allows you to fetch stream metadata. The data returned in this method are the same as for streams_list operation.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "title": "Hockey channel",
  • "provider": "SportsTV",
  • "logo": {
    },
  • "auth_token": "token",
  • "stats": {
    }
}

player

Playing video in embed.html player in a browser or on a website.

Embed HTML

Use this URL to play a stream or a VOD file in a special embed.html player provided by Flussonic Media Server. It allows to play video in a browser or to insert video into a website. This player is supported by any client device (browser, smartphone).

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

query Parameters
dvr
boolean
Default: false
Example: dvr=true

Opens the DVR player for a stream with DVR enabled.

realtime
boolean
Default: false
Example: realtime=true

Enables broadcasts via low latency protocols. Automatically selects from MSE-LD or WebRTC.

autoplay
boolean
Default: true
Example: autoplay=false

Autostarts playing video once the page is opened. Displays screenshots before viewing. Sound availability is defined by the browser policy.

mute
boolean
Example: mute=true

Mute the sound.

localtime
boolean
Default: true
Example: localtime=false

The option controls timezone in the player's UI.

When the option is set to true, the timeline shows time in local timezone of your browser.

When set to false, the timeline shows time in UTC+0 timezone. This way may be useful, for example, when your cameras are installed in different timezones and you need a unified reference to view the archive.

export_limit
integer <seconds>
Default: 86400
Example: export_limit=3600

The option controls user timeline selection and limits his possibility of selection large export ranges.

volume
integer
Example: volume=50

Initial player sound volume level on a scale from 0 to 100.

play_duration
integer <seconds>
Example: play_duration=3600

The number of seconds until video playback stops. Useful for saving traffic.

ago
integer <seconds>
Example: ago=3600

Allows users to rewind back. The value is specified in seconds. It's more convenient than DVR player for viewing video in the last few minutes or hours. Ideal for pausing and rewinding live video on the site.

from
integer <utc> [ 1000000000 .. 10000000000 ]
Example: from=1641045644

The Unix timestamp from where to start playing. If this option is specified, the player will play the playlist with absolute timeshift starting from the specified time.

to
integer <utc> [ 1000000000 .. 10000000000 ]
Example: to=1641045852

The Unix timestamp where to end playing. Used only together with from. The player will open HLS VOD, and rewinding will be available within the specified time interval.

Responses

mp4

Getting content in MP4 video container.

Export MP4

This URL is a recommended way to export a fragment of a DVR archive to a local computer as an MP4 file.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

The start time of the DVR window in UTC seconds.

required
integer or string

The duration of the DVR window in seconds. You also can specify now for a DVR window till current time.

query Parameters
filter.tracks
string
Example: filter.tracks=v1a1

If a stream has several audio and video tracks, use this parameter to specify which tracks should be exported

"fragmented" (string) or "compat" (string)
Default: "fragmented"
Example: packing=compat

How to pack a recording data in the exported file

Responses

Save MP4 to a server's storage

Legacy URL. See dvr_export_job_start in admin API for a better option.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

The start time of the DVR window in UTC seconds.

required
integer or string

The duration of the DVR window in seconds. You also can specify now for a DVR window till current time.

query Parameters
timelapse
boolean

Request a timelapse instead of normal speed

timelapse_kbps
integer

Custom bitrate for timelapse

"fragmented" (string) or "compat" (string)
Default: "fragmented"
Example: packing=compat

How to pack a recording data in the exported file

Responses

iptv

Get m3u playlist

Get m3u playlist for existing user which is subscribed to receive some stream package

Authorizations:
tokenAuth
path Parameters
name
required
string
Example: client01

the name of the user which is subscribed to receive some stream package

Responses

streams

List streams

This API can return list of streams.

Authorizations:
tokenAuth
query Parameters
sort
string
Example: sort=-stats.bitrate,name,position

Composite sort direction. Default sort order is named_by (config,user,remote), position, name.

limit
integer
Example: limit=100

Limit select count in collection to N elements. Default value is 100.

cursor
string
Example: cursor=JTI0cG9zaXRpb25fZ3Q9MQ==

Properly encoded analog of offset, allowing to read next bunch of items. We do not offer common offset fields, use please cursor for predictable fetching of quickly changing list of items. Learn more in Flussonic API design principles.

Responses

Response samples

Content type
application/json
{
  • "estimated_count": 5,
  • "next": "JTI0cG9zaXRpb25fZ3Q9MA==",
  • "prev": "JTI0cG9zaXRpb25fbHQ9MSYlMjRyZXZlcnNlZD10cnVl",
  • "timing": { },
  • "streams": [
    ]
}

dvr

Methods that could be used to play recorded data.

HLS TS rewind

Nice combination of live and DVR HLS playlists.

This request gives something like HLS live playlist, but with lot of segments.

If the player understands that there are too many segments for a plain live playlist, it allows to rewind back into DVR window.

We recommend to take a look at Clappr player that supports this feature out of the box.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS TS DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This method returns one of two types of HLS playlists:

  • "VOD" is suitable for ended TV shows and events, CCTV recordings
  • "EVENT" is suitable for current events, webinars, and TV shows.

This URL is a recommended way to play DVR, because it allows pausing. If a player can seamlessly switch between different URLs, you can make seamless DVR playback with non-overlapping HLS DVR requests.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

event
boolean
Example: event=true

By default, the VOD playlist is returned unless "duration=now"
was requested.

If the playlist's requested range extends into the future,
the type of the event option can be changed to 'EVENT'.

When the end of the requested range passes
(for archive-1641045644-5000.m3u8 it's at 1641050644 UTC),
the playlist changes its type to VOD,
as no new segments are expected.

Note: Most HLS players start playing the VOD playlist
from the beginning and the EVENT playlist at the live edge
(the very end of the playlist).

The default behavior (always VOD) makes players
behave consistently, but players won't request updated playlists.

Responses

Response samples

Content type
No sample

HLS rewind

Nice combination of live and DVR HLS playlists.

This request gives something like HLS live playlist, but with lot of segments.

If the player understands that there are too many segments for a plain live playlist, it allows to rewind back into DVR window.

We recommend to take a look at Clappr player that supports this feature out of the box.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This method returns one of two types of HLS playlists:

  • "VOD" is suitable for ended TV shows and events, CCTV recordings
  • "EVENT" is suitable for current events, webinars, and TV shows.

This URL is a recommended way to play DVR, because it allows pausing. If a player can seamlessly switch between different URLs, you can make seamless DVR playback with non-overlapping HLS DVR requests.

Container format will be selected automatically depending on media info parameters.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

event
boolean
Example: event=true

By default, the VOD playlist is returned unless "duration=now"
was requested.

If the playlist's requested range extends into the future,
the type of the event option can be changed to 'EVENT'.

When the end of the requested range passes
(for archive-1641045644-5000.m3u8 it's at 1641050644 UTC),
the playlist changes its type to VOD,
as no new segments are expected.

Note: Most HLS players start playing the VOD playlist
from the beginning and the EVENT playlist at the live edge
(the very end of the playlist).

The default behavior (always VOD) makes players
behave consistently, but players won't request updated playlists.

Responses

Response samples

Content type
No sample

HLS FMP4 rewind

Nice combination of live and DVR HLS playlists.

This request gives something like HLS live playlist, but with lot of segments.

If the player understands that there are too many segments for a plain live playlist, it allows to rewind back into DVR window.

We recommend to take a look at Clappr player that supports this feature out of the box.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

ago
required
integer
Example: 7200

DVR window size in seconds. It is a duration of a manifest in seconds, so your clients will be able to pause the stream up to this period or rewind it, for example, to the start of a TV show.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

Responses

Response samples

Content type
No sample

HLS FMP4 DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This method returns one of two types of HLS playlists:

  • "VOD" is suitable for ended TV shows and events, CCTV recordings
  • "EVENT" is suitable for current events, webinars, and TV shows.

This URL is a recommended way to play DVR, because it allows pausing. If a player can seamlessly switch between different URLs, you can make seamless DVR playback with non-overlapping HLS DVR requests.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
separate_audio
boolean
Example: separate_audio=true

Whether audio tracks are specified separately in the playlist.

Used for players like Samsung TV or browsers that support MSE.
Such players and browsers can't switch between
multiple audio tracks (for instance, for different languages)
and don't display such audio tracks. For such cases,
Flussonic can create a playlist with separate audio.

thumbnails
integer
Example: thumbnails=100

Applicable to a VOD file only (ignored for a live stream).

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

#EXT-X-IMAGE-STREAM-INF:BANDWIDTH=10000,RESOLUTION=320x180,CODECS="jpeg",URI="images-320x180/tpl-0-34-100.m3u8"

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the file duration.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the file by this value.

Note: This option requires the following parameters
to be included in the VOD location settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

event
boolean
Example: event=true

By default, the VOD playlist is returned unless "duration=now"
was requested.

If the playlist's requested range extends into the future,
the type of the event option can be changed to 'EVENT'.

When the end of the requested range passes
(for archive-1641045644-5000.m3u8 it's at 1641050644 UTC),
the playlist changes its type to VOD,
as no new segments are expected.

Note: Most HLS players start playing the VOD playlist
from the beginning and the EVENT playlist at the live edge
(the very end of the playlist).

The default behavior (always VOD) makes players
behave consistently, but players won't request updated playlists.

Responses

Response samples

Content type
No sample

DASH DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This URL works in two modes: file and event. If duration is specified as now, this url will respond with a growing playlist for playing an event.

If duration is an exact positive number, then the server will respond with playlist, having this requested amount of seconds of video as a file.

Note the following rules:

  • The first segment in this playlist will not start earlier than from.
  • The last segment in this playlist will not start later than from + duration.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
period
string
Value: "mono"

Flussonic can create DASH manifest of two types: with multiple periods
and with a single period.

By default, Flussonic creates a multi-period manifest.
If there's a break in playing a stream (such as a stream restart)
or a change in video quality, Flussonic starts a new playback period.
So the resulting playlist consists of multiple continuous periods.

Such a manifest is incompatible with a wide range of devices and TV sets.
In such cases you can specify the period=mono option:
http://FLUSSONIC-IP/STREAMNAME/archive-TIME-DURATION.mpd?period=mono.
As a result, Flussonic recalculates timestamps of all frames
and merges the segments of the interrupted video into a single period.

Note: This option should not work in the event mode
as Flussonic can't merge periods that occur in future.

thumbnails
integer
Example: thumbnails=100

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

 <AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
         <SegmentTemplate media="$RepresentationID$/dvr-1648098000-$Time$.m4v.jpg" duration="771"></SegmentTemplate>
         <Representation bandwidth="10000" id="images-320x240" width="320" height="240">
            <EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="1x1"/>
         </Representation>
  </AdaptationSet>

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover the requested duration of the DVR window.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails is calculated
by dividing the total duration of the DVR window by this value.

Note: This option requires the following parameters
to be included in the stream settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

DASH absolute timeshift

If your stream is already recorded on the server with DVR, you can use this URL to play the recorded stream by DASH starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

query Parameters
thumbnails
integer
Example: thumbnails=100

If specified, the thumbnail playlist is added to the primary playlist.

Example of the thumbnail playlist:

 <AdaptationSet id="3" mimeType="image/jpeg" contentType="image">
         <SegmentTemplate media="$RepresentationID$/dvr-1648098000-$Time$.m4v.jpg" duration="775"></SegmentTemplate>
         <Representation bandwidth="10000" id="images-320x240" width="320" height="240">
            <EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="1x1"/>
         </Representation>
  </AdaptationSet>

This value defines how many thumbnail links will be added
to the thumbnail playlist to cover requested duration of the DVR window.
The player adds the thumbnail links to the progress bar
at regular intervals. The interval duration between thumbnails
is calculated by dividing the total duration of the DVR window
by this value.

Note: This option requires the following parameters
to be included in the stream settings:

  • thumbnails enabled=ondemand
  • size

For example, thumbnails enabled=ondemand size=320x240;.

Responses

HTTP-MPEGTS absolute timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HTTP-MPEGTS starting at a specified moment of time. For example, you can use it for old STBs or viewing recoreded shows with EPG.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

Responses

HTTP-MPEGTS relative timeshift

If your stream is being recorded on the server with DVR, you can use this URL to play the recorded stream by HTTP-MPEGTS with a specified delay. This can be useful, for example, for TV broadcasting in different time zones, so that people in a different time zone watch morning broadcasts in the morning, and not late at night.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

delay
required
integer
Example: 7200

Delay in seconds.

For example, if it is 7200, the stream will be played with a two-hours (7200 seconds) delay.

Responses

MSS DVR

If your stream is already recorded on the server with DVR, you can use this URL to play a specified DVR window, for example, you can play a telecast if you know its beginning and end from EPG.

This URL works in two modes: file and event. If duration is specified as now, this url will respond with a growing playlist for playing an event.

If duration is an exact positive number, then the server will respond with playlist, having this requested amount of seconds of video as a file.

Note the following rules:

  • The first segment in this playlist will not start earlier than from.
  • The last segment in this playlist will not start later than from + duration.
Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
chunk
string
Value: "d"

Only 'd' value is suppoted now. If present then mss manifest chunk list will be formatted with 'duration' attribute:

< c t=UTC d=Duration /> < c d=Duration /> ... < c d=Duration />

Responses

Export MP4

This URL is a recommended way to export a fragment of a DVR archive to a local computer as an MP4 file.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

The start time of the DVR window in UTC seconds.

required
integer or string

The duration of the DVR window in seconds. You also can specify now for a DVR window till current time.

query Parameters
filter.tracks
string
Example: filter.tracks=v1a1

If a stream has several audio and video tracks, use this parameter to specify which tracks should be exported

"fragmented" (string) or "compat" (string)
Default: "fragmented"
Example: packing=compat

How to pack a recording data in the exported file

Responses

Export TS

This URL is a recommended way to export a fragment of a DVR archive to a local computer as an MPEG-TS file.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

Start time of playing the DVR archive in UTC seconds.

required
integer or string

The duration of the DVR window in seconds.

You also can specify now for a growing playlist till current time.

If from+duration is in the future, the playlist will grow as well until it reaches the specified moment.

query Parameters
filter.tracks
string
Example: filter.tracks=v1a1

If a stream has several audio and video tracks, use this parameter to specify which tracks should be exported

Responses

Save MP4 to a server's storage

Legacy URL. See dvr_export_job_start in admin API for a better option.

Authorizations:
tokenAuth
path Parameters
name
required
string
Examples:
  • clock - Stream name example
  • vod/movies/bunny.mp4 - VOD file name example

The name of a stream or a VOD file. It may be multi-segment, i.e. /part1/part2/part3.

For a VOD file, it consists of the VOD storage name and a path to the file within the storage.

from
required
integer
Example: 1641045644

The start time of the DVR window in UTC seconds.

required
integer or string

The duration of the DVR window in seconds. You also can specify now for a DVR window till current time.

query Parameters
timelapse
boolean

Request a timelapse instead of normal speed

timelapse_kbps
integer

Custom bitrate for timelapse

"fragmented" (string) or "compat" (string)
Default: "fragmented"
Example: packing=compat

How to pack a recording data in the exported file

Responses