Overview
TCP Streamer on Linux supports both ALSA and PulseAudio for flexible audio capture. This guide covers installation via .deb packages and AppImage, system audio configuration, and Linux-specific optimizations.Installation
Debian/Ubuntu (.deb Package)
The recommended installation method for Debian-based distributions:Download the .deb package
Download the latest
.deb file from the Releases Page.Available for:- amd64 (64-bit Intel/AMD)
- arm64 (64-bit ARM, Raspberry Pi 4+)
Install via apt
Open terminal and navigate to your downloads directory:
The
./ prefix is important - it tells apt to install from the current directory.Updating to a New Version
Do not double-click the .deb file if you already have an older version installed. The GUI installer may fail to detect upgrades. Correct update method:apt will automatically detect the installed version and upgrade it in-place, preserving your settings.
Troubleshooting Package Conflicts
If you see “Conflicts with existing package”:AppImage (Universal)
For non-Debian distributions or portable installation:Download the AppImage
Download the
.AppImage file from the Releases Page.Optional: Integrate with system (AppImageLauncher)
Install AppImageLauncher to integrate AppImages with your desktop environment.
System Requirements
- OS: Ubuntu 20.04+, Debian 11+, Fedora 35+, Arch Linux
- RAM: 100 MB minimum
- Architecture: x86_64 (amd64) or ARM64
- Audio: ALSA or PulseAudio
- Network: Stable connection to TCP server
Build Dependencies (for building from source)
If building from source, install these dependencies: Ubuntu/Debian:Audio Capture Methods
PulseAudio Monitors (Recommended)
PulseAudio provides “monitor” sources that capture system audio output:List available sources
.monitor in the name:alsa_output.pci-0000_00_1f.3.analog-stereo.monitoralsa_output.usb-Generic_USB_Audio-00.analog-stereo.monitor
Select monitor in TCP Streamer
In TCP Streamer’s Input Device dropdown, select the monitor source corresponding to your output device.Example:
- If your speakers are “Built-in Audio Analog Stereo”
- Select “Built-in Audio Analog Stereo (Monitor)”
PulseAudio monitors capture audio before volume control, so even muted systems will stream audio.
ALSA Loopback
For systems without PulseAudio:Microphone Input
For capturing microphone or line-in:- Select your microphone device in TCP Streamer’s Input Device dropdown
- Adjust volume using
pavucontrol(PulseAudio) oralsamixer(ALSA)
Configuration
Optimal Settings for PulseAudio
PulseAudio provides excellent timing stability:- Ethernet (Wired)
- WiFi (Good Signal)
- WiFi (Poor Signal)
For stable wired connections:
- Sample Rate: 48 kHz
- Buffer Size: 512 samples
- Ring Buffer: 2000ms
- Adaptive Buffer: Enabled
- Min: 1000ms
- Max: 4000ms
- Expected Latency: 1-2 seconds
Network Presets
Use the Advanced tab for quick configuration:| Preset | Ring Buffer | Chunk Size | Adaptive Range | Best For |
|---|---|---|---|---|
| Ethernet | 2000ms | 512 | 2-6s | Wired connections |
| WiFi | 4000ms | 1024 | 3-10s | Standard WiFi |
| WiFi (Poor) | 8000ms | 2048 | 5-15s | Weak signal |
Sample Rate Considerations
- 48 kHz - Recommended for modern systems, video sync
- 44.1 kHz - Standard for music, slightly lower CPU usage
Performance & Optimization
CPU Usage
TCP Streamer is lightweight on Linux:- Idle: <1% CPU
- Streaming: 1-3% CPU
- Memory: 2-4 MB typical
Reducing CPU Usage
- Increase buffer size to 2048 samples
- Lower sample rate to 44.1 kHz
- Close unnecessary background processes
- Use PulseAudio instead of ALSA (better buffering)
Real-time Priority (Advanced)
For professional audio or low-latency requirements:Real-time priority is usually unnecessary unless running professional audio applications or experiencing severe jitter.
Troubleshooting
Audio Device Not Found
Problem: No audio devices appear in dropdown Solutions:No Audio Capture (Monitor)
Problem: Monitor source selected but no audio captured Solutions:-
Verify monitor source:
Ensure the monitor corresponds to your active output device.
-
Check audio is playing:
Should show active audio streams.
-
Test monitor directly:
You should hear your system audio.
-
Restart PulseAudio:
Connection Issues
Problem: “Failed to connect to TCP server” Solutions:Audio Stuttering or Dropouts
Problem: Audio cuts out or stutters during streaming Solutions:AppImage Issues
Problem: AppImage fails to run Solutions:-
Enable FUSE:
-
Extract and run:
-
Check architecture:
Ensure you downloaded the correct version (x86_64 or aarch64).
Permission Denied Errors
Problem: “Permission denied” when accessing audio device Solutions:-
Add user to audio group:
Log out and log back in.
-
Check device permissions:
Devices should be owned by
audiogroup. -
Disable PulseAudio sandboxing (if using Flatpak/Snap):
Automation
Auto-start on Login
Enable Auto-start on launch in TCP Streamer settings, or manually:- GNOME/Unity
- KDE Plasma
- Manual (systemd)
- Open Startup Applications
- Click Add
- Name:
TCP Streamer - Command:
tcp-streamer(or path to AppImage) - Click Save
Auto-stream Configuration
For fully automated operation:- Enable Auto-start on launch - Start with system
- Enable Auto-stream - Begin streaming immediately
- Enable Auto-reconnect - Retry connection on failure
- Set silence detection - Pause during silence
Advanced Features
PulseAudio Configuration
Optimize PulseAudio for streaming:Reduce Latency
Edit/etc/pulse/daemon.conf:
Set Default Source
Force TCP Streamer to use specific source:ALSA Configuration
For advanced ALSA setups, edit~/.asoundrc:
QoS (Quality of Service) Tagging
- Navigate to Advanced tab
- Select QoS preset:
- VoIP (EF) - Highest priority
- Low Delay - Expedited forwarding
- Throughput - Bulk transfer
QoS requires router support and proper iptables rules to be effective on Linux.
Best Practices
For Multi-room Audio (Snapcast)
- Use PulseAudio monitor for system audio
- Apply WiFi preset (4s buffer)
- Enable Auto-reconnect
- Set silence timeout to 300 seconds (5 minutes)
- Enable Adaptive Buffer (3s - 10s)
For Raspberry Pi
- Use .deb package for ARM64
- Apply WiFi (Poor) preset for stability
- Enable Auto-reconnect
- Use PulseAudio for easier configuration
- Consider overclocking for better performance:
For Low-latency Applications
- Use wired Ethernet connection
- Apply Ethernet preset (2s buffer)
- Set buffer size to 512 samples
- Use 48 kHz sample rate
- Configure real-time priority (see Performance section)
Distribution-Specific Notes
Ubuntu/Debian
- Use
.debpackage for best integration - PulseAudio pre-installed on desktop editions
- Update via
aptas shown above
Fedora
- Convert
.debto.rpmusingalien: - Or use AppImage
Arch Linux
- Use AppImage or build from source
- Install dependencies via
pacman(see Build Dependencies) - Consider creating AUR package
Raspberry Pi OS
- Use ARM64
.debpackage (Raspberry Pi 4+) - Enable hardware audio:
- Increase GPU memory:
Additional Resources
- PulseAudio Documentation
- ALSA Project
- General Configuration Guide
- Troubleshooting Guide
- GitHub Issues
- Snapcast Integration
Platform: Linux (Ubuntu 20.04+, Debian 11+, Fedora, Arch) Audio APIs: ALSA, PulseAudio Native Loopback: Yes (PulseAudio monitors) Typical Latency: 1-3 seconds (wired) | 3-6 seconds (WiFi)