Skip to content

Sapsan

Flussonic Sapsan (hereafter Sapsan) is a streaming media server. It ingests live video over industry-standard protocols, processes it (transcoding, multibitrate assembly, screenshots), records it into its own on-disk archive (DVR), and delivers it to viewers both live and from the archive.

Purpose: ingesting, processing, recording, and delivering live video in internet streaming, IPTV, and video surveillance projects. The detailed function list is on the functional characteristics page; the system design is on the technical architecture page.

Sapsan is driven by a single configuration file sapsan.yaml, reloads it on the fly without interrupting streaming, and can run either standalone or under control of an external management system (Flussonic Central).

Key features

  • Ingest: RTSP (IP cameras), MPEG-TS (UDP and HTTP), SRT, RTMP, a channel from a file, synthetic test source.
  • Publishing: RTMP publish, SRT publish, WebRTC WHIP.
  • Ingest failover: multiple sources per stream with automatic switching (LSI), a fallback file.
  • Transcoding: multibitrate (MBR) ladder preparation based on FFmpeg — h264/hevc/av1, aac/opus.
  • Playback: HLS and LL-HLS (fMP4), DASH, MPEG-TS over HTTP (including CBR), SRT, RTSP, WebRTC WHEP.
  • Restreaming: pushing a stream over RTMP, SRT, and UDP (multicast/unicast).
  • DVR: append-only multi-disk archive, archive playback, rewind, frame previews, seamless playback of archives from other servers (remotes).
  • Screenshots: JPEG previews of live streams and the archive.
  • Authorization: play and publish tokens, external auth backends.
  • ONVIF: camera discovery on the network, motion and detection events.
  • Management: Admin API, external configuration (config_external), hot reload on SIGHUP, compatibility with Flussonic URLs and API.
  • Peeklio gateway (rproxy): access to cameras and devices behind NAT via agents.
  • Observability: structured logs, Prometheus metrics, OpenTelemetry traces, ingest quality counters.

Quick start

Documentation navigator

This documentation will help you: