A Go application for monitoring and tracking the availability of Real-time Transport Protocol (RTP) streams in your network. The application discovers and displays stream information by subscribing to the actual stream data.
- Terminal User Interface: Interactive TUI for real-time monitoring
- Stream Discovery: Discover streams via mDNS, SAP, or static SDP files
- Live VU Meters: Real-time audio level visualization
- RTCP log: Detailed per-streamRTCP packet analysis
- Real-time Updates: Periodic refresh of stream status and statistics
- WAV Recording: Record selected stream to a WAV file
- PTP Monitor: If started with sufficient privileges, PTP time transmitters will be monitored and their equivalent RTP timestamp will be displayed in the stream details view.
- FPGA RX streaming: Support for Ravenna FPGA stream receiver (only available on Linux with special hardware)
- Go 1.21 or later
git clone https://github.com/holoplot/rtp-monitor.git
cd rtp-monitor
go mod download
go build -o rtp-monitorThe project includes a Makefile for easy development:
make build # Build the application
make run # Build and run the application
make clean # Clean build artifacts
make test # Run tests
make version # Show version information
make release # Build for multiple platformsThe application uses git describe to automatically determine version information:
- On a git tag:
v1.0.0 - After a tag:
v1.0.0-5-gabcdef0(5 commits after v1.0.0) - With changes:
v1.0.0-5-gabcdef0-dirty - No tags:
abcdef0(commit hash only)
# Check embedded version info
./rtp-monitor version
# Output: v1.0.0-2-gabcdef0 (commit: abcdef0, built: 2025-09-11 14:30:00 UTC, go: go1.24.6)
# Build with custom version (optional)
make build VERSION=v2.0.0-custom
# View build variables
make versionLaunch the interactive terminal interface:
./rtp-monitorYou can also load SDP files for manual stream configuration:
./rtp-monitor --sdp stream1.sdp --sdp stream2.sdpUsage:
rtp-monitor [flags]
Flags:
-h, --help help for rtp-monitor
--interface stringArray Network interface to use (can be used multiple times)
--no-mdns Disable mDNS discovery
--no-sap Disable SAP discovery
--sdp stringArray SDP file to parse (can be used multiple times)
-v, --version version for rtp-monitor
--wav string Folder to save WAV files↑ork: Move selection up↓orj: Move selection downHome: Go to first streamEnd: Go to last streamPage Up: Move up one pagePage Down: Move down one page
c: Copy selected stream's SDP to clipboardd: Show detailed information for selected streamf: Show FPGA RX modal for selected stream (Linux only)r: Show RTCP logs for selected streamR: Record selected stream to a WAV filev: Show live VU meters for selected audio streamq,Ctrl+C, orEsc: Quit application
↑ork: Move modal content up↓orj: Move modal content downEsc,x: Close modal and return to main view
- Cobra: CLI framework
- Bubble Tea: Terminal UI framework
- Lipgloss: Terminal styling
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
