Stream Profiles
Stream profiles define how Dispatcharr processes streams before delivering them to clients. Each channel can be assigned a profile.Built-in Profiles
Dispatcharr includes these locked (read-only) profiles:FFmpeg Transcode
FFmpeg Transcode
Command: Use case: Transcode to H.264 with controlled bitrate for bandwidth management.
ffmpegParameters:FFmpeg Copy (Direct Stream)
FFmpeg Copy (Direct Stream)
Command: Use case: Direct copy without transcoding (lowest CPU, no quality loss).
ffmpegParameters:Streamlink
Streamlink
Command: Use case: Handle streams from YouTube, Twitch, and other platforms that require protocol handling.
streamlinkParameters:VLC
VLC
Command: Use case: Alternative streaming backend with broad codec support.
vlcParameters:Proxy (No Processing)
Proxy (No Processing)
Command:
proxyParameters: (none)Use case: Direct proxy with no transcoding or processing.Redirect
Redirect
Command:
redirectParameters: (none)Use case: HTTP 302 redirect to original stream URL.Creating Custom Profiles
Create new profile
Click New Profile and configure:
- Name: Descriptive name (e.g., “Low Bandwidth”)
- Command: Select built-in tool or choose Custom
- Parameters: Command-line arguments with placeholders
- User Agent: Optional custom user agent
- Active: Enable the profile
Parameter Placeholders
Use these placeholders in profile parameters:| Placeholder | Description | Example |
|---|---|---|
{streamUrl} | Original stream URL | http://provider.com/live/stream |
{userAgent} | User agent from profile settings | Mozilla/5.0 ... |
FFmpeg Transcoding Options
Quality Tiers
Create profiles for different quality levels:High Quality (1080p)
High Quality (1080p)
- Video: H.264, 6 Mbps, 1080p
- Audio: AAC, 192 kbps
- Target: High-speed connections, large screens
Medium Quality (720p)
Medium Quality (720p)
- Video: H.264, 3 Mbps, 720p
- Audio: AAC, 128 kbps
- Target: Standard connections, tablets
Low Bandwidth (480p)
Low Bandwidth (480p)
- Video: H.264, 1 Mbps, 480p
- Audio: AAC, 64 kbps
- Target: Mobile networks, low-bandwidth connections
Mobile Optimized (360p)
Mobile Optimized (360p)
- Video: H.264, 500 kbps, 360p
- Audio: AAC, 48 kbps
- Target: Smartphones, very low bandwidth
Hardware Acceleration
Leverage GPU encoding for better performance:Intel QuickSync (VA-API)
Intel QuickSync (VA-API)
NVIDIA NVENC
NVIDIA NVENC
AMD AMF (VA-API)
AMD AMF (VA-API)
Audio Processing
Audio Normalization
Audio Normalization
Stereo Downmix
Stereo Downmix
Audio-Only Stream
Audio-Only Stream
Advanced Configurations
H.265/HEVC Encoding
Better compression than H.264, but requires client support:Deinterlacing
For interlaced sources (1080i, 720i):Subtitle Burn-In
Burn subtitles into video stream:Multi-Audio Track Selection
Select specific audio track:Streamlink Profiles
Streamlink excels at handling platform-specific streams:YouTube Live
Twitch with OAuth
Use
shlex.split() parsing for parameters with quotes. Dispatcharr handles this automatically.Custom Plugin
Performance Tuning
CPU Priority
Set process priority for streaming:docker-compose.yml
FFmpeg Presets
Balance quality vs. CPU usage:| Preset | CPU Usage | Latency | Quality |
|---|---|---|---|
ultrafast | Very Low | Lowest | Lower |
veryfast | Low | Low | Good |
fast | Medium | Medium | Better |
medium | High | Higher | Best |
Buffer Sizes
Optimize buffering for network conditions:Default Stream Profile
Set the default profile for new channels:- Go to Settings → Core Settings
- Find Default Stream Profile
- Select your preferred profile
Multi-Profile Strategy
Create multiple profiles for different use cases:| Profile Name | Use Case | Settings |
|---|---|---|
| Direct | LAN, high bandwidth | FFmpeg copy |
| Standard | WAN, mixed clients | 720p, 3 Mbps |
| Mobile | Smartphones, 4G/5G | 480p, 1 Mbps |
| Satellite | High latency links | Lower buffer, faster preset |
| Audio Only | Radio channels | Audio extraction |
Troubleshooting
Stream buffering constantly
Stream buffering constantly
- Reduce bitrate in profile parameters
- Use faster preset (
veryfast,ultrafast) - Enable hardware acceleration
- Check CPU usage during streaming
Video quality poor
Video quality poor
- Increase bitrate (
-b:v 5000k) - Use slower preset (
fast,medium) - Check source stream quality
- Verify resolution scaling is correct
Hardware acceleration not working
Hardware acceleration not working
- Verify GPU devices are mounted in Docker
- Check FFmpeg supports your GPU (
ffmpeg -hwaccels) - Review Docker logs for hardware errors
- Ensure correct group permissions (
video,render)
Audio sync issues
Audio sync issues
- Add
-async 1to FFmpeg parameters - Use
-vsync 1for variable frame rate sources - Check source stream for timestamp issues
Reference Implementation
See the stream profile source code:- Model:
core/models.py:41 - Stream Handler:
core/views.py:139 - Profile Settings:
core/models.py:205