Convert Figma logo to code with AI

datarhei logorestreamer

The Restreamer is a complete streaming server solution for self-hosting. It has a visually appealing user interface and no ongoing license costs. Upload your live stream to YouTube, Twitch, Facebook, Vimeo, or other streaming solutions like Wowza. Receive video data from OBS and publish it with the RTMP and SRT server.

4,052
454
4,052
182

Top Related Projects

12,676

Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.

12,676

Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.

26,212

SRS is a simple, high-efficiency, real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181.

🐋 A Dockerfile for nginx-rtmp-module + FFmpeg from source with basic settings for streaming HLS. Built on Alpine Linux.

A Node.js implementation of RTMP/HTTP-FLV Media Server

Ant Media Server is a live streaming engine software that provides adaptive, ultra low latency streaming by using WebRTC technology with ~0.5 seconds latency. Ant Media Server is auto-scalable and it can run on-premise or on-cloud.

Quick Overview

Datarhei/restreamer is an open-source video streaming server that allows users to easily set up and manage live video streams. It provides a user-friendly web interface for configuring input sources, output destinations, and monitoring stream health. The project is designed to be lightweight and can run on various platforms, including low-powered devices like Raspberry Pi.

Pros

  • Easy to set up and use, with a intuitive web-based interface
  • Supports multiple input sources and output destinations
  • Lightweight and can run on low-powered devices
  • Active development and community support

Cons

  • Limited advanced features compared to some professional streaming solutions
  • May require additional configuration for complex streaming scenarios
  • Documentation could be more comprehensive for advanced use cases

Getting Started

To get started with Datarhei/restreamer:

  1. Install Docker on your system
  2. Run the following command to start Restreamer:
docker run -d --restart=always -p 8080:8080 -v /path/to/data:/core/data datarhei/restreamer:latest
  1. Open a web browser and navigate to http://localhost:8080
  2. Follow the setup wizard to configure your input source and output destination
  3. Start streaming by clicking the "Start" button in the web interface

For more detailed instructions and advanced configuration options, refer to the project's documentation on GitHub.

Competitor Comparisons

12,676

Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.

Pros of MediaMTX

  • Lightweight and efficient, with lower resource usage
  • Supports a wider range of protocols, including SRT and WebRTC
  • More flexible configuration options for advanced users

Cons of MediaMTX

  • Less user-friendly interface compared to Restreamer's web GUI
  • Fewer built-in features for stream management and monitoring
  • Steeper learning curve for beginners

Code Comparison

MediaMTX configuration example:

paths:
  all:
    readUser: user
    readPass: pass
    publishUser: user
    publishPass: pass

Restreamer configuration example:

{
  "server": {
    "host": "0.0.0.0",
    "port": 8080
  },
  "ffmpeg": {
    "binary": "/usr/local/bin/ffmpeg"
  }
}

MediaMTX focuses on a more compact, protocol-specific configuration, while Restreamer uses a broader JSON structure for its settings. MediaMTX's approach allows for more granular control over individual stream paths, whereas Restreamer's configuration is geared towards its web-based interface and overall system settings.

Both projects serve similar purposes but cater to different user needs. MediaMTX is better suited for users requiring advanced protocol support and fine-grained control, while Restreamer offers a more user-friendly experience with its web GUI and integrated features.

12,676

Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.

Pros of MediaMTX

  • Lightweight and efficient, with lower resource usage
  • Supports a wider range of protocols, including SRT and WebRTC
  • More flexible configuration options for advanced users

Cons of MediaMTX

  • Less user-friendly interface compared to Restreamer's web GUI
  • Fewer built-in features for stream management and monitoring
  • Steeper learning curve for beginners

Code Comparison

MediaMTX configuration example:

paths:
  all:
    readUser: user
    readPass: pass
    publishUser: user
    publishPass: pass

Restreamer configuration example:

{
  "server": {
    "host": "0.0.0.0",
    "port": 8080
  },
  "ffmpeg": {
    "binary": "/usr/local/bin/ffmpeg"
  }
}

MediaMTX focuses on a more compact, protocol-specific configuration, while Restreamer uses a broader JSON structure for its settings. MediaMTX's approach allows for more granular control over individual stream paths, whereas Restreamer's configuration is geared towards its web-based interface and overall system settings.

Both projects serve similar purposes but cater to different user needs. MediaMTX is better suited for users requiring advanced protocol support and fine-grained control, while Restreamer offers a more user-friendly experience with its web GUI and integrated features.

26,212

SRS is a simple, high-efficiency, real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181.

Pros of SRS

  • More comprehensive streaming protocol support (RTMP, HLS, WebRTC, etc.)
  • Higher performance and scalability for large-scale deployments
  • Extensive documentation and active community support

