A Qt6 RTSP Stream Viewer
2026-07-13 – 11:43This project is a Qt6 RTSP stream viewer with basic image processing functionality, some motion detection methods and optional FFMPEG recording. This application is using Qt6 VideoSink and QMediaPlayer for playback instead OpenCV::capture.
https://github.com/dennis2society/qt_rtsp_viewer_2

Features
Playback & Multi-Stream
- Tabbed stream interface – display up to 4 RTSP streams simultaneously
- Per-stream URL history – persistent, searchable RTSP URL list
- Per-camera naming – customize display names for each stream
- Independent playback control – play/pause/stop each stream independently
- Stream-specific state – each tab maintains its own effect and recording settings
- Interactive mousewheel zoom – each stream can be zoomed in on a region using your mousewheel!
Image Processing (Real-time, GPU-accelerated where available)
- Blur (Gaussian, configurable kernel size)
- Brightness / Contrast adjustment (LUT-accelerated)
- Colour Temperature correction (warm/cool)
- Grayscale conversion
- Motion Detection (contour-based with configurable sensitivity)
- Motion Vectors (optical flow visualization)
- Face Detection (Haar cascade, real-time overlay)
- Motion Graph (sliding grid-based activity level, per-row stacked bars with colour coding)
Recording
- Manual recording – record any stream on demand
- Auto-record on motion – start/stop recording automatically when motion exceeds threshold
- Configurable motion threshold (0–100 %)
- Configurable stop timeout (1–120 seconds)
- Automatic filename with timestamp + camera name prefix
- Codec selection – per-stream choice of H.264 (libx264) or H.265/HEVC (libx265)
- Raw stream recording – record a stream without re-encoding(and without overlays, requires ffmpeg binary in $PATH)
- Container format – per-stream choice of MP4, MKV, or AVI
- Persistent output folder – global recording directory, shared across all streams
- Optional per-tab output folder