NODED.CLOUD/Blog/nginx-rtmp vs MediaMTX vs Restreamer: Self-Hosted Multistream Relays Compared

nginx-rtmp vs MediaMTX vs Restreamer: Self-Hosted Multistream Relays Compared

02 Nov 2026 · Mario Marin

Hosted multistreaming vs a self-hosted relay: nginx-rtmp, MediaMTX, datarhei Restreamer, the OBS plugin and ffmpeg tee compared, with the bandwidth maths, ports, costs and when Restream is still the better pick.

The usual self-hosted Restream alternative is a small relay server: OBS sends one stream to a VPS, and the VPS copies it to Twitch, YouTube, Kick or any other RTMP or SRT ingest. nginx with the RTMP module, MediaMTX, datarhei Restreamer and ffmpeg can all do that job, and none of them charges per destination.

This post compares those options with each other and with a hosted service: what each is good at, the bandwidth arithmetic, the ports to open, what it costs, and when paying for Restream is still the sensible choice. For a full walkthrough of one tool, follow the links in each section; this page is the comparison.

What is a self-hosted multistream relay?

A hosted multistreaming service such as Restream takes your stream on its own servers and pushes copies to the platforms you connect. You pay a monthly plan, and the plan decides how many channels you can be live on at once. On Restream's pricing page, read on 2 November 2026 (Creator plans, billed monthly), the free plan streams to 2 channels with Restream branding, Standard is $19 a month for 3 channels, Professional $49 for 5, and Business $239 for 8.

A self-hosted relay does the fan-out part of that job on a server you rent. Your encoder uploads one stream; the relay receives it and opens one outgoing connection per destination, copying the packets without re-encoding them. The number of destinations is limited only by the server's outbound bandwidth, and your stream keys never leave a machine you control.

What you give up are the extras around the fan-out. Restream's page lists cross-platform chat, stream analytics, cloud recordings, a browser studio with guests and a backup feed that takes over on disconnect. A relay gives you none of that by default; you add what you need yourself.

Which multistream relays can you run yourself?

Five options cover nearly every setup. Four run on a VPS; the first needs no server at all.

OptionRuns onConfigured withGood atWatch out for
OBS + obs-multi-rtmp pluginYour PCAn OBS dockNo server at allYour home upload carries every copy
nginx + RTMP moduleVPSnginx.confLightest plain RTMP fan-outNo RTMPS in its feature list
MediaMTXVPSmediamtx.ymlSRT, RTMP or WebRTC in, native RTMPS forwarding outNo admin web UI
datarhei RestreamerVPS (Docker)Web UIWizard, player page, many outputsThe UI must sit behind TLS
ffmpeg with the tee muxerVPSOne commandScriptable, nothing else to installOne process: restarts are your job

OBS with the obs-multi-rtmp plugin

OBS Studio (33.0.1 at the time of writing) streams to one service from its Stream settings. The free, GPL-licensed obs-multi-rtmp plugin adds extra outputs, each with its own server and key. It costs nothing and needs no server, but every destination is a separate upload from your connection: three platforms at 6 Mbps is 18 Mbps leaving your house, and a dip hits all of them at once. It suits two destinations on a fast, stable uplink.

nginx with the RTMP module

The nginx-rtmp-module (BSD-2-Clause) is the long-standing option, and its relay support covers push and pull. On Debian or Ubuntu it installs as the libnginx-mod-rtmp package. One push line per destination:

rtmp {
    server {
        listen 1935;
        application live {
            live on;
            record off;
            allow publish 198.51.100.7;   # your encoder's IP
            deny publish all;
            push rtmp://ingest.global-contribute.live-video.net/app/TWITCH-KEY;
            push rtmp://a.rtmp.youtube.com/live2/YOUTUBE-KEY;
        }
    }
}

OBS then streams to rtmp://your-vps/live. The catch is encryption: the module's feature list has no RTMPS, so a destination that accepts only RTMPS needs a helper such as ffmpeg or stunnel in between. Our nginx multistream recipe and RTMP server guide go through the full install.

MediaMTX

MediaMTX (v1.21.3 is current) takes SRT, RTMP, WebRTC or RTSP in and, per its forwarding docs, pushes natively to RTMP and RTMPS, SRT, RTSP and WHIP destinations, with the stream key after a #:

authInternalUsers:
  - user: obs
    pass: long-random-secret
    permissions:
      - action: publish
        path: live
