The direct answer: Restreamer is a capable relay UI, not a Cloud OBS replacement
Datarhei Restreamer is a legitimate self-hosted video tool. Its official docs describe a browser UI around video sources, FFmpeg processing, publication services, a player site, and system/process views. It can receive or pull a source, transcode when the workflow needs it, and send a program to an external service. That is useful when you want to own the machine, the routing, and the configuration instead of paying for a managed video control plane.
It is not an IRLToolkit-style full production service or a direct Cloud Hosted OBS substitute. Restreamer does not turn a phone feed into an OBS scene collection with browser sources, a producer-controlled privacy cut, prepared fallback scenes, and managed destination operations by itself. You can bolt FFmpeg processes, a player, reverse proxy, storage, monitoring, and another control surface around it. That can be a great engineering project. It is still a stack you operate, not a managed show layer.
For most serious IRL streamers, StreamableRun is the better default because it combines Cloud Hosted OBS, SRT/SRTLA and RTMP ingest, stream drop protection, fallback scenes or clips, multiple ingests, remote production, recording, and destination management in one cloud workflow. Pick Restreamer when self-hosted restreaming or a controlled venue/site workflow is the main job. Pick StreamableRun when keeping a public program controlled while the field feed gets shaky is the main job.
Sources and references
Restreamer and StreamableRun operate different layers
This comparison was checked against the official Restreamer docs, GitHub project and public StreamableRun product surface on July 12, 2026. It is a workflow comparison, not an uptime ranking or a promise that either path removes the need for a rehearsal.
| Decision point | StreamableRun | Datarhei Restreamer |
|---|---|---|
| Primary job | Managed Cloud Hosted OBS workflow for contribution ingests, program scenes, recovery content, producer access, recording, and final destinations. | Self-hosted FFmpeg-based source, processing, restreaming, player, and control UI that you deploy and operate. |
| Inputs and outputs | Use account-specific SRT/SRTLA or RTMP ingests from mobile apps, local OBS, or compatible encoders, then route the produced program to configured destinations. | The Restreamer wizard documents HTTP/HTTPS HLS or DASH, RTP, RTSP, RTMP, and SRT network sources plus local hardware options; its UI documents RTMP and SRT publication paths and an HLS player site. |
| Field-feed loss | A producer can keep a rehearsed BRB, clips, privacy, technical, or backup-ingest scene on the public program while the field source recovers. | You must design the response in your source, FFmpeg/process configuration, and downstream destination. Restreamer does not document an equivalent managed Cloud OBS recovery-scene workflow. |
| Operations ownership | The production workflow is managed; still confirm current plan limits, destination capacity, and access roles before a show. | You own Docker/image updates, host sizing, ports, TLS or proxying, access control, secrets, hardware drivers, egress, backups, alerting, and recovery. |
A protocol checkbox is not a production workflow. Verify the exact Restreamer image, host acceleration, encoder, destination, and StreamableRun plan with a private end-to-end test before a paid or public show.
What Restreamer actually gives a technical operator
Restreamer is strongest when the job is to make a source usable and send it somewhere else without living in a shell all day. Its wizard and source pages document network pulls and receives, hardware sources, an internal RTMP server, an internal SRT option, multi-video source switching, publication services, player settings, process details, process reports, and a system monitor. The main page shows runtime, bitrate, frame rate, viewer count, and publication bitrate. For a venue camera, a static event, an IP camera, or a small broadcast rack, that is a friendly amount of control.
The source side is broader than a plain RTMP relay. Official Restreamer documentation lists HTTP/HTTPS sources including HLS and DASH, RTP, RTSP, RTMP, and SRT. The publication documentation describes RTMP and SRT outputs, and the player-side docs expose HLS alongside RTMP, SRT, and snapshot addresses. A common use is simple: camera or OBS into Restreamer, then Restreamer to YouTube, Twitch, or another service with that service's stream key. That can avoid feeding every source device a platform key.
There is real transcoding and process visibility here, not just a URL form. The UI exposes source processing settings and documented encoder choices; the project ships images for standard CPU, NVIDIA CUDA, Raspberry Pi-oriented, and VAAPI variants in the latest tagged release. CPU and memory are monitored in the UI, while process details and reports make it easier to inspect what a running FFmpeg job is doing. Hardware acceleration is still a host-and-image decision: a CUDA image does not give a rented VM a GPU, and a Pi image does not make every codec or resolution free.
Restreamer, datarhei Core, and the update question are not the same thing
This distinction matters. Restreamer is the end-user streaming product and UI. Datarhei Core is a separate FFmpeg process-management engine with its own API, release history, documentation, and capabilities. Restreamer uses Core, and the Restreamer developer page points builders to Core's REST and GraphQL API material. That does not mean every current Core capability automatically appears in the Restreamer UI or in the tagged Restreamer image you are about to deploy.
As checked on July 12, 2026, the Restreamer GitHub project is public, not archived, Apache-2.0 licensed, and its default branch had a May 22, 2026 commit titled "Bundle with FFmpeg 8." Its latest tagged GitHub release, however, remains v2.12.0 from September 13, 2024. That release lists AMD64, ARM64, ARMv7, CUDA, Raspberry Pi, and VAAPI image variants. That is a useful signal: inspect the image tag, release notes, branch, and your rollback plan instead of casually deploying `latest` before a stream. Recent repository activity is not the same as a new tagged production release.
The API and storage story needs the same discipline. Core documents FFmpeg process management, logs, statistics, HTTP/RTMP/SRT services, in-memory/disk/S3-style storage options, and API security controls. Restreamer's disk-space page documents memory and disk cache controls and recommends basic authentication for writes to its memory filesystem. Those facts make Restreamer adaptable, but they are not a promise of automatic show recordings. Design a recording workflow, retention window, disk alarm, and off-host archive deliberately; do not treat live HLS segments or a cache as your only recording.
Draw the signal paths before choosing
A Restreamer signal path can be clean and useful: phone app, camera, local OBS, or backpack encoder → SRT or RTMP to a Restreamer host, or Restreamer pulls an RTSP/HLS source → Restreamer processing/transcode or passthrough → RTMP or SRT publication to a platform, another server, or a private endpoint. If the audience needs a site you control, Restreamer can also expose its player path. The point is that your host owns the ingress, process, and outgoing traffic.
A StreamableRun signal path is deliberately more production-shaped: Moblin, IRL Pro, local OBS, or a compatible encoder → named SRT/SRTLA or RTMP contribution ingest → Cloud Hosted OBS → main, backup, BRB, privacy, technical, or clips scene → Twitch, Kick, YouTube, or a custom RTMP destination. The contribution source and the viewer-facing program are separate on purpose. A producer can operate the show while the person holding the phone fixes signal, power, microphone, or framing.
For a phone walking through bad coverage, the second signal path is usually the safer fit. Restreamer can accept SRT where the configured image and source workflow support it, but it is not itself a cellular bonding service or SRTLA recovery layer. For a backpack or bonded encoder, Restreamer can be an endpoint if you own the network and ports; StreamableRun is the better default if the team needs Cloud OBS scenes, named backups, and producer handoff. For a venue camera or 24/7 house feed, Restreamer's self-hosted control and repeatable static routing can be attractive when a technical operator already owns the host.
What Restreamer does not provide by itself on an IRL show
Restreamer is not weak because it lacks every broadcast feature. It is a different tool. But do not give it a job the documented workflow does not cover. It is not a managed OBS compositor with a remote producer operating a full scene collection. It does not supply StreamableRun's documented stream-drop-protection behavior, where the public program can switch to a prepared offline scene while the ingest is absent. It is not a mobile app, a bonding product, or a promise that a field connection will remain usable.
That leaves several pieces for the self-hosted operator: a backup contribution path; a clear source-selection or relay recovery command; a safe image/video/BRB fallback; browser-source composition if the program needs alerts or chat; platform destination status checks; an archive destination or recorder; staff access boundaries; and a person who can act while the streamer cannot. A single Restreamer host can handle a narrow, reliable job beautifully. It should not be sold as a replacement for an entire IRL control room.
StreamableRun is only superior where that managed production layer is what you need. Its public plan/features surface includes Remote Cloud OBS, Drop Protection, multiple ingests, destination capacity, friend connections, and Max-plan recordings. Those are operator-facing features, not evidence that a 4G dead zone vanishes. You still need a tested field encoder, enough battery, clean audio, a backup route, and someone watching both the contribution and the real destination playback.
- Use Restreamer when you want to own a bounded relay/transcode/player workflow and have an actual maintainer for it.
- Use StreamableRun when a producer must keep a scene-based public program controlled through source loss, a handoff, or a destination change.
- Use neither as an excuse to skip a field-network test, a battery test, or a private destination check.
Sources and references
The self-hosted bill is hardware, egress, security, and attention
Do not compare a Restreamer container's no-license-cost model with a managed plan by pretending the server is free. Start with compute: one copy/passthrough path is not the same load as decoding, filtering, and encoding multiple outputs. Add CPU or GPU class, RAM, persistent disk, backup space, and the cost of a second host if the stream cannot tolerate a single machine. Then add the actual network bill. One 6 Mb/s output for a three-hour show is about 8.1 GB before protocol overhead; each independent output and each viewer-delivery design changes the number.
For a restream-to-platform setup, estimate egress as output bitrate in megabits per second × show seconds ÷ 8, then convert to GB and multiply by every outgoing platform route. For self-hosted HLS delivery, estimate selected viewer bitrate × average concurrent viewers × show seconds ÷ 8. Add a planning margin for overhead, retries, segments, monitoring, and peaks. If you transcode, calculate each rendition's CPU/GPU cost separately; copying a stream is not a safe substitute if the target codec, audio, keyframe interval, or bitrate is wrong.
Security and change work have a cost too. Use the official Docker image as Datarhei recommends, pin a tested tag rather than treating `latest` as a release policy, scan/review the update, back up configuration and any persistent volume, and rehearse rollback. Put the admin UI behind HTTPS and restrict access. Rotate stream keys after accidental exposure. Keep the API private unless a specific integration needs it; Core's security docs recommend authentication and support IP allow/block rules. Open only the ports your signal path requires, and monitor the host, process, disk, outbound routes, and public playback separately.
Can you combine them? Yes, but give each layer an owner
A sensible combined pattern is not Restreamer in front of Cloud OBS because that sounds advanced. It is a deliberate split. For example: mobile or backpack encoder → StreamableRun ingest → Cloud Hosted OBS program, scenes, and recovery → custom RTMP destination at Restreamer → a self-hosted player site or controlled onward publication. That lets StreamableRun handle the moving-source and show-control problem while Restreamer owns a separate self-hosted endpoint.
The reverse can also be valid for a fixed venue: fixed cameras → Restreamer handles source acquisition/transcode → a tested RTMP contribution into a StreamableRun ingest → Cloud OBS adds program scenes and sends destinations. Do this only when the extra hop solves a real requirement such as a local camera protocol or a venue-owned relay. Every extra encoder, host, key, and network boundary is another failure boundary, so it needs a named owner and test.
For the first private soak, test for at least the expected show length. Start a source, force a reconnect, change the source resolution only if the real sender can do that, restart the Restreamer process in a maintenance window, verify Cloud OBS fallback, then watch the actual public player on every important destination. For a load test, use a non-public stream or synthetic source, add the intended output routes one at a time, and watch CPU/GPU, memory, disk, outbound bandwidth, process restarts, and end-to-end delay. Never load-test a live audience by surprise.
Troubleshooting matrix: find the broken boundary before changing settings
Do not react to a viewer complaint by changing bitrate, scenes, and server settings at the same time. Check one boundary, make one change, then verify the result at the public destination.
| Symptom | First check | Recovery move |
|---|---|---|
| Phone or backpack feed disappears | Check the field sender's network, battery, encoder status, and selected ingest; confirm whether a backup ingest is available. | Keep the public program on a safe StreamableRun fallback scene, or on the self-hosted fallback you deliberately built, while the source reconnects. |
| Restreamer accepts input but platform is blank | Inspect Restreamer publication/process status, target URL and key, codec/audio compatibility, host egress, and platform ingest health. | Restart only the failed publication/process after preserving logs; do not restart every working route blindly. |
| CPU, GPU, or disk climbs during a show | Identify the process/output that began transcoding, inspect active rendition count and disk/cache use, and compare them with the rehearsal baseline. | Remove an unneeded output or move to a tested lower-load preset; do not change codecs live without a rollback path. |
| Producer cannot make the safe cut | Check that the producer has the correct Cloud OBS/control access and that the emergency scene was rehearsed. | Do not hand out root or admin credentials under pressure. Use the preassigned operator and the documented fallback path. |
Other resources
Use the official material below to verify current Restreamer behavior and the StreamableRun guides to plan the field-production side. Tool releases, images, plan limits, and platform ingest rules can change, so treat a private rehearsal as part of the decision rather than an optional final step.
Quick answers
Frequently asked questions
What is the best choice for a one-camera venue stream?
Restreamer can be a strong choice when a technical operator owns the server and the work is pulling a stable camera feed, transcoding it if needed, and publishing it to a known set of outputs. Test the host, encoder, storage, keys, and outgoing bandwidth before the event.
Is Restreamer an IRLToolkit alternative?
Only in the narrow sense that it can be part of a self-run streaming path. It is not a like-for-like managed IRL control plane with Cloud OBS scene production and documented drop-protection workflow. If you need a relay/transcode/control UI you maintain, compare it seriously. If you need a team to operate an IRL program during mobile instability, compare it to StreamableRun as a different category.
Do I need SRTLA or Cloud OBS?
They solve different problems. A resilient contribution transport can help carry a field feed through imperfect networks. Cloud OBS decides what the audience sees, holds scenes and overlays, and gives the producer a safe place to recover. A serious show may use both. Do not assume Restreamer's documented SRT support means it is an SRTLA product.
Can Restreamer record my stream?
Build and test a recording path rather than assuming it. Its documented storage and filesystem controls can support a designed workflow, but a cache or HLS segment store is not automatically a durable archive. StreamableRun publicly lists recordings on its Max plan; check the current plan and retention terms before relying on it.
How should I migrate without risking the next stream?
Clone the destination settings into a private environment, keep the old program path intact, send a test source through the new path, verify audio/video and recovery scenes, then run a full-length soak. Switch one production variable at a time. Keep a dated rollback runbook with no secrets inside it.