# Deltacast SDI Recorder Web-based recording suite for Deltacast SDI capture cards. Multi-port recorder with real-time preview, SRT streaming, and SCTE35/104 ad marker injection. ## Features - **Multi-port recording** — Independent recorders for up to 4 SDI ports - **Codec support** — ProRes, DNxHD, H.264, Uncompressed (MXF output) - **SRT streaming** — Simultaneous file recording + SRT stream output - **SCTE35/104 ad markers** — Binary cue injection + webhook triggering - **Live preview** — Low-latency HLS preview per port (5s latency) - **Web GUI** — React 18 + TypeScript frontend with real-time status ## Requirements - Deltacast SDI capture card(s) with VideoMaster SDK and FFmpeg plugin installed - Docker + Docker Compose - Devices: `/dev/deltacast0` through `/dev/deltacast3` ## Quick Start ```bash git clone https://forge.wilddragon.net/zgaetano/deltacast-sdi-recorder cd deltacast-sdi-recorder docker compose up -d ``` Access the GUI at: **http://localhost** ## Configuration Copy and edit the backend environment file: ```bash cp backend/.env.example backend/.env ``` Key variables: | Variable | Default | Description | |----------|---------|-------------| | `DELTACAST_PORT_COUNT` | `4` | Number of SDI ports | | `RECORDING_DIR` | `/recordings` | Output directory | | `SRT_LATENCY` | `5000` | SRT latency in ms | | `LOG_LEVEL` | `INFO` | Logging verbosity | ## Architecture ``` ┌─────────────────────────────────────────────┐ │ Browser (React GUI) │ │ - Port status cards (real-time via WS) │ │ - HLS video preview per port │ │ - SCTE35 ad break injection │ │ - Per-port codec/destination config │ └──────────────┬──────────────────────────────┘ │ HTTP/WebSocket (Nginx proxy) ┌──────────────▼──────────────────────────────┐ │ FastAPI Backend │ │ ├── RecorderManager (4x PortRecorder) │ │ │ └── FFmpeg subprocess per port │ │ ├── SCTE35Manager (binary + webhook) │ │ ├── HLSPreviewManager (HLS transcode) │ │ └── SRTStreamer (independent SRT output) │ └──────────────┬──────────────────────────────┘ │ deltacast:// device ┌──────────────▼──────────────────────────────┐ │ Deltacast SDI Card (VideoMaster SDK) │ │ Ports 0-3 → FFmpeg Deltacast plugin │ └─────────────────────────────────────────────┘ ``` ## Development ```bash # Backend (Python) cd backend pip install -r requirements.txt cp .env.example .env uvicorn app.main:app --reload # Frontend (Node) cd frontend npm install npm run dev ``` Run backend tests: ```bash cd backend pytest tests/ -v ```