◆ ForgeVis
Skip to content

Introduction ​

ForgeVis is a high-performance RTSP video recorder and restreaming server. Record from IP cameras and restream to multiple clients using a single connection per camera.

Why ForgeVis? ​

  • Efficient Architecture: Single connection per camera with broadcast distribution
  • Fragmented MP4: Files playable while recording, streaming-optimized format
  • RTSP Restreaming: Built-in RTSP server for distributing streams to clients
  • Simple Configuration: YAML-based setup with minimal required settings
  • No Transcoding by Default: video from the camera is recorded and served as is. Transcoding starts only when a viewer picks 720p over HLS

Key Features ​

Video Recording ​

  • RTSP ingestion with automatic reconnect
  • H.264 and H.265, AAC, G.711 and Opus audio
  • Fragmented MP4 (fMP4) playable while recording, or plain MP4
  • Configurable segment duration (default 900 seconds)
  • Path templates with %path, %Y, %m, %d, %H, %M, %S placeholders
  • Hooks on segment creation and completion
  • Archive cleanup by retention period

RTSP Restreaming ​

  • Full RTSP protocol server (OPTIONS, DESCRIBE, SETUP, PLAY, TEARDOWN)
  • RTP over TCP (interleaved) and UDP
  • H.264 (RFC 6184) and H.265 (RFC 7798) packetization
  • Multiple clients per camera via broadcast
  • URL format: rtsp://localhost:8554/{camera_id}

Browser Viewing ​

  • HLS and Low-Latency HLS: http://localhost:8888/{camera_id}/index.m3u8
  • Quality choice: source stream, substream and a 720p step on request (variants.m3u8)
  • WebRTC (WHEP) with minimal latency
  • MSE over WebSocket

Archive ​

  • Playback of a recording from any moment: the server finds the right frame itself
  • Export of a stretch and time-lapse, including from recordings spread across nodes

Substreams ​

  • Main stream for full-quality recording
  • Substream for video walls and slow connections
  • URL format: rtsp://localhost:8554/{camera_id}/sub

Cluster ​

  • Several nodes, with cameras moved automatically when a node fails
  • Node roles: recording (recorder) and delivery (streamer)

Configuration ​

  • YAML configuration file with shared defaults and per-camera overrides
  • Cameras from the file, from a conf.d directory or from a database
  • Changes applied on the fly, without a restart

Architecture ​

ForgeVis uses a hub-based architecture for efficient resource usage:

Camera (RTSP) → StreamHub → Recorder (fMP4 / MP4 files)
                         ├→ RTSP Server (restream to clients)
                         ├→ HLS (browsers)
                         └→ WebRTC (browsers)

How it works:

  1. StreamHub: Maintains single RTSP connection per camera
  2. Broadcast: Distributes frames to multiple consumers efficiently
  3. Recorder: Subscribes to hub, writes segments to disk
  4. RTSP, HLS, WebRTC: Subscribe to hub and serve the stream to clients

All components share the same video stream without additional camera connections.

Idle Timeout ​

ForgeVis automatically disconnects from a camera when there are no subscribers:

  • Configurable idle timeout (default 10 seconds for the RTSP server)
  • Camera resources saved while nobody needs the stream
  • Automatic reconnect when clients appear again

Use Cases ​

  • Multi-client viewing: One camera feed to multiple viewers
  • Recording + monitoring: Record to disk while streaming to clients
  • Storage optimization: Fragmented MP4 for efficient playback and streaming
  • Edge processing: Single connection to camera, multiple local consumers
  • Recording and delivery on separate servers: recording servers + servers that serve viewers

Getting Started ​

Ready to try ForgeVis? Head to the Quick Start guide.

Resources ​

Proprietary software.