A comprehensive solution that turns a standard PC into a multi-channel audio streaming server for local area networks (LAN). This project provides a web-based application that orchestrates FFmpeg and Icecast to deliver local, live, low-latency audio broadcasts for events like language interpretation, meetings, or conferences.
The easiest way to get started - no command line needed!
You need these three programs installed first:
- Node.js: Download from https://nodejs.org/ (choose "LTS" version)
- FFmpeg & Icecast: See our Installation Guides for step-by-step instructions
- Download: Go to https://github.com/jerryagenyi/LANStreamer
- Get ZIP: Click the green "Code" button β "Download ZIP"
- Extract: Right-click the ZIP file β "Extract All" or "Extract Here"
- Open Folder: Navigate to the extracted
LANStreamerfolder
- Double-click:
Start LANStreamer Server.bat - Wait: The system will automatically install dependencies and start (if the terminal window disappears, just double-click the file again, and you should be up and running) - do not close the terminal, else LANSteamer Server session will end
- Note the URLs: The terminal will show your network addresses
- Admin Dashboard: Visit
http://YOUR-IP:3001(login required) - Listener Page: Visit
http://YOUR-IP:3001/streams(public access for your audience)
Default Admin Credentials:
- Username:
admin - Password:
lanstreamer123 β οΈ CRITICAL: Change these immediately in your.envfile for security!
# Clone the repository
git clone https://github.com/jerryagenyi/LANStreamer.git
cd LANStreamer
# Install dependencies
npm install
# Start the server
npm startThen visit http://localhost:3001 for the admin dashboard.
- Operating System: Windows 10/11
- Node.js: Version 18 or higher (Download here)
- Audio Input: Any audio device (built-in microphone, USB microphone, audio interface, etc.)
- FFmpeg: Audio/video processing toolkit (Official site)
- Icecast: Open-source streaming media server (Official site)
# Install FFmpeg
winget install FFmpeg
# Install Icecast (download from official site)
# Visit: https://icecast.org/download/
# Download Windows installer and run itVerify Installation:
# Check FFmpeg
ffmpeg -version
# Check Icecast (Windows)
cd "C:\Program Files (x86)\Icecast\bin"
icecast.exe -vCommon Issue: When you first install Icecast and try to use it, you may get this error:
FATAL: could not open error logging (./log\error.log): No such file or directory
Solution: Update the log directory path in your icecast.xml configuration file:
- Navigate to your Icecast installation folder (usually
C:\Program Files (x86)\Icecast) - Open
icecast.xmlin a text editor - Find the
<paths>section and locate the<logdir>tag - Get the full path to your log folder:
- Navigate to the Icecast root folder
- Right-click on the
logfolder - Select "Copy as path" (or similar option)
- Update the
<logdir>tag with the full path:
<paths>
<logdir>C:\Program Files (x86)\Icecast\log</logdir>
<!-- other path configurations -->
</paths>Example: If your Icecast is installed at C:\Program Files (x86)\Icecast, the log directory should be:
<logdir>C:\Program Files (x86)\Icecast\log</logdir>π‘ Tip: Make sure the log directory exists and Icecast has write permissions to it.
LANStreamer creates a complete audio streaming ecosystem with two main interfaces and three core components:
The control center where administrators:
- Manage Streams: Create, Start, and Stop audio streams
- Monitor System: Check FFmpeg and Icecast status in real-time
- Configure Settings: Set up event details and contact information for support
- View Analytics: Monitor active streams and system performance
The user-friendly page where listeners:
- Browse Streams: See all available audio streams
- Listen Live: Click to play any stream instantly
- Mobile Friendly: Works on phones, tablets, and computers
- No Apps Required: Just open in any web browser
- Audio Input: Any detected audio device (microphone, audio interface, virtual audio cable) provides audio to the host PC
- FFmpeg: This powerful tool reads the audio channels, encodes them, and pushes them to the streaming server
- Icecast: The open-source streaming server that broadcasts the streams to any connected client on the network
Perfect for:
- Language Interpretation: Multiple language channels for conferences
- Meeting Audio: Professional audio distribution for events
- Training Sessions: Audio streaming for educational content
- Local Broadcasting: Any situation requiring reliable, low-latency audio distribution
LANStreamer comes with default admin credentials that you MUST change for security:
- Copy
env.exampleto.env(if not already done) - Edit the
.envfile and change:ADMIN_USERNAME=your-new-usernameADMIN_PASSWORD=your-strong-password
- Restart LANStreamer
Example Strong Passwords:
MySecureLANStreamer2024!AudioStreaming@2024#SecureLANStreamer-Admin-Pass123!
- Double-click
Update LANStreamer.batin your installation folder - Follow the prompts - the script will backup your configuration and install updates
git pull origin main
npm install # If dependencies changedLANStreamer/
βββ Start LANStreamer Server.bat # Windows startup batch file
βββ README.md # This file - project overview
βββ package.json # Node.js dependencies and scripts
βββ src/ # Backend Node.js application
β βββ server.js # Main server entry point
β βββ routes/ # API route handlers
β βββ services/ # Core business logic
βββ public/ # Frontend web interface
β βββ index.html # Admin dashboard
β βββ streams.html # User streams page
β βββ components/ # Modular UI components
βββ config/ # Configuration files
βββ logs/ # Application logs
βββ docs/ # Documentation and guides
Problem: "npm not found"
- Solution: Install Node.js from nodejs.org
Problem: "Port 3001 already in use"
- Solution: Close other applications using port 3001, or edit
.envto changePORT=3001to another port
Problem: "No audio devices detected"
- Solution: Ensure your microphone/audio device is connected and working in your system settings
Problem: "Icecast installation not found"
- Option 1 (Easiest): Move your Icecast to
C:\Program Files (x86)\Icecast - Option 2: Click "Browse for Icecast" in the dashboard to select your installation
- Option 3: Add your custom path to the
.envfile (seeenv.examplefor variables)
Need more help? Check the Installation Guides for detailed troubleshooting.
- Installation Guides - Detailed setup and troubleshooting
- Network Setup Guide - Static IP configuration for live events
- Manual Setup - Hardware-specific configuration guides
- Comprehensive Documentation (TLDR) - Detailed technical information and complete setup guide
We welcome contributions! Fork the repository, make your changes, and create a pull request.
For bug reports, include your OS, Node.js version, and steps to reproduce the issue.
This project is licensed under the MIT License - see the LICENSE file for details.
If you need help:
- Check the Installation Guides first
- Review the troubleshooting section above
- Create an issue on GitHub with detailed information about your setup
LANStreamer - Professional audio streaming for local networks. Perfect for conferences, meetings, and events requiring reliable multi-channel audio distribution.