A containerized BirdNET-Pi installation optimized for Windows 11 Docker Desktop, featuring RTSP stream support with TCP transport fixes and advanced audio processing capabilities.
- π¦ Automated Bird Detection: Real-time bird species identification using BirdNET AI
- π‘ RTSP Stream Support: Direct integration with Raspberry Pi camera/microphone streams
- π§ TCP Transport Fix: Permanent solution for RTSP connection reliability
- π΅ Advanced Audio Processing: PulseAudio echo cancellation and noise reduction
- π₯οΈ Windows 11 Optimized: Specifically configured for Docker Desktop on Windows
- π Sleep/Wake Resilient: Automatic recovery from system sleep cycles
- π Live Streaming: Icecast audio streaming for real-time monitoring
- π Web Interface: Comprehensive dashboard for monitoring and configuration
- Quick Start
- System Requirements
- Installation
- Configuration
- Audio Processing
- Troubleshooting
- Contributing
- License
-
Clone this repository:
git clone https://github.com/harrymnel/birdnet-pi-docker.git cd birdnet-pi-docker
-
Configure your RTSP stream:
# Edit config/birdnet.conf RTSP_STREAM=rtsp://YOUR_PI_IP:8554/your_stream_path LATITUDE=your_latitude LONGITUDE=your_longitude -
Start the container:
docker-compose up -d
-
Access the web interface:
- Main Interface: http://localhost:8001
- Live Stream: http://localhost:8000
- OS: Windows 11 (Windows 10 also supported)
- Docker: Docker Desktop with WSL2 backend
- Memory: Minimum 8GB RAM (16GB recommended)
- Storage: 20GB+ free space for recordings
- Model: Raspberry Pi 3B+ or newer
- OS: Raspberry Pi OS (Bullseye or newer)
- Camera: USB camera or Pi Camera module
- Microphone: USB microphone (recommended with isolator)
- Network: Stable WiFi or Ethernet connection
-
Set up RTSP streaming on your Pi:
# Install required packages sudo apt update sudo apt install ffmpeg # Start RTSP stream (example) ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:1,0 \ -c:v h264_v4l2m2m -c:a aac \ -f rtsp rtsp://0.0.0.0:8554/stream
-
Optional: Set up audio processing (see Audio Processing Guide)
-
Install Docker Desktop:
- Download from docker.com
- Enable WSL2 backend
- Allocate at least 4GB RAM to Docker
-
Clone and configure this repository:
git clone https://github.com/harrymnel/birdnet-pi-docker.git cd birdnet-pi-docker # Copy example configuration copy config\birdnet.conf.example config\birdnet.conf
-
Edit configuration:
# Essential settings in config/birdnet.conf RTSP_STREAM=rtsp://192.168.1.100:8554/stream # Your Pi's IP LATITUDE=-33.9249 # Your location LONGITUDE=18.4241 # Your location CONFIDENCE=0.7 # Detection threshold
# Build the custom container with RTSP fixes
docker-compose build
# Start the service
docker-compose up -d
# Check logs
docker-compose logs -f| Parameter | Description | Example |
|---|---|---|
RTSP_STREAM |
RTSP stream URL from your Pi | rtsp://192.168.1.100:8554/stream |
LATITUDE |
Your geographic latitude | -33.9249 |
LONGITUDE |
Your geographic longitude | 18.4241 |
CONFIDENCE |
Detection confidence threshold | 0.7 |
SENSITIVITY |
Analysis sensitivity | 1.25 |
For detailed configuration options, see:
This repository includes advanced audio processing capabilities:
- Echo Cancellation: PulseAudio WebRTC-based noise reduction
- Frequency Filtering: Optimized for bird call frequency ranges (150Hz-15kHz)
- Dynamic Range Compression: Logarithmic amplification for better sensitivity
- Species Correction: Post-processing rules for common misidentifications
-
On Raspberry Pi (recommended):
# SSH to your Pi and run: curl -sSL https://raw.githubusercontent.com/harrymnel/birdnet-pi-docker/main/scripts/setup_pi_audio.sh | bash
-
Verify audio processing:
pactl list sources short # Should show 'processed_microphone'
See Audio Processing Guide for detailed setup.
# Check RTSP stream accessibility
ffplay rtsp://YOUR_PI_IP:8554/stream
# If connection fails, the TCP transport fix should resolve it
docker-compose logs | Select-String "READ.*CHUNKS"# Check Docker resources
docker system df
# Verify configuration
docker-compose config
# Check logs
docker-compose logs birdnet-piThe container includes automatic recovery from Windows sleep cycles. If issues persist:
# Manual restart after sleep
docker-compose restart
# Check container health
docker-compose ps- Check the Troubleshooting Guide
- Review container logs:
docker-compose logs -f - Open an issue
birdnet-pi-docker/
βββ docker-compose.yml # Container orchestration
βββ Dockerfile # Custom image with RTSP fixes
βββ config/ # BirdNET-Pi configuration
β βββ birdnet.conf # Main configuration file
β βββ BirdSongs/ # Recorded bird data
β βββ species_lists/ # Species include/exclude lists
βββ docs/ # Documentation
β βββ CONFIGURATION.md # Detailed configuration guide
β βββ TROUBLESHOOTING.md # Common issues and solutions
β βββ AUDIO_PROCESSING.md # Audio enhancement setup
βββ scripts/ # Utility scripts
βββ ssl/ # SSL certificates (optional)
The Dockerfile includes permanent fixes for RTSP TCP transport:
- Recording script fix: Ensures reliable audio capture
- Livestream script fix: Enables stable live streaming
- Health monitoring: Automatic container recovery
- Cleanup utilities: Post-sleep system recovery
# Clone and build
git clone https://github.com/harrymnel/birdnet-pi-docker.git
cd birdnet-pi-docker
docker-compose build --no-cache
# Run with custom configuration
docker-compose up -dWe welcome contributions! Please see CONTRIBUTING.md for guidelines.
- π Bug fixes and stability improvements
- π΅ Audio processing enhancements
- π Documentation improvements
- π§ͺ Testing on different hardware configurations
- π Additional language support
- Urban environments: 15-30 species per day
- Suburban areas: 25-50 species per day
- Rural/natural areas: 40-80+ species per day
- CPU Usage: 15-30% (depends on audio processing)
- Memory: 2-4GB RAM
- Storage: ~100MB per day (varies by activity)
- Network: ~50KB/s average RTSP bandwidth
- BirdNET Team at Cornell Lab of Ornithology for the AI model
- alexbelgium for the original BirdNET-Pi Docker container
- Community contributors for RTSP fixes and optimizations
This project is licensed under the MIT License - see the LICENSE file for details.
- BirdNET-Analyzer - Original BirdNET implementation
- BirdNET-Pi - Raspberry Pi native installation
- BirdNET-Go - Go implementation of BirdNET
π¦ Happy Bird Watching! π¦
For support, please check the documentation or open an issue.