Restreamer

Admin dashboard on a monitor: a live aquarium feed next to its Twitch and YouTube Live outputs and a count of two viewers.

One live input, republished from a server you run

Restreamer is a self-hosted live video server. It takes a feed pushed from OBS or pulled from an IP camera, a USB camera or a Raspberry Pi camera, and republishes it to YouTube, Twitch, Facebook or any endpoint that speaks RTMP, SRT or HLS. The instance can also serve the stream to viewers through an embeddable player. FFmpeg handles the video; datarhei Core, written in Go, manages the FFmpeg processes behind a React web interface. The README pitches the project as a free alternative to video hosting providers and calls it GDPR compliant, with no third-party providers and no audience data kept.

RTMP, SRT and HLS servers, one Docker image per encoder

  • Ingest and playback in one container: HLS over HTTP/S, RTMP/S and SRT servers, used both to receive a stream and to hand it on.
  • Publication targets already documented: the docs list services for YouTube, Facebook, Twitch, Instagram, TikTok, LinkedIn and PeerTube, CDNs such as Akamai and CDN77, and servers like Wowza, Icecast and Owncast.
  • Hardware encoding by image tag: cuda-latest for Nvidia, vaapi-latest for Intel, rpi-latest for the Raspberry Pi (MMAL/OMX). Plain latest covers AMD64, ARMv7 and ARM64 without acceleration.
  • A watch page with nothing to embed: the publication website comes with a VideoJS player, a template, design settings and HTML code injection.
  • Viewer and bandwidth caps: the interface tracks both and can limit them. System resources can be exported as Prometheus metrics, and Let's Encrypt supplies the HTTPS certificate.
  • JSON REST API: 100% Swagger-documented according to the README. It is the datarhei Core API, the same one the web interface calls.

Upload scales with destinations, no release since 2024

Every destination is pushed from the machine running Restreamer. A publication service sends the stream to its target itself, so the host's upstream link carries one copy per platform. When a home connection lacks upload capacity, the docs recommend running Restreamer at a cloud or hosting provider. Reaching the instance from outside takes a public IP and port forwarding: 80 and 443 to 8080 and 8181 for the player, the watch page and Let's Encrypt, plus 1935, 1936 and 6000/udp when RTMP, RTMPS or SRT has to be reachable.

Latency depends on where each publication pulls from. By default a publication takes the channel's HLS stream, which the docs put at 10 to 30 seconds minimum. Pulling from the RTMP server cuts that to 1 or 2 seconds, and the SRT server gets it under a second, provided the server is enabled in the system settings and then turned on for the channel.

On the server side, the official requirements come down to Docker or Podman. The docs say the hardware and OS don't matter as long as Docker runs, and name a current Raspberry Pi as the best place to install it, though the verified models stop at the Pi 4 Model B. USB cameras and hardware encoding need the container started with --privileged, a mode the docs reserve for that case on security grounds.

v2.12.0, released on September 13, 2024, is still the latest version. It bundles UI 1.14.0, Core 16.16.0 and FFmpeg 6.1.1, and every docker run command in the README pulls it through a latest tag. No release has followed in more than two years. Work goes on in the development images: a scheduled workflow rebuilds the dev tags every day, and they moved to FFmpeg 8.1.1 in May 2026.