Cons of SRS

  • Steeper learning curve due to more complex configuration options
  • Requires more server resources compared to Restreamer
  • Less user-friendly interface for non-technical users

Code Comparison

SRS configuration example:

listen              1935;
max_connections     1000;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;
http_server {
    enabled         on;
    listen          8080;
}

Restreamer configuration example:

{
  "server": {
    "host": "0.0.0.0",
    "port": 8080
  },
  "ffmpeg": {
    "logLevel": "warning"
  }
}

Both projects offer streaming solutions, but SRS is more feature-rich and scalable, while Restreamer focuses on simplicity and ease of use. SRS is better suited for large-scale deployments and advanced streaming scenarios, whereas Restreamer is ideal for smaller setups and users who prefer a more straightforward approach to video streaming.

🐋 A Dockerfile for nginx-rtmp-module + FFmpeg from source with basic settings for streaming HLS. Built on Alpine Linux.

Pros of docker-nginx-rtmp

  • Lightweight and focused on RTMP streaming
  • Easy to set up and configure for basic streaming needs
  • Utilizes the well-established nginx-rtmp module

Cons of docker-nginx-rtmp

  • Limited features compared to Restreamer's comprehensive streaming solution
  • Lacks a user-friendly interface for managing streams
  • Requires more manual configuration for advanced use cases

Code Comparison

docker-nginx-rtmp configuration:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
            live on;
            record off;
        }
    }
}

Restreamer configuration (simplified example):

{
  "id": "live",
  "source": {
    "type": "rtmp",
    "url": "rtmp://localhost/live"
  },
  "outputs": [
    {
      "type": "rtmp",
      "url": "rtmp://streaming-server/live"
    }
  ]
}

While docker-nginx-rtmp uses a simple nginx configuration for RTMP streaming, Restreamer employs a more structured JSON configuration that allows for greater flexibility in managing multiple streams and outputs. Restreamer's approach provides a more comprehensive solution for complex streaming scenarios, whereas docker-nginx-rtmp is better suited for simpler setups.

A Node.js implementation of RTMP/HTTP-FLV Media Server

Pros of Node-Media-Server

  • Lightweight and efficient, focusing on core streaming functionality
  • Supports multiple protocols (RTMP, HTTP-FLV, WebSocket-FLV, HLS)
  • Easy to integrate into existing Node.js applications

Cons of Node-Media-Server

  • Limited built-in features compared to Restreamer's comprehensive solution
  • Less user-friendly for non-developers, lacking a graphical interface
  • Requires more manual configuration and setup

Code Comparison

Node-Media-Server:

const NodeMediaServer = require('node-media-server');

const config = {
  rtmp: { port: 1935, chunk_size: 60000, gop_cache: true, ping: 30, ping_timeout: 60 },
  http: { port: 8000, allow_origin: '*' }
};

var nms = new NodeMediaServer(config);
nms.run();

Restreamer:

import { Restreamer } from '@datarhei/restreamer-js';

const restreamer = new Restreamer({
  ffmpeg: '/path/to/ffmpeg',
  rtmp: { port: 1935 },
  http: { port: 8080 }
});

restreamer.start();

Both projects provide streaming functionality, but Node-Media-Server focuses on core streaming features with a lightweight approach, while Restreamer offers a more comprehensive solution with additional features and a user interface. Node-Media-Server may be preferred for developers seeking a flexible, low-level streaming server, while Restreamer is better suited for users looking for an all-in-one streaming solution with a graphical interface.

Ant Media Server is a live streaming engine software that provides adaptive, ultra low latency streaming by using WebRTC technology with ~0.5 seconds latency. Ant Media Server is auto-scalable and it can run on-premise or on-cloud.

Pros of Ant-Media-Server

  • Supports more streaming protocols (WebRTC, RTMP, HLS, CMAF)
  • Offers advanced features like adaptive bitrate streaming and low-latency streaming
  • Provides scalable clustering for high-performance deployments

Cons of Ant-Media-Server

  • More complex setup and configuration process
  • Requires more system resources due to its extensive feature set
  • Less focus on simplicity and ease of use for basic streaming needs

Code Comparison

Ant-Media-Server (Java):

@RestController
public class StreamsSourceRestService {
    @GetMapping("/broadcast/getStreamInfo")
    public ResponseEntity<?>  getStreamInfo(@RequestParam String streamId) {
        // Implementation
    }
}

Restreamer (JavaScript):

app.get('/api/v3/process', (req, res) => {
    const processes = restreamer.getProcesses();
    res.json(processes);
});

Summary

