LyreBirdAudio
Production-hardened RTSP audio streaming for USB microphones. 24/7 reliability with automatic recovery, persistent device naming, and comprehensive diagnostics โ built entirely in Bash.
What is LyreBirdAudio?
LyreBirdAudio turns USB microphones into reliable, always-on RTSP audio streams. Built on top of MediaMTX and FFmpeg, it handles every aspect of long-term unattended operation: device persistence across reboots, automatic stream recovery, health monitoring, alerting, and metrics export โ all without requiring Docker, Python runtimes, or complex dependencies.
Originally created to monitor bird activity using USB microphones on spare mini PCs, it has grown into a complete, production-hardened streaming suite suitable for wildlife monitoring, environmental sensing, security audio, and any scenario requiring continuous, reliable audio capture.
Key Features
- Persistent USB device naming via udev
- Automatic stream recovery & restart
- Hardware capability auto-detection
- Interactive setup wizard (Orchestrator)
- Systemd service with watchdog
- Cron-based health monitoring
- Multiplex streaming (amix / amerge)
- Opus, AAC, PCM codec support
- Prometheus metrics export
- Webhook alerts (Discord, Slack, ntfyโฆ)
- Storage management & retention
- Git-based version management
- Atomic config file operations
- Comprehensive diagnostic suite
- Optional RTSP authentication & TLS
- No Docker, no Python, pure Bash
Architecture Overview
At its core, LyreBirdAudio uses FFmpeg to capture audio from ALSA devices and push RTSP streams to MediaMTX, which serves them to any RTSP-compatible client. USB devices are given permanent names through udev rules, so streams keep their names across reboots even when USB enumeration order changes.
| Layer | Technology | Role |
|---|---|---|
| Clients | VLC, FFplay, OBS, custom | Consume RTSP streams |
| Media Server | MediaMTX | RTSP / WebRTC / HLS serving |
| Capture | FFmpeg + ALSA | Audio encoding & publishing |
| Device Layer | udev rules | Persistent USB device names |
| Management | Bash scripts + systemd | Lifecycle, recovery, monitoring |
Components at a Glance
Get Streaming in 5 Minutes
-
Clone the repository
git clone https://github.com/tomtom215/LyreBirdAudio.git cd LyreBirdAudio chmod +x *.sh -
Launch the setup wizard
sudo ./lyrebird-orchestrator.sh # Select: Quick Setup Wizard -
Access your streams
rtsp://your-server-ip:8554/device-name
The wizard installs MediaMTX, maps USB devices, generates an optimal configuration, starts streams, and runs initial diagnostics โ all in one guided flow. See the Quick Start guide for more detail.
Platform Support
| Platform | Support | Notes |
|---|---|---|
| Ubuntu 20.04+ | โ Recommended | Primary development platform |
| Debian 11+ | โ Supported | Fully tested |
| Raspberry Pi OS | โ Supported | Max 2 USB mics recommended |
| Intel N100 Mini PC | โ Recommended | 4+ mics, best stability |
| macOS / Windows | โ Not supported | Linux-specific udev required |
Project Info
| License | Apache 2.0 |
| Language | Bash 4.0+ |
| Author | Tom F (tomtom215) |
| GitHub | tomtom215/LyreBirdAudio |
| Issues | GitHub Issues |
| Discussions | GitHub Discussions |