Live Streams

Monitor your streaming platform performance

System Overview

Real-time streaming statistics and performance metrics

0

Total Streams

Configured video streams

0

Active Streams

Currently broadcasting

0

Active Push Streams

Live RTMP connections

Loading...

System Uptime

Days since server start

0

Shoutcast Listeners

Active audio streams

0

Icecast Listeners

Active streaming clients

0

Total Viewers

All streaming viewers

0

Failed Streams

Streams with errors

0h

Total Stream Time

Combined streaming hours

0 MB/s

Total Bandwidth

Combined upload speed

System Performance

Real-time system resources and running processes

CPU

Loading...

0%

Memory

Loading...

0%

Storage

Loading...

0%

Upload

0 KB/s

Download

0 KB/s

Database Size

SQLite database

0 MB

Log File Size

All log files

0 MB

Active Processes

0 FFmpeg processes | 0 RTMP connections
Stream Type PID CPU % Memory Runtime Status

No active processes

Running

Server Status

RTMP Push Server

1935

Server Port

RTMP Ingest

0

Active Streams

Broadcasting now

0

Total Connections

Since server start

How to Use RTMP Push Streaming

Basic Setup

1
Server accepts any RTMP stream automatically
2
Use any unique stream key

OBS Studio Setup

Loading...
YOUR_UNIQUE_KEY Choose any unique identifier

Active RTMP Push Streams

Only showing currently live streams
Stream Key Status Client IP RTMP URL HLS URL Started

Running

Server Status

Shoutcast DNAS v2

0

Total Listeners

Across all streams

0

Active Streams

Broadcasting now

0h

Server Uptime

Since last restart

Active Audio Streams

Live broadcasting streams
Name Status Listeners Peak Bitrate Current Track Preview

No active streams

Connect from BUTT to start broadcasting

Stream Configurations

Manage your audio streaming endpoints

Important Notice

Stream status will show as Offline if there is no active audio data, even if BUTT is connected. Make sure you are sending audio for the status to show as Live.

Loading configurations...

Running

Server Status

Icecast2 v2.4.4

0

Total Listeners

Across all streams

0

Active Sources

Broadcasting now

0h

Server Uptime

Since last restart

Server Configurations

Manage multiple Icecast server ports and settings

Name Port Hostname Max Clients Max Sources SSL Status Actions

No configurations

Click "Add Configuration" to create your first server config

Active Icecast Streams

Live broadcasting streams
Mountpoint Title Listeners Peak Bitrate Codec Preview

No active streams

Connect a source to start broadcasting

Stream Recordings

Record, manage, and playback your stream archives

--

Disk Usage

-- GB Available

--

Total Recordings

-- GB

0

Active Recordings

Currently recording

Loading recordings...

Radio Automation

Create automated radio stations with playlists, scheduling, and rotation rules

0

Total Stations

0

Now Playing

0

Total Tracks

0h

Total Duration

Loading stations...

System Settings

Configure server hostname, SSL certificates, and other system settings

License Management

Configure your WHMCS license key and server information

License Active

Your license is valid and active

Active
IP: -
Domain: -
Key: -
Your WHMCS license key for this installation
This server's public IPv4 address is automatically detected and cannot be changed

Hostname Configuration

Configure the domain name for your IPTV platform

Domain name where your IPTV platform is hosted

Advanced Settings

Advanced configuration options for experienced users

Enable verbose logging for troubleshooting
Download individual log files, get all logs in a ZIP archive, or clear all logs to free up space
Automatically retry streams that fail or disconnect
Number of days to keep log files

System Update Management

Manage platform updates and backups

Click to select update package
Only .zip files are accepted
A backup will be created automatically before applying the update
Automatic Backups Enabled
A backup is created before each update
Loading backups...

Account Management

Manage your account session and logout

Account Information

Current logged in user details

Change Email

Update your account email address

Change Password

Update your account password for security

Session Management

End your current session securely

Logging out will end your current session and require you to login again.

User Manual

Complete guide to StreamDen IPTV Platform

1. Platform Overview

StreamDen IPTV Platform is a professional, enterprise-grade streaming solution designed for broadcasters, content creators, and organizations that need reliable live streaming infrastructure.

