Documentation > Tutorials > Getting Started
This tutorial walks you through installing, configuring, and running SpiritStream on Windows, macOS, and Linux. No prior streaming experience required.
SpiritStream is an application for streaming to multiple destinations simultaneously. Unlike traditional streaming software that connects directly to a single platform, SpiritStream acts as an RTMP relay server—accepting your stream from encoding software like OBS Studio and redistributing it to YouTube, Twitch, Kick, Facebook, and custom RTMP servers.
SpiritStream can be deployed in multiple ways:
- Desktop App — Download and install for local streaming with GPU acceleration (this tutorial)
- Docker — Self-host on your own server for remote access
- Cloud — Managed service (coming soon)
For Docker deployment, see the Distribution Strategy documentation.
- Content creators new to multi-platform streaming
- Users transitioning from single-destination streaming
- Developers evaluating SpiritStream for integration
- System administrators deploying streaming solutions
By the end of this tutorial, you will be able to:
- Install SpiritStream on your operating system
- Configure FFmpeg for stream processing
- Navigate the application interface
- Create your first streaming profile
- Verify your installation is working correctly
| Component | Minimum | Recommended |
|---|---|---|
| Processor | Dual-core 2 GHz | Quad-core 3 GHz+ |
| Memory | 4 GB RAM | 8 GB RAM |
| Storage | 100 MB free | 500 MB free |
| Network | 10 Mbps upload | 20+ Mbps upload |
Hardware Encoding: For hardware-accelerated transcoding:
- NVIDIA: GTX 600 series or newer (NVENC)
- AMD: RX 400 series or newer (AMF)
- Intel: 6th generation Core or newer (QuickSync)
| Platform | OS Version | Additional Requirements |
|---|---|---|
| Windows | Windows 10 (1903+) | WebView2 Runtime |
| macOS | macOS 11 (Big Sur)+ | Xcode Command Line Tools |
| Linux | Ubuntu 20.04+ | WebKitGTK 4.1 |
SpiritStream requires:
- Outbound connections to RTMP servers (port 1935 or 443 for RTMPS)
- Local RTMP ingest capability (default port 1935)
- Internet access for FFmpeg download (first run only)
-
Navigate to the releases page:
https://github.com/ScopeCreep-zip/SpiritStream/releases -
Download the appropriate installer for your platform:
- Windows:
SpiritStream_x.x.x_x64-setup.msi - macOS:
SpiritStream_x.x.x_x64.dmg - Linux:
SpiritStream_x.x.x_amd64.AppImage
- Windows:
%%{init: {'theme': 'base', 'themeVariables': {
'primaryColor': '#3D3649',
'primaryTextColor': '#F4F2F7',
'primaryBorderColor': '#7C3AED',
'lineColor': '#9489A8',
'secondaryColor': '#251A33',
'tertiaryColor': '#1A1225',
'background': '#0F0A14',
'mainBkg': '#1A1225',
'nodeBorder': '#5E5472',
'clusterBkg': '#251A33',
'clusterBorder': '#3D3649',
'titleColor': '#A78BFA',
'edgeLabelBackground': '#1A1225',
'textColor': '#F4F2F7'
}}}%%
flowchart TD
A["Download MSI"] --> B["Run Installer"]
B --> C{"Windows Defender<br/>SmartScreen?"}
C -->|Yes| D["Click 'More info'<br/>then 'Run anyway'"]
C -->|No| E["Accept License"]
D --> E
E --> F["Choose Install Location"]
F --> G["Click Install"]
G --> H["Complete Installation"]
H --> I["Launch SpiritStream"]
Windows installation flow with SmartScreen handling.
Steps:
- Locate the downloaded
.msifile - Double-click to run the installer
- If Windows Defender SmartScreen appears:
- Click "More info"
- Click "Run anyway"
- Follow the installation wizard:
- Accept the license agreement
- Choose installation directory (default:
C:\Program Files\SpiritStream) - Click "Install"
- Wait for installation to complete
- Click "Finish" to launch SpiritStream
- Locate the downloaded
.dmgfile - Double-click to mount the disk image
- Drag "SpiritStream" to the Applications folder
- Eject the disk image
- Open Finder and navigate to Applications
- Right-click SpiritStream and select "Open"
- If prompted about unidentified developer:
- Click "Open" in the dialog
- This is only required on first launch
Gatekeeper Note: macOS Gatekeeper may prevent the app from opening. To resolve:
xattr -cr /Applications/SpiritStream.appAppImage Method (Recommended):
-
Make the AppImage executable:
chmod +x SpiritStream_*.AppImage -
Run the application:
./SpiritStream_*.AppImage
Desktop Integration:
To add SpiritStream to your application menu:
# Move to a permanent location
mkdir -p ~/.local/bin
mv SpiritStream_*.AppImage ~/.local/bin/SpiritStream.AppImage
# Create desktop entry
cat > ~/.local/share/applications/spiritstream.desktop << EOF
[Desktop Entry]
Name=SpiritStream
Exec=$HOME/.local/bin/SpiritStream.AppImage
Icon=spiritstream
Type=Application
Categories=AudioVideo;Recorder;
EOFOn first launch, SpiritStream will prompt you to install FFmpeg if it's not detected.
%%{init: {'theme': 'base', 'themeVariables': {
'primaryColor': '#3D3649',
'primaryTextColor': '#F4F2F7',
'primaryBorderColor': '#7C3AED',
'lineColor': '#9489A8',
'secondaryColor': '#251A33',
'tertiaryColor': '#1A1225',
'background': '#0F0A14',
'mainBkg': '#1A1225',
'nodeBorder': '#5E5472',
'clusterBkg': '#251A33',
'clusterBorder': '#3D3649',
'titleColor': '#A78BFA',
'edgeLabelBackground': '#1A1225',
'textColor': '#F4F2F7'
}}}%%
sequenceDiagram
participant User
participant App as SpiritStream
participant OS as System
User->>App: Launch Application
App->>OS: Check FFmpeg Path
OS-->>App: Not Found
App->>User: Display FFmpeg Setup Dialog
User->>App: Click "Download FFmpeg"
App->>App: Download FFmpeg Binary
Note over App: Progress bar shown
App->>OS: Install to System Path
OS-->>App: Installation Complete
App->>User: Display Success Message
App->>User: Show Dashboard
FFmpeg auto-download on first run.
Automatic Download:
- When prompted, click "Download FFmpeg"
- Wait for the download to complete (approximately 50-80 MB)
- SpiritStream will verify the installation
- A success message confirms FFmpeg is ready
Manual Installation (Alternative):
If automatic download fails:
Windows: Download from https://github.com/BtbN/FFmpeg-Builds/releases, extract, and add to PATH (or set the path in Settings).
macOS:
brew install ffmpegLinux:
# Ubuntu/Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install ffmpeg
# Arch
sudo pacman -S ffmpegOr download a static build from https://github.com/BtbN/FFmpeg-Builds/releases.
Upon successful launch, you'll see the main application interface:
+------------------+----------------------------------------+
| SIDEBAR | MAIN AREA |
+------------------+----------------------------------------+
| | |
| [Logo] | HEADER: Dashboard [Start Stream] |
| SpiritStream | |
| | +------+ +------+ +------+ +------+ |
| MAIN | |Active| |Bitrate| |Dropped| |Uptime| |
| - Dashboard | | 0 | |0 kbps | | 0 | |00:00 | |
| - Profiles | +------+ +------+ +------+ +------+ |
| - Stream Mgr | |
| | +-----------------------------------+ |
| CONFIG | | Active Profile | |
| - Encoder | | No profile selected | |
| - Outputs | +-----------------------------------+ |
| - Targets | |
| | +-----------------------------------+ |
| SYSTEM | | Stream Targets | |
| - Logs | | Configure targets in Profiles | |
| - Settings | +-----------------------------------+ |
| | |
| [Theme Toggle] | |
+------------------+----------------------------------------+
Navigation Sections:
| Section | Purpose |
|---|---|
| Dashboard | Overview of streaming status and quick actions |
| Profiles | Create and manage streaming configurations |
| Stream Manager | Control active streams |
| Encoder | Configure video/audio encoding settings |
| Outputs | Manage output groups with different qualities |
| Targets | Configure streaming destinations (YouTube, Twitch, etc.) |
| Logs | View application logs for troubleshooting |
| Settings | Application preferences and FFmpeg configuration |
A profile in SpiritStream contains:
- Incoming URL: Where your encoder (e.g., OBS) sends its stream
- Output Groups: Encoding configurations for different qualities
- Stream Targets: Destination platforms with their stream keys
-
Navigate to Profiles
- Click "Profiles" in the sidebar
- Click "New Profile" button
-
Enter Profile Name
- Choose a descriptive name (e.g., "Gaming Stream HD")
-
Add Stream Targets
- Click "Add Target"
- Select platform (YouTube, Twitch, Kick, Facebook, or Custom)
- Enter your stream key (found in your platform's dashboard)
- Repeat for each destination
-
Configure Output Group
- For beginners, use "Passthrough" mode (default)
- This forwards your stream without re-encoding
- Maximum efficiency with minimal CPU usage
-
Save Profile
- Click "Save Profile"
- Your profile appears in the Profiles list
| Platform | Location |
|---|---|
| YouTube | YouTube Studio → Go Live → Stream settings |
| Twitch | Dashboard → Settings → Stream → Primary Stream key |
| Kick | Dashboard → Settings → Stream Key |
| Creator Studio → Go Live → Stream settings |
Security Note: Stream keys are sensitive credentials. SpiritStream encrypts them at rest using AES-256-GCM encryption.
-
FFmpeg Check
- Go to Settings → FFmpeg Configuration
- Verify FFmpeg Version is displayed (e.g., "7.0.1")
-
Profile Load
- Create a test profile
- Verify it appears in the Profiles list
- Click to select it as active
-
Log Verification
- Navigate to Logs
- Look for startup messages without errors
- Expected:
[INFO] Application started successfully
To verify end-to-end functionality without going live:
- Use a private/unlisted stream on YouTube
- Configure OBS to point to SpiritStream:
- Server:
rtmp://localhost:1935/live - Stream Key:
test
- Server:
- Start streaming in OBS
- Click "Start Stream" in SpiritStream
- Verify on YouTube that the stream is received
| Issue | Cause | Solution |
|---|---|---|
| "FFmpeg not found" | FFmpeg not installed or path incorrect | Use Settings → Download FFmpeg |
| Stream won't start | No targets configured | Add at least one stream target |
| Connection refused | Firewall blocking port 1935 | Allow SpiritStream through firewall |
| "Invalid stream key" | Expired or incorrect key | Regenerate key on platform |
Windows:
- If antivirus quarantines FFmpeg: Add exception for SpiritStream folder
- If port 1935 in use: Check for other streaming software
macOS:
- If app won't open: Run
xattr -cr /Applications/SpiritStream.app - If Microphone/Camera permission requested: This is for future features
Linux:
- If AppImage won't run: Install FUSE:
sudo apt install fuse libfuse2 - If no audio: Ensure PulseAudio or PipeWire is running
- Check Logs: Navigate to Logs for detailed error messages
- GitHub Issues: Report bugs at https://github.com/ScopeCreep-zip/SpiritStream/issues
- Documentation: Refer to GLOSSARY for term definitions
After completing this tutorial, continue with:
- First Stream: Detailed walkthrough of your first broadcast
- Multi-Platform: Stream to YouTube + Twitch + Kick simultaneously
- Custom Encoding: Configure quality-per-platform settings
| Platform | Server URL |
|---|---|
| YouTube | rtmp://a.rtmp.youtube.com/live2 |
| Twitch | rtmp://live.twitch.tv/app |
| Kick | rtmps://fa723fc1b171.global-contribute.live-video.net/app |
rtmps://live-api-s.facebook.com:443/rtmp |
| Shortcut | Action |
|---|---|
Ctrl/Cmd + N |
New Profile |
Ctrl/Cmd + S |
Save Profile |
Ctrl/Cmd + , |
Open Settings |
Ctrl/Cmd + L |
Toggle Theme |
Related: First Stream | System Overview | Glossary