Flex Video¶
Flex Video is a video streaming system built on GStreamer that provides real-time video transcoding, streaming, and distribution capabilities.
Features¶
-
Video Transcoding
Transcode video streams between H.264, H.265, and AV1 codecs with configurable bitrate, resolution, and quality settings.
-
Camera Support
Automatic detection and configuration of V4L2 cameras with hot-plug monitoring and capability enumeration.
-
Stream Announcements
Auto-announce video feeds to CoT/ATAK, TAK Server, Lattice, and mDNS for seamless integration with tactical systems.
-
Framegrab Capture
Capture periodic AVIF still images or motion sequences from video streams for archival or review.
-
Multi-Camera Composition
Compose 1-4 video sources into a single output stream with per-input transforms, crops, and overlays in automatic grid layouts.
-
Audio Encoding
Optional Codec2 voice audio encoding with noise filtering, noise suppression, and automatic gain control for tactical communications.
Quick Start¶
Get Flex Video running in minutes:
- Visit flex.blackwire-ts.com and authenticate (MFA required)
- Click the download link in the upper right of the page
- Transfer the installer to your target device via SSH, USB, or other method
- Run the installer:
- Access the web interface at https://
:8443
Self-Signed Certificate
The installer generates a self-signed TLS certificate. Your browser will show a certificate warning on first visit -- this is expected. Accept the warning to proceed.
Encoder IP
Replace <encoder-ip> with your encoder's IP address throughout the documentation.
Web Browser Required
The download portal is protected by Cloudflare Access. Downloads must be performed through a web browser—CLI tools like curl will not work.
Architecture Overview¶
Flex Video consists of these containers:
| Container | Purpose | Ports |
|---|---|---|
| flex-av1 | GStreamer video processing engine | 8731 (RTSP) |
| flex-mtx | MediaMTX RTSP/RTMP server | 8554 (RTSP), 1935 (RTMP) |
| flex-manager-web | Web UI (HTTPS) | 8443 (HTTPS), 8080 (HTTP redirect) |
| flex-api | REST API (HTTPS) | 3539 (HTTPS) |
| flex-docs | Documentation (this site) | 38082 |
| flex-swagger | Interactive API reference (Swagger UI) | 38081 |
Optional Container
The flex-swagger container is optional and included in some installer configurations. If installed, access the interactive API reference at http://<encoder-ip>:38081.
HTTPS
The web UI and REST API are served over HTTPS using a self-signed certificate generated during installation. Your browser will show a certificate warning on first visit -- this is expected.
graph LR
subgraph Web UI
A["flex-manager-web<br/>:8443 HTTPS"]
end
subgraph REST API
B["flex-api<br/>:3539 HTTPS"]
end
subgraph Ingest Server
C["flex-mtx<br/>:8554 RTSP<br/>:1935 RTMP"]
end
subgraph Video Engine
D["flex-av1<br/>Decode → Encode<br/>:8731 RTSP Out"]
end
A -- "reverse proxy" --> B
B -- "control" --> D
C -- "stream in" --> D The web UI (port 8443) includes a reverse proxy to the REST API, so browser users only need to accept one certificate.
Next Steps¶
- Getting Started - Create your first pipeline
- Installation Guide - Deploy Flex Video
- API Reference - Integrate with the REST API