Core Capabilities

  • Multi-Protocol Input - Accept streams from RTSP cameras, HTTP/HTTPS sources, HLS playlists, SRT streams, and RTMP encoders
  • Universal HLS Output - All streams are converted to HLS format for maximum compatibility
  • Live Transcoding - Real-time video transcoding with quality presets (4K, 1080p, 720p, etc.)
  • RTMP Ingest - Receive live streams from OBS Studio, Wirecast, vMix, FFmpeg, and other encoders
  • Multi-Platform Restreaming - Simultaneously push to YouTube, Twitch, Facebook Live, and custom RTMP destinations
  • Radio Streaming - Full Shoutcast/Icecast server with DJ connections and listener tracking
  • Radio Automation - 24/7 automated radio with playlists, scheduling, and crossfade

Supported Input Formats

ProtocolDescriptionExample URL
RTSPIP Cameras, DVRs, NVRsrtsp://192.168.1.100:554/stream
HTTP/HTTPSWeb streams, CDN sourceshttps://cdn.example.com/live.ts
HLSExisting HLS playlistshttps://example.com/stream.m3u8
SRTSecure Reliable Transportsrt://source.example.com:9000
RTMPLegacy RTMP sourcesrtmp://server.com/live/key

Output Format

All streams are output as HLS (HTTP Live Streaming) with the following specifications:

  • Segment Duration: 2 seconds (configurable)
  • Playlist Type: Event (live streaming)
  • Codec: H.264 video, AAC audio
  • Compatible with: All modern browsers, iOS, Android, Smart TVs, VLC, and media players
HLS is the most widely supported streaming format. It works natively in Safari and with HLS.js in Chrome, Firefox, and Edge.

2. Getting Started

Quick Start Guide

Follow these steps to get your first stream running in under 5 minutes:

1
Create Your First Stream

Go to Live Streams tab and click "+ New Stream"

2
Enter Stream Details

Give your stream a name and paste the source URL (RTSP, HTTP, HLS, etc.)

3
Start the Stream

Click the green Play button to start streaming

4
Copy the HLS URL

Click the Copy URL button and share the link with viewers

Navigation

The platform is organized into tabs in the left sidebar:

  • Dashboard - System overview and statistics
  • Live Streams - Manage video streams from various sources
  • RTMP Push - Receive streams from OBS/encoders
  • Shoutcast - Manage radio stations
  • Radio Automation - Automated radio playlists
  • Settings - Platform configuration
  • Manual - This documentation

Stream URL Structure

All your streams are available at predictable URLs:

# Standard Stream https://your-domain.com/streams/stream_{id}/playlist.m3u8 # RTMP Push Stream https://your-domain.com/rtmp-hls/{stream-key}/playlist.m3u8
Replace your-domain.com with your actual server hostname and {id} or {stream-key} with the appropriate value.

3. Dashboard

The Dashboard provides a comprehensive real-time overview of your streaming infrastructure with live-updating statistics and performance metrics.

Statistics Cards

CardDescriptionRefresh Rate
Total StreamsTotal number of configured streams in the system5 seconds
Active StreamsStreams currently running and serving content5 seconds
RTMP PushActive incoming RTMP connections from encoders5 seconds
Radio StationsNumber of Shoutcast stations online5 seconds
Total BandwidthCurrent combined outgoing bandwidth for all streams2 seconds

System Performance Gauges

  • CPU Usage - Server processor utilization. High values (>80%) may indicate need for optimization or fewer concurrent streams
  • Memory Usage - RAM consumption. Each stream uses approximately 100-500MB depending on quality
  • Upload Speed - Current outgoing network bandwidth (all streams combined)
  • Download Speed - Incoming bandwidth from source streams
  • System Uptime - Time since last server restart

Quick Actions

From the dashboard, you can quickly:

  • View streams that need attention (errors or stopped unexpectedly)
  • Monitor overall system health
  • Identify bandwidth bottlenecks
If CPU usage consistently exceeds 90%, consider reducing the number of transcoding streams or lowering quality settings.

4. Live Streams

The Live Streams section is where you manage video streams from various input sources. Each stream takes a source URL and converts it to HLS format for universal playback.

