A VPS can make live streaming easier and more reliable. The most popular use is restreaming: you send one stream from OBS to your server, and the server forwards it to YouTube, Twitch, Facebook, Kick and others at the same time. Your home upload only carries one stream. You can also transcode, record, or run your own streaming server for private audiences.

Common setups

Setup What the VPS does
Restreaming (multistream) Receives one RTMP stream, forwards copies to several platforms
Transcoding Converts to lower bitrates or other formats with FFmpeg (CPU-heavy)
Recording Saves the stream to disk as a backup
Self-hosted streaming Serves HLS to viewers directly (Owncast, Nginx + HLS, MediaMTX)
24/7 streams Loops pre-recorded video to a platform with FFmpeg

Restreaming with Nginx RTMP

sudo apt install -y nginx libnginx-mod-rtmp

Add to the end of /etc/nginx/nginx.conf (outside the http block):

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
            live on;
            record off;

            # only allow publishing from your IP
            allow publish 203.0.113.50;
            deny publish all;
            deny play all;

            push rtmp://a.rtmp.youtube.com/live2/YOUR-YOUTUBE-KEY;
            push rtmp://live.twitch.tv/app/YOUR-TWITCH-KEY;
        }
    }
}
sudo nginx -t && sudo systemctl reload nginx
sudo ufw allow from 203.0.113.50 to any port 1935 proto tcp

In OBS → Settings → Stream: Service “Custom”, Server rtmp://your-vps-ip/live, and any stream key (for example main).

Notes:

  • Platforms that require RTMPS (TLS), such as Facebook Live, need a local relay (stunnel) or FFmpeg to push over TLS.
  • If your home IP changes, use a secret application name, or a publish key check with on_publish, instead of an IP allowlist.
  • Keep your platform stream keys secret. Anyone with them can stream to your channel.

Transcoding with FFmpeg

Restreaming without transcoding uses almost no CPU. Transcoding (for example making a 720p copy for a platform with lower limits) is CPU-heavy: roughly 1–2 vCPU per 720p30 x264 output on fast presets, more for 1080p60.

ffmpeg -i rtmp://127.0.0.1/live/main -c:v libx264 -preset veryfast -b:v 3000k -s 1280x720 \
  -c:a aac -b:a 128k -f flv rtmp://platform.example/live/KEY

Whenever possible, stream at the bitrate and resolution your target platforms accept, and avoid server-side transcoding.

Bandwidth sizing

Each outgoing stream uses its full bitrate:

Setup Upload from VPS
1 input → 3 platforms at 6 Mbps ~18 Mbps out (+6 Mbps in)
2 hours/day, 3 platforms at 6 Mbps ~16 GB/day ≈ 500 GB/month
Self-hosted HLS to 50 viewers at 3 Mbps ~150 Mbps

Check your plan’s port speed and monthly transfer. VPS.DO’s USA plans come with 1 Gbps ports and monthly transfer allowances. See USA VPS and VPS bandwidth explained.

Location

  • For restreaming, place the VPS between you and the platforms’ ingest servers, ideally in a well-connected location near you. A stable path from home to the VPS matters most.
  • Test your route with mtr before going live, and run a private test stream. See ping, traceroute and mtr.

Self-hosted live streaming

For private events, internal broadcasts, or streaming without platform rules:

  • Owncast: a self-hosted Twitch-like server with chat. Easy to set up with Docker.
  • MediaMTX: a lightweight RTSP/RTMP/HLS/WebRTC media server.
  • Nginx RTMP + HLS: serve .m3u8 playlists to browsers and players.

Viewer bandwidth adds up fast, so put a CDN in front for larger audiences. See CDN for websites.

Rights and rules

Only stream content you have the rights to. Rebroadcasting copyrighted streams (sports, TV, films) leads to takedowns, account bans, and abuse reports to your hosting provider. See the VPS.DO legal policies.

Quick reference

Task Tool
Multistream from OBS Nginx RTMP push
Ingest port 1935/tcp (restrict publishers)
Lower-bitrate copies FFmpeg (CPU-heavy)
Self-hosted channel Owncast / MediaMTX
Bandwidth bitrate × outputs × hours

Related: Jellyfin media server and Nginx reverse proxy.

  • Streaming
  • Nginx
  • VPS Guide