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.