Creating a Stream

  1. Click the "+ New Stream" button
  2. Enter a Stream Name (e.g., "News Channel", "Camera 1")
  3. Enter the Source URL - supported formats:
    • rtsp://username:password@192.168.1.100:554/stream - RTSP cameras with authentication
    • rtsp://192.168.1.100:554/stream - RTSP without authentication
    • http:// or https:// - HTTP/HTTPS streams
    • https://example.com/stream.m3u8 - HLS playlists
    • srt://source.example.com:9000 - SRT streams
    • rtmp://server.com/live/key - RTMP sources
  4. (Optional) Enable transcoding for quality adjustment
  5. (Optional) Add RTMP Push URL to restream externally
  6. Click "Create Stream"

Stream Controls

ButtonActionDescription
StartBegin streaming - converts source to HLS
StopStop the stream and FFmpeg process
EditModify stream name, URL, or settings
DeleteRemove stream permanently
Copy URLCopy HLS output URL to clipboard
PreviewOpen video player preview

Stream Status Indicators

  • Running - Stream is active and serving content
  • Stopped - Stream is configured but not running
  • Error - Stream failed (check source URL or logs)
  • Starting - Stream is initializing FFmpeg

Bulk Operations

  • Start All - Start all stopped streams simultaneously
  • Stop All - Stop all running streams
  • Refresh - Reload stream list from database

Output URL Format

https://your-domain.com/streams/stream_{id}/playlist.m3u8

Where {id} is the stream's numeric ID shown in the interface.

Testing Your Stream

You can test HLS streams with:

  • Built-in Player - Click the preview button in the stream row
  • VLC Media Player - Media → Open Network Stream → paste URL
  • FFplay - ffplay "https://your-domain/streams/stream_1/playlist.m3u8"
  • Web Browser - Safari plays natively; Chrome/Firefox with HLS.js
Streams persist across server restarts. Any stream with "running" status will automatically restart when the platform starts.

5. Transcoding & Quality

Transcoding allows you to convert video from one format/quality to another. By default, streams are copied without transcoding (passthrough) which is faster and uses less CPU.

When to Use Transcoding

  • Reduce bandwidth - Lower the bitrate for limited connections
  • Change resolution - Scale 4K to 1080p or 720p
  • Fix compatibility - Convert non-standard codecs to H.264/AAC
  • Normalize frame rate - Convert variable FPS to constant

Enabling Transcoding

  1. When creating or editing a stream, check "Enable Transcoding"
  2. Choose a Quality Preset or configure custom settings
  3. The transcoding options panel will appear

Quality Presets

PresetResolutionVideo BitrateFPSCPU Usage
SourceOriginalOriginalOriginalNone (copy)
4K Ultra HD3840x216015,000 kbps30Very High
1080p 60fps1920x10808,000 kbps60High
1080p Full HD1920x10805,000 kbps30Medium-High
720p HD1280x7203,000 kbps30Medium
480p SD854x4801,500 kbps30Low
360p Low640x360800 kbps30Very Low
CustomUser-definedUser-definedUser-definedVaries

Custom Settings

When selecting "Custom" preset, you can configure:

  • Width/Height - Output resolution in pixels (e.g., 1920x1080)
  • Video Bitrate - Target bitrate in kbps (higher = better quality, more bandwidth)
  • Frame Rate - Frames per second (15-60 fps)
  • Audio Bitrate - Audio quality in kbps (64-320 kbps)

Bandwidth Estimation

QualityBandwidth per StreamMonthly Data (24/7)
4K~15 Mbps~4.9 TB
1080p~5 Mbps~1.6 TB
720p~3 Mbps~970 GB
480p~1.5 Mbps~485 GB
360p~0.8 Mbps~260 GB
Passthrough (no transcoding) is recommended when your source is already in a compatible format. It uses minimal CPU and preserves original quality.
Each transcoding stream uses significant CPU. A typical server can handle 2-4 simultaneous 1080p transcodes. Monitor your CPU usage in the Dashboard.

6. RTMP Push (Receive)

RTMP Push allows you to receive live streams from external encoders like OBS Studio, Wirecast, vMix, or any software that supports RTMP output. This is the reverse of typical streaming - instead of pulling a source, the encoder pushes to your server.

How It Works

1
Create RTMP Endpoint

Click "+ New RTMP Stream" in the RTMP Push tab

2
Get Connection Details

Copy the Server URL and Stream Key

3
Configure Encoder

Paste the details into OBS/Wirecast/vMix

4
Start Streaming

The HLS output becomes available automatically

OBS Studio Setup

  1. Open OBS Studio
  2. Go to Settings → Stream
  3. Set Service to "Custom..."
  4. Server: rtmp://your-domain.com:1935/live/
  5. Stream Key: Your unique stream key (e.g., mystream)
  6. Click OK to save
  7. Click "Start Streaming" in OBS main window

