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-monitor
The 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 platforms
The 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 version
Launch the interactive terminal interface:
./rtp-monitor
You can also load SDP files for manual stream configuration:
./rtp-monitor --sdp stream1.sdp --sdp stream2.sdp
Usage:
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.