paths:
  live:
    forward:
      - dest: rtmps://a.rtmps.youtube.com/live2#YOUTUBE-KEY
      - dest: rtmps://ingest.global-contribute.live-video.net/app#TWITCH-KEY

Its strength for a relay is the ingest side: OBS can send SRT, which recovers lost packets on a shaky uplink, while the platforms still receive RTMPS. YouTube rejects streams without an audio track, so keep audio in the source. The MediaMTX setup guide covers ports and authentication in depth.

datarhei Restreamer

Restreamer (Apache-2.0) wraps ingest, a player page and outputs in one container with a web UI. The quick start is a single command:

docker run -d --restart=always --name restreamer \
  -v /opt/restreamer/config:/core/config \
  -v /opt/restreamer/data:/core/data \
  -p 8080:8080 -p 8181:8181 \
  -p 1935:1935 -p 1936:1936 \
  -p 6000:6000/udp \
  datarhei/restreamer:latest

It is the closest to a hosted dashboard: add a source, then add a publication service per platform. The docs map public ports 80 and 443 to 8080 and 8181. It is the right pick when someone other than you will press the buttons; our Restreamer walkthrough has the full setup.

ffmpeg with the tee muxer

The tee muxer writes the same packets to several outputs, encoded once. With onfail=ignore, one failing destination does not stop the others:

ffmpeg -listen 1 -i rtmp://0.0.0.0:1935/live/in \
  -map 0 -c copy -f tee \
  "[f=flv:onfail=ignore]rtmps://a.rtmps.youtube.com/live2/YOUTUBE-KEY|[f=flv:onfail=ignore]rtmps://ingest.global-contribute.live-video.net/app/TWITCH-KEY"

It is the most scriptable option and the least forgiving: the process exits when OBS disconnects, so run it under systemd with Restart=always, and there is no authentication beyond your firewall.

How much bandwidth does a multistream relay need?

The relay's arithmetic is simple: your upload carries one copy, and the server sends one copy per destination. Outbound traffic is the number of destinations times the stream bitrate. Add about 20% headroom for encoder peaks and protocol overhead. The table uses a 6 Mbps stream as an example.

DestinationsOBS direct: home uploadVia relay: home uploadRelay outboundOutbound + 20%
212 Mbps6 Mbps12 Mbps14.4 Mbps
318 Mbps6 Mbps18 Mbps21.6 Mbps
530 Mbps6 Mbps30 Mbps36 Mbps
848 Mbps6 Mbps48 Mbps57.6 Mbps

Two things follow. First, a pure relay needs little: even eight destinations fit inside the 100 Mbps ceiling of our smallest VPS, which works out to about 13 copies of a 6 Mbps stream with headroom. That ceiling is a per-VM burst limit on a node port shared with other machines, not reserved bandwidth, and traffic is unmetered either way. Second, volume adds up but does not cost extra: three destinations at 6 Mbps is 18 Mbps, or 8.1 GB an hour, so 80 hours of streaming a month sends about 648 GB.

The picture changes if the relay also serves viewers, for example an HLS player on your own site. Then every viewer is another copy: 20 viewers of a 6 Mbps stream is 144 Mbps with headroom, beyond the standard shapes' ceilings. That is the job for the media server VPS line, which has no per-VM bandwidth ceiling.

CPU stays low as long as the relay only copies packets. It rises when you transcode, for example a lower-bitrate rendition for one platform or a vertical crop. We have not benchmarked encoding on these shapes, so if you plan to transcode, test on the shape before an event.

Which ports does a multistream relay need open?

Open only what your chosen tool uses, plus SSH. Outgoing connections to the platforms (1935 for RTMP, 443 for RTMPS) need no inbound rule.

PortProtocolUsed byOpen to
22/tcpSSHEvery setupYour IP only
1935/tcpRTMP ingestnginx-rtmp, MediaMTX, Restreamer, ffmpegYour encoder
1936/tcpRTMPS ingestMediaMTX, RestreamerYour encoder, if you ingest over TLS
8890/udpSRT ingestMediaMTXYour encoder
6000/udpSRT ingestRestreamerYour encoder
80, 443/tcpWeb UI, player, HLS over TLSRestreamer, or a reverse proxyYou, and viewers if you host a player
8888/tcpHLSMediaMTXViewers, only if you serve a player

If your home IP changes, you cannot pin the ingest to it; rely on the tool's publish credentials instead and use a long random key. A public ingest port is also a target. Every Noded VPS includes 100 Gbps of always-on Layer 3/4 DDoS protection; if an attack goes above that, the first five such attacks in a month are still mitigated, and from the sixth the attacked IP is null-routed until the attack stops or you upgrade. Our post on protecting SRT and RTMP ingest covers the rest.