Wirecast Setup

  1. Open Wirecast → Output → Output Settings
  2. Add a new RTMP destination
  3. Address: rtmp://your-domain.com:1935/live/streamkey
  4. Click "Start/Stop Broadcasting"

FFmpeg Command Line

ffmpeg -re -i input.mp4 -c copy -f flv rtmp://your-domain.com:1935/live/streamkey

Output URL Format

https://your-domain.com/rtmp-hls/{stream-key}/playlist.m3u8

Port Requirements

PortProtocolDirectionPurpose
1935TCPInboundRTMP connections from encoders
Ensure port 1935 is open in your firewall (UFW/iptables) for incoming RTMP connections.
Stream keys are case-sensitive. Use lowercase letters and numbers without spaces for best compatibility.

7. Restreaming to External Platforms

Restreaming allows you to simultaneously push your streams to external platforms like YouTube Live, Twitch, Facebook Live, or any RTMP-compatible destination.

Setting Up Restreaming

  1. Create or edit a stream in the Live Streams tab
  2. Find the RTMP Push URL field
  3. Paste your destination RTMP URL (from YouTube/Twitch/etc.)
  4. Save and start the stream

Platform-Specific Settings

YouTube Live
  1. Go to YouTube Studio → Go Live
  2. Copy the Stream URL and Stream Key
  3. Combine them: rtmp://a.rtmp.youtube.com/live2/YOUR-STREAM-KEY
  4. Paste into the RTMP Push URL field
Twitch
  1. Go to Twitch Dashboard → Settings → Stream
  2. Copy your Primary Stream Key
  3. Use: rtmp://live.twitch.tv/app/YOUR-STREAM-KEY
Facebook Live
  1. Go to Facebook Creator Studio → Live Dashboard
  2. Copy the Server URL and Stream Key
  3. Combine: rtmps://live-api-s.facebook.com:443/rtmp/YOUR-STREAM-KEY
Custom RTMP Server
rtmp://your-server.com:1935/live/streamkey

Multi-Platform Streaming

To stream to multiple platforms simultaneously:

  1. Create separate streams with the same source URL
  2. Each stream pushes to a different RTMP destination
  3. All streams share the same input but output to different platforms
Restreaming uses additional bandwidth. Each destination requires the full stream bitrate to be uploaded again.
Keep your stream keys secret! Anyone with your stream key can broadcast to your channel.

8. Shoutcast Radio

Create and manage professional internet radio stations using Shoutcast/Icecast technology. Each station runs independently and can have its own DJ connections and listeners.

Creating a Radio Station

  1. Go to the Shoutcast tab
  2. Click "+ New Station"
  3. Configure station settings:
    • Station Name - Display name for listeners
    • Port - Unique port (8000, 8010, 8020, etc.)
    • DJ Password - Password for broadcasters to connect
    • Admin Password - Password for administration
    • Genre - Music genre (Pop, Rock, Jazz, etc.)
    • Bitrate - Audio quality (64, 128, 192, 256, 320 kbps)
  4. Click "Create Station"

Bitrate Recommendations

BitrateQualityBest ForBandwidth/Listener
64 kbpsVoice/TalkPodcasts, Talk shows~28 MB/hour
128 kbpsStandardMost music genres~56 MB/hour
192 kbpsHighMusic enthusiasts~84 MB/hour
256 kbpsVery HighHi-fi audio~112 MB/hour
320 kbpsMaximumProfessional broadcast~140 MB/hour

Connecting with Broadcasting Software

BUTT (Broadcast Using This Tool)
  1. Download BUTT from danielnoethen.de/butt
  2. Settings → Main → Add Server
  3. Type: Icecast
  4. Address: your-domain.com
  5. Port: Your station port
  6. Password: Your DJ password
  7. Mount: /stream
  8. Click "Play" to start broadcasting
SAM Broadcaster
  1. Encoders → Add → Shoutcast
  2. Server IP: your-domain.com
  3. Port: Your station port
  4. Password: Your DJ password
  5. Enable encoder to start

Listener URLs

# Direct stream (compatible with most players) http://your-domain.com:PORT/stream # M3U playlist (for web/mobile apps) http://your-domain.com:PORT/stream.m3u # Status page http://your-domain.com:PORT/status.xsl

