Skip to content

Flussonic compatibility

Sapsan answers on the familiar Flussonic Media Server URLs so existing players, integrations, and monitoring keep working during migration. Compatibility is on by default and can be disabled in the config:

flussonic:
  streaming: false   # default true

Supported legacy URLs

The following address forms are recognized (GET/HEAD; OPTIONS handles CORS preflight):

Legacy URL Behavior
/<stream>/index.m3u8 HLS; profile-dependent layout
/<stream>/index.fmp4.m3u8, /<stream>/index.ll.m3u8 302 to native HLS master
/<stream>/tracks-<tracks>/index.m3u8 (also index.fmp4.m3u8, index.ll.m3u8) HLS with track selection
/<stream>/variant/<track>/index.m3u8 Track playlist
/<stream>/rewind-<seconds>.m3u8 Rewind HLS; profile-dependent layout
/<stream>/video.m3u8 Muxed MPEG-TS HLS master
/<stream>/video-<from>-<duration>.m3u8 Muxed MPEG-TS archive HLS
/<stream>/video-rewind-<seconds>.m3u8 Legacy form; mixed live master without rewind
/<stream>/index-<from>-<duration>.m3u8, /<stream>/archive-<from>-<duration>.m3u8 (also .fmp4.m3u8) Archive HLS
/<stream>/tracks-<tracks>/index-<from>-<duration>.m3u8 (also archive-, .fmp4.m3u8) Archive HLS with track selection
/<stream>/archive-<from>-<duration>.mpd 302 to archive DASH
/<stream>/archive-<from>-<duration>.mp4 302 to archive export
/<stream>/tracks-<tracks>/archive-<from>-<duration>.mp4 Archive export with track selection
/<stream>/info.json, /<stream>/ranges.json, /<stream>/recording_status.json Stream information, archive ranges, recording status
/<stream>/preview.jpg, /<stream>/preview.mp4 Live preview
/<stream>/<utc>-preview.jpg, /<stream>/<utc>-preview.mp4, /<stream>/<utc>.jpg, /<stream>/YYYY/MM/DD/HH/MM/SS-preview.jpg, /<stream>/YYYY/MM/DD/HH/MM/SS-preview.mp4 Archive preview
/<stream>/m4f, /<stream>/m4s Legacy live transport
/<stream>/archive-<from>-<duration>[.m4f], /<stream>/m4f-<from>-<duration>[.m4f] Legacy archive feed; duration also accepts now
/<stream>/YYYY/MM/DD/HH/MM/SS.m4f, /<stream>/YYYY/MM/DD/HH/MM/SS.jpg Legacy archive segment or preview
/<stream>.isml/manifest, /<stream>.isml/Manifest 307 to native MSS manifest
/<stream>(archive=<from>-<duration>).isml/manifest (also Manifest) Archive MSS manifest
/<stream>.isml/QualityLevels(<bitrate>)/Fragments(<track>=<time>) (also archive .isml form) MSS fragment

In m4f forms, [.m4f] denotes an optional extension. Preview <utc> timestamps may use Unix seconds or milliseconds.

<from> and <duration> are whole seconds; window duration must be positive. <tracks> uses numbers such as v1a1. Nested info.json and ranges.json are also recognized. Old mono, video, video<N>, track-* and txt-* selectors before archive windows are accepted without that track selection: the full master is returned.

Neutral HLS URLs (index.m3u8, archive .m3u8, rewind-…) with an output profile containing hls return a master in the layout selected by that profile. Without such a profile they redirect to native fMP4 HLS. Explicit .fmp4.m3u8 and .ll.m3u8 retain fMP4 delivery. The video* family serves muxed MPEG-TS.

Recognizing a URL does not imply every mode is supported: .ts export and export duration now return 422; .isml rewind is not supported. Final endpoints apply the same authorization, license limits and archive availability as native URLs.

ranges.json parameters: closed_at_gte, opened_at_gte, opened_at_lte, resolution, limit, cursor, sort.

The video<N>.m3u8 forms and their archive/rewind variants are unsupported.

Playlist layout on Flussonic URLs

Neutral index.m3u8, archive-window .m3u8 and rewind-<seconds>.m3u8 addresses under a device profile containing hls return a playlist with status 200. A profile without hls, or no profile, retains the 302 redirect to the native fMP4 URL with the original query. Archive windows preserve time boundaries, whereas legacy rewind under such a profile returns a live master without rewind; a query from may select the archive.

The request-selected profile’s hls.output field chooses the layout:

  • fmp4 — fMP4 fragments.
  • ts — MPEG-TS with separate audio tracks, under /streaming/v/<stream>/ts/….
  • ts_mux — MPEG-TS with audio inside video segments, under /streaming/v/<stream>/ts/mux/….

video.m3u8 always returns mixed ts_mux, even without a profile; the profile filters tracks. video-rewind-<seconds>.m3u8 is recognized but also returns a live master without rewind. Explicit .fmp4.m3u8 and index.ll.m3u8, and forms with tracks-…/, retain redirects.

Admission, sessions, ondemand startup and profile selection match native delivery. Playlist links are absolute paths under /streaming/v/<stream>/… with query parameters, including the token. Proxies must preserve this prefix. Standalone mono and timeshift (video-timeshift_rel-…) families are unsupported. For native layouts and codec limits, see HLS over MPEG-TS.

Admin API v3

The API under the /streamer/api/v3 prefix responds in the Flussonic Streamer API v3 format — see Admin API. When converting a v3 configuration, some fields are dropped by design (static, comment, title, segment_duration, https listeners, and others) — a loss report is available during conversion.

Tokens

Legacy playback accepts ?token= and Authorization: Bearer. For these URLs the query token takes priority over the header.

Next steps