Ant-Media-Server is a more feature-rich and scalable solution, suitable for complex streaming scenarios and high-performance requirements. It offers a wider range of protocols and advanced features but comes with a steeper learning curve and higher resource demands.

Restreamer, on the other hand, focuses on simplicity and ease of use, making it a better choice for basic streaming needs or users who prefer a more straightforward setup. It may lack some advanced features but compensates with its user-friendly approach and lighter resource footprint.

The code comparison highlights the different languages used (Java vs. JavaScript) and the more complex API structure in Ant-Media-Server compared to Restreamer's simpler REST API approach.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Restreamer

A really nice and free alternative for handling live streams.

License License Docker pulls Discord Documentation

Try live demo
demo username demo password

Restreamer Promo Video

Self-hosting solution to stream live to your website and publish to many like YouTube-Live, Twitter, Twitch, Vimeo, and other platforms or services. Our Docker-Image is easy to install and runs on Linux environments (MacOS/Windows by Docker Desktop). Moreover, combine the Restreamer with single-board computers like Raspberry Pi or GPU powered systems for Video-Encoding.



Features

  • Simplified User-Interface
  • Easy wizard configuration
  • Multiple audio/video inputs, outputs, protocols, and codecs
  • ReStreaming to platforms such as YouTube-Live, to software such as Wowza Media Server, and others based on protocols such as RTMP, SRT, ...
  • Option to mux a separate audio channel to the video
  • Build-in VideoJS-Player for your Website
  • Configurable publication website for streaming without player embedding
  • Content license with Creative Commons
  • HTTP/S- (HLS), RTMP/S- & SRT-Streaming Server
  • Automatic Let's Encrypt HTTPS certification
  • Viewer/Bandwidth Monitoring and limiting
  • Raspberry Pi (MMAL/OMX), Nvidia Cuda, Intel VAAPI support
  • Support for Hardware- and Virtual-Devices
  • FFmpeg Video-Processing (as native as possible)
  • REST-API (JSON) and 100% Swagger documented
  • Resource Monitoring (optionally by Prom-Metrics)
  • Server- and Process-Logging
  • GDPR compliant without third-party providers and does not save audience data

Quick setup

AMD64/ARMv7/ARM64:

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

--privileged just for local devices like usb cameras.
Try --security-opt seccomp=unconfined if no network source can be reached.

ARMv7/ARM64 Raspberry Pi:

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

--privileged just for local devices like usb cameras.
Try --security-opt seccomp=unconfined if no network source can be reached.

AMD64 Nvidia Cuda:

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

--privileged just for local devices like usb cameras.
Try --security-opt seccomp=unconfined if no network source can be reached.

AMD64 Intel VAAPI:

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

--privileged just for local devices like usb cameras.
Try --security-opt seccomp=unconfined if no network source can be reached.

For external access (http/s, rtmp/s, srt), port forwarding from your Internet-Router to the Restreamer's internal IP address may need to be set up.

Documentation

Documentation is available on docs.datarhei.com/restreamer. We give many pieces of information, from setting up a camera, embedding your player upon your website, and streaming to services like, e.g., YouTube-Live, and many more.

Development

Create a custom image (bundle):

Restreamer FFmpeg:

$ git clone github.com/datarhei/ffmpeg
$ cd ffmpeg
$ docker build -f Dockerfile.alpine -t myffmpeg .

Restreamer backend (Golang):

$ git clone github.com/datarhei/core
$ cd core
$ docker build -t mycore .

Restreamer interface (React):

$ git clone github.com/datarhei/restreamer-ui
$ cd restreamer-ui
$ docker build -t myrsui .

Restreamer bundle:

$ git clone github.com/datarhei/restreamer
$ cd restreamer
$ docker build --build-arg FFMPEG_IMAGE=myffmpeg --build-arg CORE_IMAGE=mycore --build-arg RESTREAMER_UI_IMAGE=myrsui -t myrestreamer .
$ docker run -it --rm -p 8080:8080 myrestreamer

To add/fix translations in the Restreamer interface:

The Restreamer interface is currently translated in different languages, such as German, French, Italian, Spanish, and more. If you find errors in the translations or have better suggestions for some sentences, you can become a translation contributor on poeditor.com. There you can also start a translation into a language that is not yet available in the Restreamer interface.

Contribute to the translations on: https://poeditor.com/join/project/ogATl3F48K

Community support

For general help using Restreamer, please refer to the official documentation. For additional support, you can use Github to ask a question (Bug reports, Contributions, Features).

License

See the LICENSE file for licensing information.

Business inquiries

We provide support for commercial requirements with professional support, agile software development, and consulting. If you have a commercial request, be it a bug or a feature enhancement, please contact us directly at support@datarhei.com.