How much does a self-hosted relay cost compared with Restream?

Noded prices below are monthly, in euros, excluding VAT, for Bucharest from our live catalogue. Restream's are its published monthly US dollar prices, read on 2 November 2026.

SetupMonthly priceDestinations at onceNotes
Restream Free$02Restream branding
Restream Standard$193No branding
Restream Professional$495
Restream Business$2398
Noded VPS I (1 vCPU, 2 GB, 20 GB)€4About 13 at 6 MbpsRelay only, 100 Mbps ceiling
Noded VPS II (2 vCPU, 4 GB, 40 GB)€6About 19 at 6 MbpsRoom for Restreamer and recordings
Noded Streaming I (1 vCPU, 2 GB, 20 GB)€9.99Not capped per VMRelay plus viewers on your own player
Noded Streaming II (2 vCPU, 4 GB, 40 GB)€18.99Not capped per VMRelay, viewers and a recording

In Sofia, VPS I is €5.50 and Streaming I €12.99; in Ashburn they are €5.50 and €14.49. Today you can order in Bucharest, Sofia and Ashburn; Amsterdam, Frankfurt and Vienna are on preorder with about 14 days' delivery, and Warsaw is sold out. Recording on the relay uses disk: a 6 Mbps stream is about 2.7 GB an hour, and extra storage is €4 a month per 50 GB.

If you stream a few evenings a month, the standard VPS can also run by the hour: VPS I is €0.0056 an hour, so 20 hours costs about €0.11, or €0.14 if setup pushes you to 25 started hours, since a started hour bills as a full hour. Hourly machines need €5 of account credit, and a machine you destroy stops costing anything from the next hour on. A recreated machine may get a new IP, so point OBS at a DNS name. The media server line is monthly only.

When is a hosted service like Restream still the better choice?

  • You want the extras. Merged chat, analytics, cloud recordings, a browser studio for guests and an automatic backup feed are product features, not a relay. Rebuilding them yourself costs more time than the plan costs money.
  • You need formats per platform. Sending horizontal to one platform and vertical to another means a second encode. On a relay that is CPU you have to size and test.
  • Two destinations and a fast uplink. The OBS plugin, or Restream's free plan if the branding is acceptable, is simpler than renting anything.
  • Nobody wants to run a server. A relay is unmanaged: you patch it, rotate keys and check it before a show. If that sounds like a chore, it is one.

A relay also does not fix the first mile. If your home upload drops packets, every destination suffers. SRT ingest helps there, as our SRT ingest post explains.

Questions people ask

Which self-hosted relay is best for multistreaming?

It depends on who runs it. For a web dashboard, datarhei Restreamer is closest; for a config file and SRT ingest with RTMPS out, MediaMTX; for the lightest plain RTMP fan-out, nginx with the RTMP module. With two destinations and a fast uplink, the OBS plugin needs no server.

Is there a free Restream alternative?

The software is free: nginx-rtmp, MediaMTX, Restreamer, ffmpeg and obs-multi-rtmp are all open source. You pay for the server, or, with the OBS plugin, with your own upload bandwidth.

Can a self-hosted relay give me an HLS link, like Restream's player?

Yes. MediaMTX serves HLS on port 8888, Restreamer has a player page, and nginx-rtmp can package HLS. Every viewer is another copy of the bitrate, so size the server for viewers, not just destinations.

How much bandwidth does multistreaming from a VPS use?

One copy in, and destinations times bitrate out. Five destinations of a 6 Mbps stream is 30 Mbps, or 36 Mbps with headroom, which fits a 100 Mbps VPS.

Running your own relay on Noded

For a copy-only relay, start with VPS I or VPS II from the VPS hosting page; if the same box will serve viewers or record long shows, take a media server VPS instead. Either way you get root, one dedicated IPv4 for the ingest URL and DDoS protection on our own AS60982. The self-hosted multistreaming page has the architecture overview.

← All posts

Related services

Run this on NODED.CLOUD.

Keep reading

More from the NOC.

19 Aug 2026·Mario Marin

Remote Access to Home Assistant via a VPS

Port forwarding exposes your router, and Nabu Casa or Cloudflare Tunnel hand your traffic to someone else's edge. Here's how to run your own WireGuard relay on a cheap VPS instead, and keep the keys to your own Home Assistant remote access.

Read post

Like the way we run things? Spin up a server in 60 seconds.