Embedding in Websites

<audio controls autoplay> <source src="http://your-domain.com:PORT/stream" type="audio/mpeg"> </audio>
Each station requires its own unique port. Common ports are 8000, 8010, 8020, etc.

9. Radio Automation

Radio Automation enables 24/7 unattended broadcasting with playlists, scheduling, and Auto DJ functionality. Perfect for running a radio station without constant manual intervention.

Key Features

  • Playlist Management - Create unlimited playlists for different shows/times
  • Scheduling - Schedule playlists for specific days and times
  • Auto DJ - Automatic track selection and playback
  • Crossfade - Smooth transitions between tracks (configurable duration)
  • Shuffle - Random track order within playlists
  • Intro/Outro - Station jingles between tracks

Creating a Playlist

  1. Go to the Radio Automation tab
  2. Click "+ Create Playlist"
  3. Enter playlist name (e.g., "Morning Show", "Jazz Nights")
  4. Click "Add Tracks" to upload or select audio files
  5. Drag and drop to reorder tracks
  6. Save the playlist

Supported Audio Formats

  • MP3 (.mp3) - Most common, recommended
  • AAC (.aac, .m4a) - Better quality at same bitrate
  • OGG Vorbis (.ogg) - Open format
  • FLAC (.flac) - Lossless audio
  • WAV (.wav) - Uncompressed audio

Auto DJ Settings

  • Crossfade Duration - Overlap time between tracks (0-10 seconds)
  • Repeat Mode - Loop playlist when finished
  • Shuffle Mode - Randomize track order
  • Priority Queue - Insert urgent tracks immediately

Scheduling Shows

  1. Go to Schedule section
  2. Click on a time slot in the calendar
  3. Select a playlist to assign
  4. Set repeat options (daily, weekly, one-time)
  5. Save the schedule
Auto DJ will automatically fill gaps between scheduled shows with your default playlist.

10. Video Player & Preview

The built-in video player allows you to preview streams directly in the CMS interface. It uses HLS.js for broad browser compatibility.

Using the Preview Player

  1. Find your stream in the Live Streams list
  2. Click the Preview button (play icon)
  3. The video player modal will open
  4. Click play or wait for auto-play

Player Controls

ControlDescription
Play/PauseStart or pause playback
VolumeAdjust audio level (0-100%)
FullscreenEnter/exit fullscreen mode
LiveJump to live edge of stream

Embedding Streams on External Websites

Use this code to embed your HLS stream on any website:

<!-- Include HLS.js library --> <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script> <video id="video" controls style="width:100%; max-width:800px;"></video> <script> var video = document.getElementById('video'); var hls = new Hls(); hls.loadSource('https://your-domain.com/streams/stream_1/playlist.m3u8'); hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED, function() { video.play(); }); </script>

Testing with External Players

  • VLC - Media → Open Network Stream → paste HLS URL
  • FFplay - ffplay "https://domain/streams/stream_1/playlist.m3u8"
  • mpv - mpv "https://domain/streams/stream_1/playlist.m3u8"
Safari plays HLS natively. Chrome, Firefox, and Edge require HLS.js for playback.

11. Settings & Configuration

Configure your streaming platform settings, manage licenses, and view system information.

Server Configuration

  • Hostname - Your server's domain name (e.g., stream.example.com)
  • HTTP Port - Web server port (default: 3000)
  • RTMP Port - RTMP server port (default: 1935)

SSL/TLS Configuration

HTTPS is required for secure streaming and is mandatory for embedding on HTTPS websites.

  • Let's Encrypt - Automatic free SSL certificate generation
  • Custom Certificate - Upload your own SSL certificate and key

License Management

SettingDescription
License KeyYour activation key
StatusActive, Expired, or Trial
ExpirationLicense expiration date
Max StreamsMaximum allowed concurrent streams

System Options

  • Debug Mode - Enable detailed logging for troubleshooting
  • Auto Restart - Automatically restart failed streams
  • Log Retention - Number of days to keep log files
  • HLS Segment Duration - Length of each HLS segment (default: 2 seconds)
  • HLS Playlist Size - Number of segments in playlist (default: 5)

Backup & Restore

  • Export Configuration - Download settings as JSON
  • Import Configuration - Restore settings from backup
  • Database Backup - Export stream configurations
