RTMP SETUP
Configure a transcoder server to accept your RTMP stream and serve it as HLS to Alpha Live viewers. Choose nginx-rtmp or SRS — both are production-proven and free.
01 — OVERVIEW
HOW IT WORKS
INGEST URL
rtmp://ingest.alphalive.net/live
HLS BASE PATH
https://alphalive.net/hls/{streamId}/index.m3u8
RECOMMENDED SERVER
Ubuntu 22.04 LTS / Debian 12
MIN SPECS
2 vCPU · 4 GB RAM · 50 Mbps uplink
IMPORTANT
The transcoder server must be publicly reachable. Alpha Live's HLS player fetches manifests and segments directly from your server at https://alphalive.net/hls/{streamId}/index.m3u8. Configure your firewall to allow TCP 1935 (RTMP ingest) and TCP 80/443 (HLS output).
02 — TRANSCODER
SERVER CONFIG
Install nginx with RTMP module
NOTE
On Ubuntu 22.04+ the RTMP module ships as a separate package. If libnginx-mod-rtmp is not found, build nginx from source with the nginx-rtmp-module from GitHub.
Configure nginx.conf
Create HLS output directory
TIP
The stream ID in the RTMP stream key must match the directory name. When a venue streams with key stream-001, nginx writes HLS to /var/www/hls/stream-001/index.m3u8.
Reload nginx and test
Point Alpha Live HLS base URL to your server
Update the HLS_BASE_URL environment variable in your Alpha Live server to point at your nginx server. The stream watch page constructs the manifest URL as:
03 — SECURITY
SSL FOR HLS
IMPORTANT
Alpha Live is served over HTTPS. Browsers block mixed-content requests — your HLS manifest URL must also be HTTPS. Set up a free Let's Encrypt certificate on your ingest server before going live.
Install Certbot and get a certificate
Verify HTTPS HLS delivery
04 — TROUBLESHOOTING
COMMON ISSUES
SYMPTOM
Player shows "stream starting" indefinitely
CAUSE
HLS manifest not found at the expected URL
FIX
Check that /var/www/hls/{streamId}/index.m3u8 exists and nginx is serving it. Verify CORS headers include Access-Control-Allow-Origin: *
SYMPTOM
Stream connects but video is choppy / buffering
CAUSE
Keyframe interval mismatch or insufficient server bandwidth
FIX
Set OBS keyframe interval to exactly 2s. Ensure your server has at least 10 Mbps uplink per active stream.
SYMPTOM
RTMP connection refused on port 1935
CAUSE
Firewall blocking inbound TCP 1935
FIX
sudo ufw allow 1935/tcp — or add the rule in your cloud provider's security group.
SYMPTOM
Mixed content error in browser console
CAUSE
HLS URL is HTTP while the page is HTTPS
FIX
Install SSL on your ingest server (see section 03). All HLS URLs must be HTTPS.
SYMPTOM
ffmpeg exec not running in nginx-rtmp
CAUSE
ffmpeg not in PATH for www-data user
FIX
Use the full path: /usr/bin/ffmpeg. Verify with: sudo -u www-data which ffmpeg
Questions? Check the nginx-rtmp and SRS documentation, or open an issue on their GitHub repos.
BACK TO DASHBOARD