Skip to content

Simple-DVR

Simple-DVR (optional) — lightweight DVR/Media Server for RTSP cameras

Simple-DVR is a lightweight Node.js + FFmpeg DVR service that provides:

  • live HLS streaming from RTSP cameras;
  • archive playback by time range;
  • MP4 archive export;
  • automatic retention cleanup via retentionDays.

Repository: https://github.com/rosteleset/Simple-DVR

How it works (brief)

  • Starts one ffmpeg process per camera from config.json.
  • Stores segments in /var/dvr/<camera>/YYYY-MM-DD/HH/*.m4s.
  • Serves live and archive playlists over HTTP.
  • Generates minute preview clips.
  • Runs cleanup in a dedicated worker thread (cleanup-worker.js).

Main HTTP endpoints

  • GET /:camera/live.m3u8 (aliases: index.m3u8, video.m3u8, *.fmp4.m3u8)
  • GET /:camera/dvr.m3u8?start=<ISO>&end=<ISO>
  • GET /:camera/archive-:from-:duration.mp4
  • GET /:camera/recording_status.json
  • GET /:camera/:yyyy/:mm/:dd/:HH/:MM/:SS-preview.mp4

For full API and deployment details, see INSTALL.md in the repository.