Changes to server configuration may require a platform restart to take effect.

12. SSL Certificate

SSL certificates enable HTTPS for secure streaming. This is required for embedding streams on HTTPS websites and is recommended for all production deployments.

Why SSL is Important

  • Security - Encrypts data between viewers and server
  • Mixed Content - HTTPS pages cannot load HTTP streams
  • Browser Trust - Modern browsers warn about non-HTTPS sites
  • SEO - Search engines prefer HTTPS sites

Option 1: Let's Encrypt (Recommended)

  1. Go to Settings → SSL
  2. Enter your domain name
  3. Click "Generate Certificate"
  4. Wait for automatic verification and certificate generation
  5. Certificate auto-renews every 60 days

Option 2: Custom Certificate

  1. Obtain SSL certificate from your CA (DigiCert, Comodo, etc.)
  2. Go to Settings → SSL → Custom Certificate
  3. Upload your certificate file (.crt or .pem)
  4. Upload your private key file (.key)
  5. Click "Install Certificate"

Requirements for Let's Encrypt

  • Domain must point to this server (DNS A record)
  • Port 80 must be accessible from internet
  • No firewall blocking HTTP validation

Troubleshooting SSL

IssueSolution
Certificate generation failsCheck DNS points to server, port 80 is open
Mixed content warningsUpdate all stream URLs to use HTTPS
Certificate expiredRegenerate using Let's Encrypt or upload new certificate
Never share your private key file. Keep it secure and backed up safely.

13. API Reference

The platform provides a RESTful API for programmatic control of streams and configuration.

Base URL

https://your-domain.com/api

Stream Endpoints

MethodEndpointDescription
GET/api/streamsList all streams
GET/api/streams/:idGet stream details
POST/api/streamsCreate new stream
PUT/api/streams/:idUpdate stream
DELETE/api/streams/:idDelete stream
POST/api/streams/:id/startStart stream
POST/api/streams/:id/stopStop stream

Example: List All Streams

curl -X GET https://your-domain.com/api/streams

Example: Create Stream

curl -X POST https://your-domain.com/api/streams \ -H "Content-Type: application/json" \ -d '{ "name": "My Stream", "input_url": "rtsp://camera.local/stream", "rtmp_url": "" }'

Example: Start Stream

curl -X POST https://your-domain.com/api/streams/1/start

Example: Stop Stream

curl -X POST https://your-domain.com/api/streams/1/stop

System Endpoints

MethodEndpointDescription
GET/api/statsSystem statistics (CPU, memory, bandwidth)
GET/api/healthHealth check endpoint

Response Format

All responses are JSON with the following structure:

{ "success": true, "data": { ... }, "message": "Operation completed" }
API responses include detailed error messages on failure to help with debugging.

14. Troubleshooting

Stream Won't Start

SymptomPossible CauseSolution
Immediate errorInvalid source URLVerify URL format and accessibility
Timeout errorSource unreachableCheck network, firewall, VPN requirements
"FFmpeg not found"FFmpeg not installedInstall FFmpeg: apt install ffmpeg
Authentication errorWrong credentialsCheck username/password in RTSP URL
Codec errorUnsupported codecEnable transcoding to convert to H.264

RTMP Connection Failed

IssueCheckFix
Connection refusedPort 1935 blockedufw allow 1935/tcp
Stream key errorKey mismatchVerify exact stream key in encoder
TimeoutNetwork pathTest with telnet domain 1935
"Server not found"DNS/hostnameUse IP address instead of domain

High CPU Usage

  • Too many transcoding streams - Disable transcoding where not needed
  • High resolution output - Lower quality preset (720p instead of 1080p)
  • Complex source - Some codecs are more CPU-intensive to decode
  • Insufficient hardware - Consider upgrading server or using GPU encoding

CPU guidelines per stream:

  • Passthrough (no transcoding): ~1-2% CPU
  • 720p transcoding: ~15-25% CPU
  • 1080p transcoding: ~30-50% CPU
  • 4K transcoding: ~80-100% CPU

Stream Buffering / Playback Issues

  • Check source stability - Test source URL directly with VLC
  • Network bandwidth - Ensure upload > total stream bitrate
  • HLS latency - Normal latency is 10-30 seconds for HLS
  • Player issues - Try different player (VLC, FFplay)

Audio/Video Sync Issues

  • Enable transcoding and let FFmpeg re-sync A/V
  • Check if source has stable frame rate
  • Try different quality preset

