Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

HydraSRT

HydraSRT

An open-source alternative to Haivision SRT Gateway.
Report Bug · Request Feature

Status

Project Status: Beta.

GitHub License

Supported transports

TransportInputOutput
SRT
UDP
RTMP
RTP
NDI

NDI is off by default. It needs the NDI runtime, which is not shipped with HydraSRT and is installed by the operator: see docs/ndi.md.

Planned transports

TransportInputOutput
HLS
WebRTC
MoQ

Capabilities

RTMP output remuxes the route MPEG-TS stream to FLV without decoding. It supports codecs accepted by GStreamer's FLV muxer, such as H.264 video and AAC/MP3 audio.

CapabilityNotesStatus
One-to-many distributionSingle source to multiple unicast/multicast outputsBeta
ReliabilitySource failover and reconnectionBeta
SecuritySRT passphrase and stream IDBeta
ObservabilityPrometheus metrics, route stats, and pipeline logsBeta

Missing a feature? Open an issue.

Overview

HydraSRT operations dashboard

HydraSRT is an open-source alternative to Haivision SRT Gateway for reliable video transport and routing. It manages SRT, UDP, and RTP streams with built-in failover, supervision, metrics, and a modern web UI and API designed for broadcast and live production workflows.

Built with Elixir(Erlang/OTP), Rust, and GStreamer, HydraSRT combines strong fault isolation with lightweight orchestration. The BEAM supervises routing and control logic, while isolated media pipelines run only where active streams are present, providing high reliability with low system overhead.

Architecture

HydraSRT has three layers:

flowchart LR
  UI[React UI] -->|REST/WebSocket| API[Phoenix API]
  API --> Control[Elixir/OTP Supervisor]
  Control -->|spawns & monitors| Pipeline1[Rust Pipeline 1]
  Control -->|spawns & monitors| Pipeline2[Rust Pipeline 2]
  Control -->|spawns & monitors| PipelineN[Rust Pipeline N]
  Control --> SQLite[(SQLite Config)]
  Control --> VictoriaMetrics[(VictoriaMetrics)]
  Control --> VictoriaLogs[(VictoriaLogs)]

Management & Control (Elixir/OTP)

  • Supervises routes and restarts failed route processes
  • Stores configuration and route state in SQLite
  • Exposes REST and WebSocket APIs
  • Handles failover and source switching

Streaming & Processing (Rust + GStreamer)

  • Runs each route as an isolated OS process
  • Uses GStreamer for media processing
  • Keeps pipeline crashes limited to the affected route

User Interface (React + Vite)

  • Route management dashboard
  • Real-time status over WebSocket
  • Historical metrics and logs

See docs/architecture.md for details.

Quick Start

Docker

docker compose up

Open http://127.0.0.1:4000 and log in with admin / password123.

The default Compose file uses Linux host networking. If your Docker Engine cannot use Linux host networking, run with explicit port mappings:

docker compose -f docker-compose.yml -f docker-compose.ports.yml up

Host networking is intended for native Linux, including WSL2 only when Docker Engine runs inside the WSL distro.

Local Development

# First-time setup
mix setup

# Start dev server (Elixir + Vite)
make dev

Web UI: http://localhost:5173.

Setup, deployment, and troubleshooting: docs/development.md.

Features

  • SRT source and destination modes: Listener, Caller, Rendezvous
  • UDP sources and destinations
  • RTP (TS over RTP) sources
  • SRT authentication with passphrase and stream ID support
  • Source failover with primary + backup sources, automatic failover, and manual source switching
  • System metrics via Prometheus /metrics
  • Historical analytics and route events stored in VictoriaMetrics
  • Historical pipeline logs stored in VictoriaLogs
  • Real-time route status updates over WebSocket

Documentation

DocumentPurpose
docs/development.mdSetup, deployment, and Docker guide
docs/architecture.mdSystem design and technical details
docs/api.mdREST API documentation
docs/mcp.mdMCP server, tokens, and client setup
docs/envs.mdEnvironment variables reference
docs/ndi.mdInstalling and enabling NDI

Contributing

See CONTRIBUTING.md for contribution guidelines.

License

Apache 2.0. See LICENSE.

Inspiration

Contact

Use GitHub issues: https://github.com/streamband/hydra-srt/issues

关于 About

HydraSRT – An Open Source Alternative to Haivision SRT Gateway
elixirgstreamerlive-streaminglow-latencymultimediartmprustsrtsrt-gateway

语言 Languages

Elixir58.4%
TypeScript28.6%
Rust12.1%
Makefile0.5%
Dockerfile0.2%
CSS0.1%
Shell0.1%
HTML0.0%
Batchfile0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
179
Total Commits
峰值: 35次/周
Less
More

核心贡献者 Contributors