Compatibilidade com o Flussonic¶
O Sapsan responde nas URLs habituais do Flussonic Media Server para que os reprodutores, as integrações e o monitoramento existentes continuem funcionando durante a migração. A compatibilidade vem ligada por padrão e pode ser desligada no config:
flussonic:
streaming: false # por padrão true
URLs legadas suportadas¶
Estas formas de endereço são reconhecidas (GET/HEAD; OPTIONS atende CORS preflight):
| Legacy URL | Comportamento |
|---|---|
/<stream>/index.m3u8 |
HLS; disposição conforme o perfil |
/<stream>/index.fmp4.m3u8, /<stream>/index.ll.m3u8 |
302 para o master HLS nativo |
/<stream>/tracks-<tracks>/index.m3u8 (também index.fmp4.m3u8, index.ll.m3u8) |
HLS com seleção de faixas |
/<stream>/variant/<track>/index.m3u8 |
Playlist de uma faixa |
/<stream>/rewind-<seconds>.m3u8 |
Retrocesso HLS; disposição conforme o perfil |
/<stream>/video.m3u8 |
Master HLS com MPEG-TS multiplexado |
/<stream>/video-<from>-<duration>.m3u8 |
HLS de arquivo com MPEG-TS multiplexado |
/<stream>/video-rewind-<seconds>.m3u8 |
Forma legacy; master misto ao vivo sem retrocesso |
/<stream>/index-<from>-<duration>.m3u8, /<stream>/archive-<from>-<duration>.m3u8 (também .fmp4.m3u8) |
HLS de arquivo |
/<stream>/tracks-<tracks>/index-<from>-<duration>.m3u8 (também archive-, .fmp4.m3u8) |
HLS de arquivo com seleção de faixas |
/<stream>/archive-<from>-<duration>.mpd |
302 para DASH de arquivo |
/<stream>/archive-<from>-<duration>.mp4 |
302 para exportação do arquivo |
/<stream>/tracks-<tracks>/archive-<from>-<duration>.mp4 |
Exportação com seleção de faixas |
/<stream>/info.json, /<stream>/ranges.json, /<stream>/recording_status.json |
Informações do stream, intervalos do arquivo, estado da gravação |
/<stream>/preview.jpg, /<stream>/preview.mp4 |
Prévia ao vivo |
/<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 |
Prévia do arquivo |
/<stream>/m4f, /<stream>/m4s |
Transporte legacy ao vivo |
/<stream>/archive-<from>-<duration>[.m4f], /<stream>/m4f-<from>-<duration>[.m4f] |
Fluxo legacy de arquivo; duração também aceita now |
/<stream>/YYYY/MM/DD/HH/MM/SS.m4f, /<stream>/YYYY/MM/DD/HH/MM/SS.jpg |
Segmento legacy do arquivo ou prévia |
/<stream>.isml/manifest, /<stream>.isml/Manifest |
307 para o manifesto MSS nativo |
/<stream>(archive=<from>-<duration>).isml/manifest (também Manifest) |
Manifesto MSS do arquivo |
/<stream>.isml/QualityLevels(<bitrate>)/Fragments(<track>=<time>) (também forma de arquivo .isml) |
Fragmento MSS |
Nas formas m4f, [.m4f] indica uma extensão opcional. As marcas <utc> de prévia podem usar segundos ou milissegundos Unix.
<from> e <duration> são segundos inteiros; a duração deve ser positiva. <tracks> usa números como v1a1. info.json e ranges.json aninhados também são reconhecidos. Os seletores antigos mono, video, video<N>, track-* e txt-* antes de janelas do arquivo são aceitos sem aplicar essa seleção: o master completo é retornado.
As URL HLS neutras (index.m3u8, .m3u8 do arquivo, rewind-…) com um perfil de saída contendo hls retornam o master na disposição do perfil. Sem esse perfil, redirecionam para HLS fMP4 nativo. As formas explícitas .fmp4.m3u8 e .ll.m3u8 mantêm fMP4. A família video* entrega MPEG-TS multiplexado.
Reconhecer uma URL não implica aceitar todos os modos: a exportação .ts e sua duração now retornam 422; rewind de .isml não é compatível. Os endpoints finais aplicam a mesma autorização, limites de licença e disponibilidade do arquivo das URL nativas.
Parâmetros de ranges.json: closed_at_gte, opened_at_gte, opened_at_lte, resolution, limit, cursor, sort.
As formas video<N>.m3u8 e suas variantes de arquivo/rewind não são compatíveis.
Disposição de playlists nas URL Flussonic¶
Os endereços neutros index.m3u8, janelas de arquivo .m3u8 e rewind-<seconds>.m3u8 com perfil de dispositivo contendo hls retornam uma playlist com código 200. Sem perfil ou com perfil sem hls, mantêm o redirecionamento 302 para a URL fMP4 nativa com a query original. As janelas de arquivo preservam seus limites; rewind legacy com esse perfil retorna um master ao vivo sem retrocesso. O parâmetro from pode selecionar o arquivo.
O campo hls.output do perfil selecionado pela requisição determina a disposição:
fmp4— fragmentos fMP4.ts— MPEG-TS com faixas de áudio separadas, sob/streaming/v/<stream>/ts/….ts_mux— MPEG-TS com áudio dentro dos segmentos de vídeo, sob/streaming/v/<stream>/ts/mux/….
video.m3u8 sempre retorna a forma mista ts_mux, mesmo sem perfil; o perfil filtra as faixas. video-rewind-<seconds>.m3u8 é reconhecido, mas também retorna um master ao vivo sem retrocesso. As formas explícitas .fmp4.m3u8 e index.ll.m3u8, assim como tracks-…/, mantêm o redirecionamento.
Admissão, sessões, início ondemand e seleção de perfil coincidem com a entrega nativa. Os links são caminhos absolutos sob /streaming/v/<stream>/… com parâmetros de query, incluindo o token. O proxy deve preservar esse prefixo. As famílias independentes mono e timeshift (video-timeshift_rel-…) não são compatíveis. Consulte as disposições nativas e limites de codecs em HLS sobre MPEG-TS.
Admin API v3¶
A API sob o prefixo /streamer/api/v3 responde no formato do Flussonic Streamer API v3 — veja Admin API. Na conversão de uma configuração v3, alguns campos são descartados de propósito (static, comment, title, segment_duration, listeners https e outros) — o relatório de perdas fica disponível durante a conversão.
Tokens¶
A reprodução legacy aceita ?token= e Authorization: Bearer. Nessas URL, o token da query tem prioridade sobre o cabeçalho.