SSL/HTTPS Problems

  • Certificate not generating - Check DNS points to server, port 80 open
  • Mixed content - All resources must use HTTPS
  • Certificate expired - Regenerate or renew certificate

Useful Diagnostic Commands

# Check FFmpeg version and capabilities ffmpeg -version # Test source URL accessibility ffprobe "rtsp://source-url" -v error # Check platform status pm2 status # View real-time logs pm2 logs iptv-platform --lines 100 # Check port availability netstat -tlnp | grep -E "1935|3000" # Check disk space (for HLS segments) df -h # Check memory usage free -m # Restart the platform pm2 restart iptv-platform # Clear HLS segments (if disk full) rm -rf /home/develop/stream/streams/*/

Log File Locations

LogLocationContains
Application Loglogs/app.logGeneral platform activity
Error Loglogs/error.logErrors and exceptions
Debug Loglogs/debug.logDetailed debugging info
PM2 Logs~/.pm2/logs/Process manager logs
Enable Debug Mode in Settings for more detailed logging when troubleshooting complex issues.

15. FAQ

Q: How many streams can I run simultaneously?

A: It depends on your server resources and whether transcoding is enabled. A typical 4-core server can handle:

  • 20-50 passthrough streams (no transcoding)
  • 4-8 transcoding streams at 720p
  • 2-4 transcoding streams at 1080p

Q: What is the latency of HLS streams?

A: Standard HLS has 10-30 seconds of latency. This is normal for HLS due to segment buffering. For lower latency, consider:

  • Reducing segment duration (but may affect stability)
  • Using Low-Latency HLS (LL-HLS) if supported

Q: Can I stream to multiple platforms at once?

A: Yes! Create multiple streams with the same source URL, each pushing to a different RTMP destination (YouTube, Twitch, Facebook, etc.).

Q: Do streams auto-restart after server reboot?

A: Yes. Streams with "running" status in the database are automatically restarted when the platform starts. PM2 ensures the platform itself restarts on reboot.

Q: What ports need to be open?

A: Required ports:

  • 80/443 - HTTP/HTTPS for web interface and HLS
  • 1935 - RTMP ingest (if using RTMP Push)
  • 8000+ - Shoutcast/Icecast radio (each station needs its own port)

Q: How do I reduce bandwidth usage?

A: Options to reduce bandwidth:

  • Enable transcoding and choose lower quality preset
  • Reduce video bitrate in custom settings
  • Lower resolution (720p uses ~40% less than 1080p)

Q: Why does my stream show "Error" status?

A: Common causes:

  • Source URL is offline or incorrect
  • Network connectivity issues
  • Unsupported codec (enable transcoding)
  • RTSP authentication failed

Check Settings → Logs for detailed error messages.

Q: Can I use IP cameras as sources?

A: Yes! Most IP cameras support RTSP. Common URL formats:

  • Hikvision: rtsp://user:pass@IP:554/Streaming/Channels/101
  • Dahua: rtsp://user:pass@IP:554/cam/realmonitor?channel=1&subtype=0
  • Generic: rtsp://user:pass@IP:554/stream

Q: How do I backup my configuration?

A: Backup these files:

  • iptv.db - SQLite database with all streams
  • .env - Environment configuration
  • ssl/ - SSL certificates (if using custom)

Q: What is the difference between passthrough and transcoding?

A:

  • Passthrough: Copies video/audio without changes. Fast, low CPU, preserves quality.
  • Transcoding: Converts video to different format/quality. Higher CPU, but allows quality adjustment.

Use passthrough when possible. Only transcode if you need to change quality or fix compatibility.

16. Keyboard Shortcuts

Speed up your workflow with these keyboard shortcuts:

Navigation

ShortcutAction
1Go to Dashboard
2Go to Live Streams
3Go to RTMP Push
4Go to Shoutcast
5Go to Radio Automation
6Go to Settings
7Go to Manual

Stream Controls

ShortcutAction
NNew Stream
RRefresh stream list
EscClose modal/dialog

Video Player

ShortcutAction
SpacePlay/Pause
MMute/Unmute
FToggle Fullscreen
EscExit Fullscreen

General

ShortcutAction
?Show keyboard shortcuts
/Focus search box (if available)
Keyboard shortcuts work when no input field is focused. Click outside any text box to use them.