arrow-left

Only this pageAll pages
gitbookPowered by GitBook
triangle-exclamation
Couldn't generate the PDF for 106 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

🇺🇸 English

Loading...

Getting started

Loading...

Loading...

Installing

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Knowledge Base

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Developer

Loading...

Overview

After successful installation, logging in, and creating a video source, you will get to the start screen.

hashtag
The Main screen

After successful login, the main screen is a central point in the system and the starting point for all other settings.

circle-info

Without an active video source, the Video Wizard appears.

hashtag
Learn more

Quick Start

With a few simple steps, a live stream is ready for your website, an external streaming service, social networks, YouTube, or directly on the finished micro page!

hashtag
1. Install and start

Load the Docker container and start with the default user credentials. The default ports for HTTP are 80 and for HTTPS 443.

circle-check

Standardports HTTP: 80 ; HTTPS: 443

circle-exclamation

Port forwarding (80>8080, 443>8181) of the public ports is necessary for full functionality.

triangle-exclamation

Use a secure and unique password.

hashtag
2. Add video source

The wizard helps to activate a video source.

hashtag
Audio

Optionally, the use of sound is possible via the configurator.

circle-info

AAC and Mp3 formats are supported.

hashtag
4. Integrate video player on the website

Becoming a live streaming superhero with the Restreamer is a pretty simple process:

circle-info

Port forwarding is necessary for the audience to see the live stream.

hashtag
5. Optional: Customize video player

The video player is ready to use. It is straightforward to customize the color, logo, and link.

hashtag
6. Optional: Customize video page

The video page is active immediately and is provided via localhost.

hashtag
7. Optional: Select publication service

Many great things are possible once the datarhei Restreamer is "on-air". Why not start a publication service with a live broadcast on YouTube?

circle-info

🧙Tip: You can create, start and run as many services as you like.

hashtag
Learn more

datarhei Restreamer

datarhei Restreamer provides real-time live video streaming on websites and social media platforms without additional streaming provider costs for video hosting or software licensing costs.

datarhei Restreamer is a modern video streaming platform where teams can live stream and restream everything from webcams to broadcasting. We want to help teams to stream more efficiently by creating a simple yet powerful service for them to live stream video. Our mission is to make a user-friendly and powerful product for everyone to stream video.

circle-info

datarhei Restreamer is best installed on a current Raspberry Pi. The hardware and the operating system do not matter - as long as Docker is available.

Official Recommendations

Official production deployment recommendations

hashtag
Introduction

To obtain official support from our team, we have a minimum set of requirements. These requirements are necessary for us to access essential system information, provide an SLA, answer questions, or give a solution to the problem.

Only installations matching these minimum requirements can be covered by our SLAs and our paid Support Policy; some conditions may vary depending on the installation size, as described below.

docker run -d --restart=always --rm --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
hashtag
What does the datarhei Restreamer offer?
  • Live streaming on websites without additional service providers, video hosting providers. Instantly available, free of charge, and without advertising.

  • Share live videos publicly or privately with anyone, or use a secret link to give your audience access to private content.

  • Enjoy a simple streaming server with self-installation on your server or Raspberry Pi. Or sign up on our website and use our ready-to-go .

  • The fully documented API helps with software development. datarhei Restreamer is very easy to adapt to any project.

hashtag
Learn more

hashtag
Docker container

We strongly recommend using our official Docker images to eliminate environment issues of missing, outdated, or mismatching dependencies, specific operating system issues, or issues during manual installations.

circle-info

The datarhei Restreamer's cloud uses our official Docker images, making this installation method the most tested.

is widely used for packaging applications in containers and distributing them as images, providing abstraction and isolation layers from the OS (operational system). In addition, it allows the application to be shipped with a specific version of the OS compatibility layer and its dependencies already installed and configured.

hashtag
Learn more

System settingschevron-right
Multi Video sourcechevron-right
Publication serviceschevron-right
Stream settingschevron-right
Video player settingschevron-right
System monitoringchevron-right
Process detailschevron-right
Process reportchevron-right
Manualchevron-right
Quick Startchevron-right
Fig. 1: The main screen of the datarhei Restreamer.
💾Installingchevron-right
📚Knowledge Basechevron-right
👨‍💻Developerchevron-right
⭐Premium Supportchevron-right
Dockerarrow-up-right
💾Installingchevron-right
📚Knowledge Basechevron-right
👨‍💻Developerchevron-right
⭐Premium Supportchevron-right
datarhei Service
🏁Getting startedchevron-right
💾Installingchevron-right
📚Knowledge Basechevron-right
👨‍💻Developerchevron-right
⭐Premium Supportchevron-right
Fig. 1: Main screen of datarhei Restreamer v2.
Fig. 2: Overview of Publication Services in datarhei Restreamer V2
Fig. 3: Overview of the different streaming protocols from datarhei Restreamer V2.

Minimum Requirements

Once Docker runs on the host, there is an excellent chance to use the Restreamer.

hashtag
Restreamer via Docker

Docker Engine is free and available on various Linux platforms, macOS, and Windows via Docker Desktop and as a static binary installation.

hashtag
Restreamer via Podman

Podman is a free and recommended alternative for Docker.

hashtag
Web Browsers

hashtag
Unsupported browsers and operating systems

To provide the best possible Restreamer experience, we keep our list of supported browsers and operating systems short. We do not fix bugs or issues with unsupported browsers.

hashtag
Learn more

Linux

Install and run datarhei Restreamer on Linux with a 64bit Intel or AMD CPU in a Docker container.

circle-check

After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.

hashtag
Requirements

  • 64Bit Intel or AMD CPU

  • A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.

  • hashtag
    Preparation

    hashtag
    Step 1: Install Docker

    Download, install and run Docker Desktoparrow-up-right. Follow the installation instructions. If you are already using Docker, skip this step.

    hashtag
    Installation

    hashtag
    Step 2: Start the Restreamer

    Without hardware support

    Start with hardware support for Nvidia CUDA

    Start with hardware support for Intel VAAPI

    circle-exclamation

    For security reasons, start the Restreamer only with --privileged if you need hardware support.

    hashtag
    Step 3: Open the Restreamer

    Open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    hashtag
    Important: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup.

    hashtag
    Description of the most important commands for the use of environments

    -d Deletes the container. This means that the container is executed in the background. You can run it interactively in the foreground with -it instead of -d. To stop the restreamer in detached mode, type docker stop restreamer. In interactive mode, simply press Ctrl-C to stop the restreamer.

    --name restreamer Set the container the name restreamer. This name can be used in other Docker commands to control the container. For example, to stop the Restreamer, type docker stop restreamer. While the Restreamer is running, you can log into the container with docker exec -it restreamer /bin/bash.

    --restart=always If the Restreamer crashes or the device reboots, Docker restarts the Restreamer automatically.

    --publish 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    --publish 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    --publish 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    --publish 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    --publish 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    --volume ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    --volume ${HOME}/restreamer/data:/core/data The Restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    Environment Variableschevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right

    Browser

    Requirements

    Google Chrome

    Latest 3 versions

    Mozilla Firefox

    Latest 3 versions

    Safari

    Latest 2 versions

    Microsoft Edge

    Latest 2 versions

    Microsoft Internet Explorer

    Good luck!

    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right

    Mac

    Install and run Restreamer on Mac with Docker Desktop.

    circle-check

    After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Preparation

    hashtag
    Step 1: Install Docker Desktop

    Download, install and run . Follow the installation instructions. Start Restreamer container in Docker Desktop. If you already installed Docker Desktop jump to next step.

    hashtag
    Step 2: Pull the container with the Restreamer

    Open the Terminal and load the cotainer from Docker Hub. Use the command:

    hashtag
    Step 3: Run Restreamer Container

    Start Docker Desktop and go to Images. The Restreamer is in the list. A click on RUN takes you to the next step.

    hashtag
    Step 4: Configurate your Restreamer container and start

    The next step is to set the container's name, the ports for access in the browser, and the video data. Finally, place the volume settings so that the login data and the restreamer are permanently saved! Otherwise, the settings and login data will be gone with the next update. Click Run to start the Restreamer for the first time.

    • Name A logical name helps to find the container again.

    • Ports Transfer the numbers from the Container Ports field to the empty areas on the left.

    • Volumes Choose a folder on the windows machine where you want to store the settings and configuration of the restreamer permanently. The Destination path is /core/config

    hashtag
    Step 5: Open Browser to login

    Click on the 8080:8080 opens the default browser with the Restreamer front door. You can otherwise also open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    hashtag
    Step 8. First login

    When you log in for the first time in your Restreamer, you have to enter your credentials.

    hashtag
    Additional information: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup. They are admittedly not so essential for Docker Desktop, but it does not hurt if you know them!

    hashtag
    Description of the most important commands for the use of environments

    -p 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    -p 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    -p 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    -p 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    -p 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    -v ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    -v ${HOME}/restreamer/data:/core/data The restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    Service

    Register your datarhei Core at datarhei Service for free.

    Follow us on Twitter or YouTube and sign up for our newsletter, so you don't miss the launch of the datarhei service.

    Twitter YouTube Newsletter

    docker run --detach --rm --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:latest
    docker run --detach --runtime=nvidia --rm --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:cuda-latest
    docker run --detach --rm --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:vaapi-latest
    twitter.com/datarhei arrow-up-right
    https://www.youtube.com/user/datarheiarrow-up-right
    https://datarhei.comarrow-up-right

    Manual

    User Guides

    and
    /core/data
    .
    Docker Desktoparrow-up-right
    latest Restreamerarrow-up-right
    Loginchevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    Fig 1. Docker pull command in macOS terminal
    Fig 2. Docker Desktop with Restreamer Image
    Fig 3. Restreamer Desktop settings with ports and path on volume
    Fig 4. Active Restreamer container in Docker Desktop.

    Raspberry Pi / ARM

    Install and run Restreamer on a Raspberry Pi 3, P 4, or other devices with an ARMv6, ARMv7, or ARMv8 CPU in a Docker container.

    circle-check

    After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Requirements

    • Raspberry Pi 3 or Pi 4

    • ARM CPU with arm32v7 or arm64v8 architecture.

    hashtag
    Verified Raspberry Pi models

    • Raspberry Pi 3 Mod. A+

    • Raspberry Pi 3 Model B+

    • Raspberry Pi 4 Mod. B

    circle-info

    Alternative single-board computers with enough power are e.g., or from the manufacturer .

    hashtag
    Preparation

    hashtag
    Step 1: Install Docker

    If you are already using Docker, skip this step.

    1. Install the latest on a memory card.

    2. Log in to the Pi and install Docker according to the

    hashtag
    Installation

    hashtag
    Step 2: Start the Restreamer

    Start with hardware support for arm32v7

    Start without hardware support for arm32v7 and arm64v8

    circle-exclamation

    For security reasons, start the Restreamer only with --privileged if you need hardware support.

    hashtag
    Step 3: Open the Restreamer

    Open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    hashtag
    Raspberry Pi Camera

    Please check out our guide:

    hashtag
    Important: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup.

    hashtag
    Description of the most important commands for the use of environments

    -d Deletes the container. This means that the container is executed in the background. You can run it interactively in the foreground with -it instead of -d. To stop the restreamer in detached mode, type docker stop restreamer. In interactive mode, simply press Ctrl-C to stop the restreamer.

    --name restreamer Set the container the name restreamer. This name can be used in other Docker commands to control the container. For example, to stop the Restreamer, type docker stop restreamer. While the Restreamer is running, you can log into the container with docker exec -it restreamer /bin/bash.

    --restart=always If the Restreamer crashes or the device reboots, Docker restarts the Restreamer automatically.

    --publish 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    --publish 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    --publish 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    --publish 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    --publish 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    --volume ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    --volume ${HOME}/restreamer/data:/core/data The Restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    Network source

    Use audio signal with the video channel from the network.

    Fig. 1: Audio via network source

    hashtag
    Audio source selection

    hashtag
    2 Source

    • Silence

    • Noise

    • Sine

    hashtag
    Sampling rate

    We recommend the standard sampling rate of 44100 Hz.

    • 96000 Hz

    • 88200 Hz

    • 48000 Hz

    Sampling rate of the audio stream.

    hashtag
    4 Layout

    Stereo and mono support.

    hashtag
    5 Check

    After selecting the settings, the audio stream must be checked. The setting can only be saved after a successful check.

    circle-check

    > CHECK If the audio source is not accepted, the error message can be displayed directly. By clicking on: "View details of the check".

    hashtag
    Learn more

    Publication Website

    datarhei Restreamer provides a ready-made website for easy and quick presentation of the live stream. The publication website is equipped with a video player and ready to go.

    hashtag
    Configuration menu

    Edit the individual elements and extend them with HTML code elements.

    Fig. 1: Configuration menu of the publication website.
    General settingschevron-rightTemplatechevron-rightDesignchevron-rightNoteschevron-rightCode injectionchevron-right

    hashtag
    With two clicks to the settings of the publication website

    hashtag
    Learn more

    How can I display a live stream on my website?

    The Restreamer provides a video player in iFrame for embedding in HTML on web pages.

    hashtag
    The HTML iFrame snippet for your website is in the datarhei Restreamer

    If you want to display your live stream on your website in a CMS like WordPress or a homepage builder like Wix or Jimdo, you can use an automatically generated iFrame HTML code snippet for it.

    circle-exclamation

    Don't forget to forward the TCP port to use the HTML code successfully on your website. Please refer to your router's manual on how to enable port forwarding.

    hashtag
    Learn more

    How can I receive an RTMP stream?

    Use the internal RTMP server as a video source.

    hashtag
    Receiving video source via RTMP using OBS as an example

    The Restreamer has an internal RTMP server function. The function can be used to receive any RTMP-enabled video sources. The video shows the popular OBS software as the transmitter for the RTMP stream and the Restreamer as the receiver. Once the video stream is up, the Restreamer is ready for all functions.

    hashtag
    Learn more

    No audio

    For livestreams without audio.

    Fig. 1: No audio

    hashtag
    Learn more

    Audio settingschevron-rightUser Guideschevron-right

    Audio settings

    Edit the audio settings for the sources.

    Fig. 1: Open stream settings menu
    Fig. 2: Audio settings submenu
    Fig. 3: Select one of the existing audio settings
    Network sourcechevron-rightVirtual audio sourcechevron-rightNo audiochevron-right
    circle-check

    > CHECK If the audio source is not accepted, the error message can be displayed directly. By clicking on: "View details of the check".

    hashtag
    Learn more

    How to use the audio filters?

    The filters for audio software encoders are:

    hashtag
    Sampling

    You can manipulate the sampling rate of the input signal (which already existed before directly in the encoder)

    hashtag
    Layout

    Sets the audio layout (mono, stereo, unprocessed)

    hashtag
    Pan

    Can mute the left or right channel

    hashtag
    Volume

    Lets you set the level (10-90% or custom with dB value)

    hashtag
    Volume normalization

    FFmpeg tries to bring the noise level to an average level.

    Login

    To set up your Restreamer, you need to open the graphical user interface in a browser and log in with your credentials.

    Fig. 1: Login screen in datarhei Restreamer.

    For access, you need the login name and the password, which you have assigned at the 1st login after the installation.

    circle-info

    If you have forgotten the login name or password, you can look into the config.json.

    hashtag
    Learn more

    Notes

    Customize imprint and terms of use in the footer of the publication website.

    hashtag
    1 Notes

    Fig. 1: Menu for the two settings at the bottom of the publication website.

    hashtag
    2 Imprint

    The link to the imprint becomes active in the footer when a text is placed in the text field and saved.

    hashtag
    3 Terms

    The link to the terms of use becomes active in the footer when a text is in the text field and is saved.

    hashtag
    4 Open publication website

    Opens the publication website in a browser tab.

    hashtag
    5 Save

    Save to save the settings.

    hashtag
    Learn more

    Quick start guide: Installing the open-source video streaming server Restreamer for experts.
    Quick start guide: The wizard helps to create video and audio files.
    Quick start guide: Customize video page

    Video settings

    hashtag
    Video tutorial

    hashtag

    RTMP

    Configuration settings for the internal RTMP server.

    hashtag
    1 RTMP settings

    circle-info

    Locked settings that have been set with environment variables at startup are marked with

    Code injection

    The custom code injection helps use external widgets or styles for advanced users. You will find some example code on the help page.

    hashtag
    2 Extend header

    Insert code in the header style. Code at the end of the body, for example, to use external scripts.

    General system settings

    Check and control all device settings.

    hashtag
    1 General system settings

    circle-info

    Locked settings that have been set with environment variables at startup are marked with

    Authorization

    Check the credentials for the administrator and in the expert mode for IP addresses.

    hashtag
    1 Authorization settings

    hashtag

    Logging

    The log file can assist in targeted troubleshooting.

    circle-info

    These settings are only visible in expert mode.

    circle-info

    Locked settings that have been set with environment variables at startup are marked with ENV

    Frame buffer

    Use as screen capture monitor

    Works - but is only used for native installations and is not officially supported by us yet. But don't worry, this will be added very soon.

    Follow us on Twitter or YouTube and sign up for our newsletter to not miss the launch of this feature.

    Twitter YouTube Newsletter

    hashtag

    How do I enable the RTMP server?

    Receive and send videos with the internal RTMP server in the datarhei Restreamer. Each RTMP signal is available as output via the Publication Service for multistreaming.

    Real-Time Messaging Protocol (RTMP) is often the first choice for transferring video files over the Internet. The Adobe Inc. proprietary network protocol can transmit audio, video, and other data over the Internet from a media server. The RTMP server in the open-source datarhei Restreamer is easy to activate dun use. All RTMP signals on the system can be used directly for multistreaming on various video platforms. In the video, the RTMP server is enabled in the system settings and then enabled as output for the individual video channel to work with Publication Services.

    hashtag
    Mehr Informationen

    How do I start a GPU Encoding?

    How GPU encoding from the Raspberry Pi in the datarhei Restreamer significantly reduces CPU load.

    hashtag
    How can I use the GPU from the Raspberry Pi?

    The graphics processor (GPU) takes over computationally intensive tasks and thus relieves the central processor (CPU). The function is directly controlled in the Restreamer with FFmpeg. The freed processor time can thus be used for other tasks.

    circle-check

    Raspberry Pi Camera

    There are different types of camera boards for the Raspberry Pi. The official Raspberry Pi cameras can take high-resolution photos and Full HD 1080p videos and be fully controlled programmatically. After installing the "raspi-config" menu, all cameras can be used in the Restreamer for livestreaming.

    hashtag
    Learn more

    How can I receive an HLS stream?

    If you want to stream a live stream from an external HLS video source using m3u8, use the wizard to create the video source.

    hashtag
    Learn more

    What are environment variables?

    With environment variables, you can control the default behavior of the Restreamer.

    As part of , you can find documentation for the various environments on GitHub.

    hashtag
    Learn more

    How to stream an H.265 IP-cam

    H.265 reduces traffic by about 50% compared to H.264, so in some cases, it makes sense to use H.265 to transport the video to the server.

    hashtag
    What is H.265?

    High-Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a standard for encoding video content and images. Compared to H.264/MPEG-4, the codec offers twice the compression while maintaining the same quality.

    How to change the RTMP port

    Change the RTMP standard port 1935 to any other.

    hashtag
    Default command

    This is the default command to start the Docker container with your Restreamer on port 1935.

    hashtag

    FAQ

    Here you will find answers to your questions about Restreamer. To help you find your way around, the categories are named after the menu navigation in Datarhei/Restreamer.

    hashtag
    Can I become who I want to be?

    That's a tough question but thankfully, our team is on it. Please bear with us while we're investigating.

    How to stream SRT from OBS?

    With the SRT-Server in the datarhei Restreamer streamers benefit from low latency connections with SRT. In addition, each SRT signal is available as output via the Publication Service.

    hashtag
    Learn more

    Hardware device

    Send and receive video signals from USB devices.

    The "USB Video Class" (UVC) includes devices that transmit video over USB and groups them into a specific class of USB devices. These include webcams, camcorders, transcoders, and devices that convert analog tapes to a digital format. These types of video sources are displayed as video sources in the datarhei Restreamer's graphical user interface and are active for live streaming with a few simple steps.

    hashtag
    Learn more

    How can I use the landing page?

    hashtag
    Use a public website with a video player for presentation.

    The datarhei Restreamer provides a ready-made website for easy and quick presentation of the live stream. The page comes with a video player and is ready to use. In addition, the index.html can be linked or distributed.

    hashtag

    How do I install Docker?

    Docker is the easiest way to use the Restreamer. That is why we recommend it.

    Docker is an open platform for developing, deploying, and running applications. Docker allows you to separate your applications from your infrastructure to deploy software quickly. In addition, Docker lets you manage your infrastructure the same way you manage your applications. By taking advantage of Docker's methods for rapidly deploying, testing, and deploying code, you can significantly reduce the time between writing code and running it in production.

    hashtag
    Learn more

    How can I change the password of the Restreamer?

    You could always change the username and password for the datarhei Restreamer.

    circle-info

    Access data set via environments (ENV) cannot be modified via the graphical user interface. To change them, the Restreamer must be stopped in the terminal, provided with new access data, and then restarted.

    hashtag
    Learn more about

    docker pull datarhei/restreamer:latest
    hashtag
    Have you had a chance to answer the previous question?

    Yes, after a few months we finally found the answer. Sadly, Mike is on vacations right now so I'm afraid we are not able to provide the answer at this point.

    44100 Hz
  • 22050 Hz

  • 8000 Hz

  • Custom …

  • Audio settingschevron-right
    User Guideschevron-right
    User Guideschevron-right
    Fig. 2: Via the system menu to the settings for the publication website.
    Fig. 3: Select configuration menu
    User Guideschevron-right
    Environment Variableschevron-right
    User Guideschevron-right
    User Guideschevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    YouTube Video: Quick start guide using iframe with HTML Code for website
    Learn more
    YouTube Video: Quick start guide explains how to add and delete a video source
    Network sourcechevron-right
    Hardware devicechevron-right
    Frame bufferchevron-right
    Virtual video sourcechevron-right
    Raspberry Pi Camerachevron-right
    Fig. 1: Open livestream properties
    Fig. 2: Overview with active video source
    Fig. 3: Selection of the different video sources in setup mode
    Multi Video sourcechevron-right
    User Guideschevron-right
    ENV
    . Disable or adjust environment variables unlocks the settings.
    circle-info

    RTMP and RTMPS are supported simultaneously.

    hashtag
    RTMP/S

    hashtag
    2 RTMP server

    The ✅ checkmark activates the RTMP server.

    hashtag
    3 RTMPS server

    The ✅ checkmark activates the RTMPS server.

    hashtag
    4 Port RTMP

    Port settings for the RTMP server.

    circle-info

    The default value for the listening address is port: 1935

    hashtag
    5 Port RTMPS

    Port settings for the RTMP/S server.

    circle-info

    The default value for the listening address is port: 1936

    hashtag
    6 App

    The RTMP application name is a path prefix for the stream name for publishing and playback. This is sometimes required by RTMP clients. It can be an arbitrary name (e.g. /foobar) and will be prefixed to the stream name (e.g. /foobar/live.stream).

    hashtag
    7 Token

    RTMP token for publishing and playback. The token is the value of the URL query parameter 'token'.

    hashtag
    Learn more

    Fig. 1: The menu for the RTMP settings
    💾Installingchevron-right
    Why do I see ENV and cannot select anything?chevron-right
    System settingschevron-right
    User Guideschevron-right
    ENV
    . Disable or adjust environment variables unlocks the settings.
    circle-info

    The expert mode extends the configuration possibilities.

    hashtag
    2 General

    hashtag
    Node-ID

    The node ID can be used to uniquely identify the running datarhei core.

    hashtag
    Name

    The name makes it easier for people to identify the core. In addition, it is generated automatically or can be customized.

    hashtag
    3 Update

    Enable automatic check for updates.

    circle-info

    Once a Core is connected to the service, the service will notify you of updates.

    hashtag
    4 Expert mode

    In the expert mode, you have access to all functions of datarhei Restreamer, including the export of databases or the encryption of external files. Due to the significantly extended range of functions compared to the beginner mode, the expert mode is primarily intended for users who already know the program and want its full range of functions.

    hashtag
    5 Restart

    Restarting the Core.

    hashtag
    6 Save

    Do not forget to save the settings.

    hashtag
    7 Abort

    Unsaved settings will be lost by aborting.

    hashtag
    8 Close window

    Closes the active window without saving.

    hashtag
    Learn more

    Fig. 1: Overview of general system settings.
    Why do I see ENV and cannot select anything?chevron-right
    Troubleshootingchevron-right
    Quick Startchevron-right
    2 Enable login/JWT authorization
    circle-info

    Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.

    circle-exclamation

    If access data are activated via ENV, a change via the graphical interface in the Restreamer is not possible.

    triangle-exclamation

    It is strongly recommended to enable authorization to prevent unauthorized access to the instance.

    hashtag
    3 Username

    Here you can store the name for the login.

    hashtag
    4 Password

    Password for authorization on the system.

    hashtag
    Learn more

    Fig. 1: The menu for authorization
    💾Installingchevron-right
    What are environment variables?chevron-right
    Environment Variableschevron-right
    Why do I see ENV and cannot select anything?chevron-right
    User Guideschevron-right
    . Disable or adjust environment variables unlocks the settings.

    hashtag
    2 Copy

    Copies the system log to the clipboard.

    hashtag
    3 Logging level

    Different levels of logging. There are five different levels.

    • Silent

    • Error

    • Warn: Errors and warning messages

    • Info: Errors, warnings, and information messages

    • Errors, warnings, information messages, and debug information

    hashtag
    4 Log lines

    The number of log lines.

    hashtag
    FFmpeg

    hashtag
    5 Log lines

    Number of most recent log lines to keep for each process.

    hashtag
    6 Log history

    Number of most recent log lines to keep for each process.+

    hashtag
    Learn more

    Fig. 1: Menu item for logging
    💾Installingchevron-right
    What are environment variables?chevron-right
    User Guideschevron-right
    Learn more
    https://twitter.com/datarheiarrow-up-right
    https://youtube.com/user/datarheiarrow-up-right
    https://datarhei.comarrow-up-right
    User Guideschevron-right
    Learn more
    YouTube video: Quick start guide for the player page in the Restreamer
    User Guideschevron-right
    📚Knowledge Basechevron-right

    Troubleshooting

    Quick start guide: Example publication service with YouTube
    Quick start guide: How does the livestream get on the website?
    Quick start guide: Player config
    ODROIDarrow-up-right
    Pine64arrow-up-right
    Raspberry Pi OS-Imagearrow-up-right
    Debian installation guide for armhf.arrow-up-right
    How do I stream a RaspiCam?
    Environment Variableschevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    Environment Variableschevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    hashtag
    3 Extend channel list

    Insert code in the channel list.

    hashtag
    4 Extend content

    Insert code between the description of the live stream and the author's name. An example, for a comment widget or social media widget.

    hashtag
    5 Extend footer

    Insert code into the header style.

    hashtag
    6 Open player site

    Opens the publication website in a browser tab.

    hashtag
    7 Save

    Save to save the settings.

    hashtag
    Learn more

    Fig. 1: Code injection for the publication website.
    Fig. 2: Code injection with code examples.
    User Guideschevron-right
    Custom command

    This is the command with a custom RTMP port.

    hashtag
    For example with Port 1200

    hashtag
    Learn more

    docker run ... -p 1935:1935 ... 
    💾Installingchevron-right
    Manualchevron-right
    docker run --detach --rm --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:rpi-latest
    
    docker run --detach --rm --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:latest
    <link rel="stylesheet" src="something"/>
    <link rel="stylesheet" src="something"/>
    <link rel="stylesheet" src="something"/>
    <link rel="stylesheet" src="something"/>
    docker run ... -p CUSTOM_PORT:1935 ... 
    docker run ... -p 1200:1935 ... 
    Not only Raspberry PI GPUs are supported. If a GPU is detected on the system, it is ready for use.
    circle-info

    GPU support is available for every stream.

    hashtag
    Learn more

    User Guideschevron-right
    📚Knowledge Basechevron-right
    hashtag
    When does it make sense to use H.265?

    There are several cases where it may be helpful to use H.265 for the transport path to the server. Since there are currently no H.265-capable video players, the video stream must be transcoded to H.264 after it arrives at the server so that the video player can display it.

    hashtag
    Learn more

    User Guideschevron-right
    📚Knowledge Basechevron-right
    ENV

    hashtag
    Learn more

    Why do I see ENV and cannot select anything?chevron-right
    What are environment variables?chevron-right
    Environment Variableschevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    User Guideschevron-right
    Manualchevron-right
    How do I start a GPU Encoding?chevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    datarhei Core
    Why do I see ENV and cannot select anything?chevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    Fig. 1: Example environment variables with locked fields are marked with ENV
    User Guideschevron-right
    Manualchevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    Get DockerDocker Documentationchevron-right
    Official Docker website docker.com

    Virtual video source

    With the help of the test signals, it is possible to test a transmission system, check for stability, or determine properties.

    hashtag
    1 Virtual video source

    Fig. 1: Setting up virtual video sources in the configuration menu

    Various signals, such as “Game Of Live” are available as an option with S23/B3 rule for test operation. FPS and size can be adjusted depending on the signal.

    hashtag
    2 Video source selection

    • Test pattern

    • Test pattern extended

    • RGB test pattern

    hashtag
    3 Frame rate

    Frame rate refers to the number of frames captured or played back per period and is specified in units of FPS (Frames Per Second), BpS (Frames / Frames per Second), or Hz (Hertz). Default value is in 25 / 30 / 50 / 60 FPS.

    hashtag
    4 Video Resolution

    A resolution that corresponds to a display device's resolution (number of pixels) is called native resolution. The Restreamer works best with 16:9 resolutions.

    hashtag
    5 Check

    After a successful check, more details and the encoding settings can be shown.

    hashtag
    Learn more

    Update

    We always recommend using the latest datarhei Restreamer.

    Activate the checkmark at Update!

    System settings >> System >> ☑️ Check for update

    circle-info

    Check the box from version 2.x to get informed about new versions.

    hashtag
    Migration from v0.x to v2.x

    From Restreamer version 0.6.8 onwards, the configuration settings will be migrated when updating to version 2.x.

    circle-exclamation

    IMPORTANT ADJUSTMENT DURING MIGRATION! The mount path is changing at the new Restreamer. Older Restreamer v.0x -v /mnt/restreamer/db:/restreamer/db

    Latest Restreamer > 2.x -v /mnt/restreamer/db:/core/config \ -v /opt/restreamer/data:/core/data

    triangle-exclamation

    For all versions before version 0.6.8 all settings will be lost! In this case, upgrade to version 0.6.8 first and then upgrade to 2.x.

    If this was too quick for you, check out the .

    hashtag
    Update v2 to > v2.x

    The current version of the datarhei Restreamer is executed via the same command as during the new installation.

    circle-info

    When updating from running version 2 to > 2.x, do not forget the docker pull command to the current image - then start the Restreamer with the usual docker run command.

    hashtag
    Old Version v0.6.8

    hashtag
    Learn more

    Network

    Configure basics for a functioning network.

    hashtag
    1 Network settings

    Fig. 1: The menu for the network settings.
    circle-info

    Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.

    hashtag
    2 Public-Domain/s

    The publicly accessible domain name of the host on which this Restreamer is running. Separate multiple domain names with commas. The default value is: demo-core.datarhei.com

    hashtag
    3 HTTP Address

    Address on which HTTP requests should listen. The default value is Port: 8080

    hashtag
    4 HTTPS Address

    Address on which HTTPS requests should listen. The default value is Port: 8181

    hashtag
    HTTPS (SSL/TLS)

    hashtag
    5 Certification with Let's Encrypt

    requires one or more public domain names and an accessible port 80/TCP. The HTTP port is changed automatically.

    hashtag
    Bandwidth control

    hashtag
    6 Maximum sessions

    Sets a limit for viewers in an HLS session. Once the limit is exceeded, HLS viewers receive the HTTP status code 509 (bandwidth limit exceeded).

    The default value is unlimited: 0

    hashtag
    7 Maximum bit rate

    Sets a bandwidth limit in Mbit/s for outgoing HLS data transmission. All services and outgoing processes are included in the calculation. Once the bandwidth is exceeded, HLS viewers receive the HTTP status code 509 (bandwidth limit exceeded).

    The default value is unlimited: 0

    hashtag
    Learn more

    SRT

    Secure Reliable Transport (SRT) is an open-source video transport protocol that utilises the UDP transport protocol.

    hashtag
    1 SRT settings

    Fig. 1: The menu for the SRT settings
    triangle-exclamation

    Docker port mapping must be extended for this as well. The unique thing is UDP, which you build into the command as follows: -p 6000:6000/udp.

    By default Docker always uses TCP for the ports. So if you forget /udp, you will not be able to reach the SRT.

    hashtag
    2 SRT server

    The ✅ checkmark activates the SRT server.

    hashtag
    3 Port

    Port settings for the SRT server.

    circle-info

    The default value for the listening address is port: 6000

    hashtag
    4 Token

    SRT token for publishing and playback. It is a protection against unwanted inputs/outputs. The token is the value of the URL query parameter 'token'. This setting is optional.

    hashtag
    5 Passphrase

    This setting encrypts the stream and is optional.

    hashtag
    Learn more

    Cloud/Hosting-Service

    If your private ISP does not have enough bandwidth capacity, it is obvious to run the restreamer at a cloud/hosting service.

    hashtag
    List of Docker services for deploying a Docker image

    • AWSarrow-up-right

    Alternatively, you can use any cloud/hosting service where you have access to the server. There you install Docker or Podman to run the restreamer.

    hashtag
    Learn more

    System settings

    You can edit system settings in this area.

    hashtag
    Overview

    Fig. 1: Overview of the global system settings
    General system settingschevron-rightServicechevron-rightNetworkchevron-rightAuthorizationchevron-rightPlaybackchevron-rightDisk spacechevron-rightRTMPchevron-rightSRTchevron-rightLoggingchevron-right

    hashtag
    System settings in 3 steps

    How to navigate to the system settings menu in 2 clicks and activate the expert mode.

    hashtag
    Quick start video guide

    hashtag
    Learn more

    Process report

    In situations where something doesn't quite work as expected, we can help you troubleshoot the problem using the information from the process report.

    Fig. 1: Open menu
    Fig. 2: Copy process report
    circle-check

    GDPR! All IP addresses and access data are stored anonymously.

    When you have problems and request help from datarhei online helpdesk or on GitHub, the most common source of information requested is the process report. This report contains system information, user access, event log, settings list, and network configurations. The settings list can include user IDs but not passwords or IP addresses.

    hashtag
    Retrieving a process report

    Click Process Report, save it as a .txt file, copy the data to the cache, and attach it to the case.

    hashtag
    Learn more

    Disk space

    You can control the saving of videos in this section.

    hashtag
    1 Storage settings

    Fig. 1: The menu for the memory settings
    circle-info

    Settings for the memory space are only visible in expert mode.

    circle-info

    Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.

    hashtag
    2 settings for /memfs

    Basic authentication for PUT, POST and DELETE requests. It is strongly recommended to enable basic authentication to prevent unauthorized writes to /memfs.

    hashtag
    3 Username

    hashtag
    4 Password

    hashtag
    5 Maximum file size

    hashtag
    6 Remove old files

    hashtag
    7 Hard disk

    hashtag
    8 Hard disk cache

    hashtag
    9 Maximum file size

    hashtag
    10 Cache timeout

    hashtag
    11 Maximum file size

    hashtag
    12 Cache Type

    hashtag
    Learn more

    Stream settings

    Edit the audio and video sources, determine their processing, add a description, and define the desired license.

    hashtag
    Configuration menu live stream

    Open the settings menu of the active video stream to see the configuration menu.

    Fig. 1: Overview configuration menu Livestream settings.
    General settingschevron-rightProcessing and Controlchevron-rightMeta Informationchevron-rightLicensechevron-right

    hashtag
    Open stream settings with one click

    hashtag
    Learn more

    Meta Information

    A brief description should explain what the audience can expect as precisely as possible.

    Fig. 1: Menu for meta information of the live stream.

    hashtag
    2 Content

    A short and accurate name will help search engines index the video stream. The video's description will also help the audience understand the content. The title should not exceed the character length of 55 characters.

    hashtag
    3 Author

    The information about the video producer on the player page.

    hashtag
    4 Title

    When you switch from content to author, the field is changed.

    hashtag
    5 Description

    When switching from content to author, the field is changed.

    hashtag
    Learn more

    Language

    The user interface is available in different languages.

    Change the language of the user interface via the system menu. Various languages are available.

    circle-check

    Anyone can join in! If you want to help us with the translation, you can upload your language files on GitHub.

    Fig. 1: Open the system menu
    Fig. 2: Open the language menu
    Fig. 3: Select language

    hashtag
    Learn more

    How do I operate the wizard?

    Add and delete video sources.

    With a few clicks, the wizard helps set up network video, USB camera, Raspicam, and framebuffer.

    YouTube Video: Add and delete video sources in 60 seconds

    The quick start video shows the fast lane method without additional unique video source settings. It is possible to edit the source for individual needs. The selection of a video license has also been omitted. The settings can be adjusted at any time later.

    Fig. 1: Setting up video via the wizard is easy

    hashtag
    Step 1: Video Setup

    Video source selection. There are 3 inputs to choose from.

    • Network source for use with network cameras or other devices with IP addresses.

    • An internal RTMP server can be used to send OBS streams to the restreamer, for example.

    • Internal HLS server

    hashtag
    Step 2: Audio Setup

    All the necessary configurations for the audio track are provided. As a unique feature, fake audio can be enabled. There are 3 different audio tracks available.

    • Silence allows streams to be transmitted to networks that require an audio track. Silence is often required for use in social media such as YouTube or Facebook.

    hashtag
    Learn more

    Design

    Customize colors and background of the publication website.

    Fig. 1: Menu for the design settings on the publication website.
    circle-info

    RGB or web colors may be entered.

    hashtag
    2 Text colors

    hashtag
    Default

    Color for general text.

    hashtag
    Headline

    For all headlines in title, channels, modal box.

    hashtag
    Link

    The link color in the texts.

    hashtag
    Link Mouseover

    Hover color when hovering the mouse cursor over it.

    hashtag
    3 Background colors

    hashtag
    Default

    The background color of the web page.

    hashtag
    Header

    Color for the title bar

    hashtag
    Selected

    Color of the active tile in the channels. Only active for multiple live streams.

    hashtag
    Unselected

    Color of the inactive tile in the channels. Only active for multiple live streams.

    hashtag
    Line color

    Line color defines the color of the horizontal lines.

    hashtag
    4 Background image

    Upload background image as JPEG or PNG. Recommended resolution 1280x720 px. The address to the image will be displayed.

    hashtag
    5 Open publication website

    Opens the publication website in a browser tab.

    hashtag
    6 Save

    Save to save the settings.

    hashtag
    Learn more

    Multi Video source

    Create, manage and delete additional video sources.

    hashtag
    Add more video sources

    Activate additional video sources via the interface in the browser in just a few steps.

    hashtag
    1 Open video bar

    The icon opens an additional layer at the bottom of the screen.

    hashtag
    2 Add video source

    The wizard starts to create the new video source. After successful creation and saving, the latest video source appears in the bar (video bar) at the bottom of the screen.

    hashtag
    3 Active video sources

    Active video signals appear in the video bar at the bottom of the screen.

    hashtag
    4 Close

    Collapses the video bar.

    hashtag
    Delete video source

    Each video source is deleted from the settings menu of the respective live stream.

    hashtag
    Quick Start Guide

    hashtag
    Learn more

    Basic Troubleshooting

    Most errors have only a tiny cause and are easy to fix. What you have to check first is described in this document in 3 steps.

    hashtag
    The problems

    Most problems occur in one of these three sections.

    1. Video-Input

    2. Player-Streaming

    3. Publication-Service

    The following standard troubleshooting procedure is proven to find a quick solution before contacting us.

    hashtag
    Step 1: Test with virtual source

    As a first procedure, check whether the error also occurs with a test transmission

    hashtag
    Step 2: Check log files

    Look into the process details and find the error to fix it.

    hashtag
    Step 3: Open issue

    If steps 1 and 2 were unsuccessful, create a and attach the process report.

    circle-check

    Describe the problem as detailed as possible. The more information you give us about your project, the better we can find a solution for you that fits your setup and will solve your problem.

    circle-exclamation

    Always attach the process report to your issue.

    hashtag
    Learn more

    How can I use HTTPS with Let's Encrypt?

    Let's Encrypt is a certificate authority that offers free X.509 certificates for Transport Layer Security. These HTTPS certificates work with the datarhei Restreamer.

    Encrypt your live streams with HTTPS and avoid security gaps and errors caused by mixed content.

    hashtag
    Notes

    • You can use any dynamic DNS service like myfritz, no-ip, dyndns or other services.

    • Do not forget to forward the public port for HTTPS: 443 to your internal Restreamer IP default port: 8181.

    • Don't forget to forward the public port for HTTP: 80 to your internal Restreamer IP default port: 8080

    • The HTTPS certificate is renewed automatically.

    • No registration with Let's Encrypt is required

    hashtag
    What is Let's Encrypt?

    hashtag
    Learn more

    How to integrate a website

    The ”Publication Website“ is the player website. You can customize the path of the web page and link any web page. To deploy a custom website at http://restreamer-url/ follow the few steps.

    hashtag
    Prerequisite

    You have already started your Docker container with the mount path if you followed the instructions.

    circle-info

    The /core/data folder represents the root directory for the Restreamer, accessible via the URL:

    hashtag
    Step 1

    Make website (index.html) accessible

    Copy your website files into the mount path:

    hashtag
    Step 2

    Now the page is active.

    circle-info

    The address is http://restreamer-url/

    hashtag
    Learn more

    Core API

    Take advantage of an FFmpeg REST API for fast and easy video application development.

    The Core of datarhei Restreamer is free and open source. Extend datarhei Restreamer according to your needs. Flexible video processing with FFMpeg Media Framework is made easy with an API. Create your video streaming and management platform with datarhei Core.

    | 100% FFmpeg media framework inside | JSON REST-API (Swagger documented) | datarhei Core in Go | GraphQL

    hashtag
    API

    API version and build info in case auth is valid or not required. If auth is required, just the name field is populated.

    You'll find a detailed description of the API on

    hashtag
    Learn more

    Why do I see ENV and cannot select anything?

    In the user interface, there are always settings marked with ENV and locked for selection.

    circle-info

    ENV = This value was set by an environment variable.

    When starting the software via the shell, various settings can be activated. These settings are called “environment variables” and are marked with ENV. If a variable is activated at startup, it is no longer possible to adjust it in the graphical user interface.

    hashtag
    Recommended variables

    It is not mandatory to set variables. All settings can also be configured via the graphical user interface.

    hashtag
    All environment variables on GitHub

    hashtag
    Learn more

    How to rotate a video?

    Vertical video is helpful on smartphones and vertical video platforms such as TikTok. It is encoded and transmitted for free with the datarhei Restreamer.

    In this video, a 16:9 video is rotated 90° using the datarhei Restreamer streaming server. In the video settings of the active channel, the encoding is changed to 9:16. There are different rotation presets available. In the example, a Raspberry Pi 4 is used, which performs the encoding via the GPU OpenMax.

    circle-info

    An encoding of the video is always necessary to get rotated video output.

    hashtag
    Prerequisite

    You have already started your Restreamer and added a video source.

    hashtag
    Step 1

    Edit the video source settings.

    hashtag
    Step 2

    Start encoding

    hashtag
    Step 3

    Various setting options are available besides rotation, also horizontal and vertical flipping.

    hashtag
    Learn more

    How do I connect a USB camera to the Restreamer?

    We explain how to connect a USB video device to a datarhei Restreamer.

    hashtag
    USB device as a video source in datarhei Restreamer

    circle-info

    Before the restreamer recognizes the USB device, check if the device is installed correctly. As soon as the device is available on the host system, it is automatically displayed in the restreamer. Use USB device as a video source in datarhei Restreamer

    The "USB Video Class" (UVC) contains devices that stream video over USB and brings them together into a particular class of USB devices. They are webcams, camcorders, transcoders, and devices that can convert analog tape material to a digital format. UVC video sources are displayed as video sources in the datarhei Restreamer's graphical user interface and are active for live streaming with a few simple steps.

    circle-exclamation

    If unexpected behavior occurs, a reboot of the host system will help.

    circle-exclamation

    If unexpected behavior occurs, restarting the datarhei Restreamer will help.

    hashtag
    Learn more

    General settings

    Besides the player, the Restreamer offers a complete publication website, for easy and quick presentation of the live stream.

    Fig. 1: General settings menu for the publication website.

    hashtag
    2 Activate publication website

    Check the box to make the index.html page accessible from the home directory.

    hashtag
    3 Sitename

    Sets the name of the publication website for the header and page title.

    hashtag
    4 Main channel

    Choose the default video channel for the publication website. This selection is only available if more than one video channel is active.

    hashtag
    5 Share buttons

    Activate the sharing function on the Publication website.

    hashtag
    6 Chromecast

    Plays the video stream on Chromecast devices.

    hashtag
    7 AirPlay

    Plays the video stream on Airplay devices.

    hashtag
    8 Support datarhei

    Support for datarhei Restreamer in footer. Thank you. 👾

    hashtag
    9 Open publication website

    The button leads directly to the index.html of the publication website.

    hashtag
    10 Save

    Do not forget to save the settings.

    hashtag
    Learn more

    Template

    Design of the publication website with various modules.

    Fig. 1: Menu for the settings of the publication website.

    hashtag
    2 Available templates

    The current default template cannot be deleted. If new templates are uploaded, they appear in a dropdown.

    The default template is available at https://github.com/datarhei/restreamer-ui/blob/main/public/_playersite/index.htmlarrow-up-right.

    How do I write a template for the publication website?chevron-right

    hashtag
    3 Delete

    Delete available templates.

    hashtag
    4 Template name

    Give the template a pretty name!

    hashtag
    5 Upload

    The button uploads the template.

    hashtag
    6 Open publication website

    Opens the publication website in a browsertab.

    hashtag
    7 Save

    Save the publication website settings.

    hashtag
    Learn more

    CC License

    The live stream of video producers is usually protected by copyright. The CC license defines how the video stream is made available to others.

    hashtag
    Learn more

    Licensechevron-right📚Knowledge Basechevron-right

    How to use SRT for publication service

    Use the option to change the protocol to SRT in the specific Publication Service.

    With the internal SRT-Server in the datarhei Restreamer, each SRT signal is available as output via the Publication Service. Of course, in multistreaming simultaneously for many video channels.

    hashtag
    Learn more

    User Guideschevron-rightManualchevron-right

    License

    Use the Creative Commons (CC) license for each livestream.

    hashtag
    2 License selection

    The Creative Commons (CC) license is one of several public copyright licenses that allow free distribution of an otherwise copyrighted "work." A CC license is used when an author wants to give others the right to share, use, and build upon a work they (the author) have created. CC provides flexibility to an author (for example, they might choose to allow only non-commercial uses of a particular work) and protects people who use or redistribute an author's work from copyright infringement concerns, as long as they abide by the terms stated in the license with which the author distributes the work.

    Video player settings

    The video player is part of the Publication Service for the website and the publication website.

    hashtag
    Video player configuration

    hashtag

    Processing and Control

    General characteristics of the process control of the livestream.

    hashtag
    HLS Output

    HTTP live streaming (HLS) is an industry-standard video streaming protocol.

    How can I stream to Facebook Live?

    Any video source can be sent to Facebook with the Restreamer and posted there as a live event with a few clicks.

    circle-exclamation

    It may be that Facebook has adjusted the process on the platform. However, the basic principle with the streaming key will always remain the same. Visit Facebook Help if you are not sure how to use it.

    No video

    The errors with the video source can be multilayered.

    hashtag
    Step by step

    Troubleshooting should always start as close as possible to the video signal source. Then, if the video source is working, move away from the video source to locate the error step by step.

    hashtag

    System monitoring

    The system monitoring measures and observes the most critical system functions from the host system in real-time. If threshold values reach binding regions, the system warns.

    hashtag
    1 Monitoring

    There are different system values for the active video channel in the main screen.

    CPU and memory are permanently displayed.

    Playback

    Control area for the compilation of statistics of the users.

    hashtag
    1 Playback settings

    circle-info

    Settings for playback are only visible in expert mode.

    How can I use YouTube with the Restreamer?

    With just a few clicks, any video source can be sent to YouTube via the Restreamer's Publication Service for use as a live stream.

    hashtag
    Create YouTube Live Stream

    hashtag

    System displays

    The Restreamer provides comprehensive system monitoring.

    hashtag
    Overview real-time monitoring

    hashtag

    Encoding compatibility list

    These encoders work well with the Restreamer.

    hashtag
    H.264 OpenMAX IL

    OpenMAX™ is a royalty-free, cross-platform API that provides comprehensive streaming media codec and application portability by enabling accelerated multimedia components to be developed, integrated, and programmed across multiple operating systems and silicon platforms.

    Process details

    hashtag
    1 Banner

    datarhei Restreamer uses FFmpeg for streaming and stores log files for each video process for diagnostic purposes.

    hashtag

    Get DockerDocker Documentationchevron-right
    External URL: Install Docker
    Podmanpodman.iochevron-right
    External URL: Install podman
    -v /opt/restreamer/data:/core/data
    DigitalOceanarrow-up-right
    Microsoft Azurearrow-up-right
    Scalewayarrow-up-right
    sloppy.ioarrow-up-right
    Vultrarrow-up-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    detailed migration guide
    💾Installingchevron-right
    📚Knowledge Basechevron-right
    ⭐Premium Supportchevron-right
    Fig. 1: datarhei/Restreamer v.0.6.8
    Fig. 2: datarhei/Restreamer v.0.6.8
    YouTube Video: Quick Start Guide Delete and add video sources in datarhei Restreamer
    User Guideschevron-right
    Fig. 1: The menu item opens the video bar
    Fig. 2: Create new video source in the video bar.
    Fig. 4: Open video settings of the active live stream.
    Fig. 5: Delete the video stream with one click.
    YUV test pattern
  • EBU PAL 75%

  • EBU PAL 100%

  • SMPTE EG 1-1990

  • SMPTE RP 219-2002

  • Game of Live

  • Video settingschevron-right
    Troubleshootingchevron-right
    User Guideschevron-right
    Let’s Encryptarrow-up-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    💾Installingchevron-right
    What are environment variables?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    User Guideschevron-right
    Manualchevron-right
    Loggingchevron-right
    User Guideschevron-right
    User Guideschevron-right
    Wizardchevron-right
    Video settingschevron-right
    Audio settingschevron-right
    User Guideschevron-right
    Fig. 2: Reaching the settings for the active livestream from the main screen
    Publication Websitechevron-right
    User Guideschevron-right
    User Guideschevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    User Guideschevron-right
    User Guideschevron-right
    User Guideschevron-right
    1 Embed

    The iFrame is the HTML element used to embed the video player with the live stream on web pages. We recommend keeping the aspect ratio of the video stream so that the video plays correctly.

    hashtag
    2 Color

    The customization of the colors of the video player. The syntax used is the standard for colors in HTML in hex color code (#fcee21)

    hashtag
    3 Logo

    A logo for branding with a graphic in PNG or JPEG format is done using the button. After the process, the public path to the picture appears. Using the dropdown menu, the position of the graphic in the corners of the player and a link can be assigned.

    hashtag
    4 Poster

    A poster as a snapshot alternative with a graphic in PNG or JPEG format is done using the button. After the process, the public path to the picture appears.

    hashtag
    5 Statistics

    Google Analytics tracking is activated via the GA code. You can find the code in your Google account. A new window appears in the video with various details with additional interesting information. There you can see technical details like the video ID, the resolution, the connection speed, and the volume. The values can be interesting for various purposes, such as technical curiosity or content creators who want to compare their videos with other content.

    hashtag
    6 Playback

    Select the options for the live stream.

    hashtag
    Autoplay

    Autostart video automatically starts the live stream.

    hashtag
    Mute

    Turns off the audio channel.

    hashtag
    Chromecast

    Start broadcasting with Chromecast.

    hashtag
    AirPlay

    Start broadcasting with Apple AirPlay devices.

    hashtag
    Learn more

    YouTube video: Quick start guide for configuring a video player.
    Fig. 1: Open configuration menu for player settings
    Fig. 2: Configuration menu for the video player
    Publication Websitechevron-right
    User Guideschevron-right
    hashtag
    2 Storage

    Selection of the storage location in the working memory or on the hard disk.

    hashtag
    3 EXT-X Version

    Selection of HLS version for different requirements.

    • Version 3 is recommended and is standard.

    • Version 6 is with guaranteed iFrames for each HLS chunk. Some players require this.

    • Version 7 is with fragmented MP4 files. MPEG-DASH has been adapted.

    hashtag
    4 Segment length

    The unit for segment length is in seconds. The segment is cut at the next keyframe after this time has elapsed. We recommend using the value 2 as the default value.

    hashtag
    5 List size

    The maximum number of playlist segments. The value 0 will contain all segments. As a default value, we recommend using the value 6.

    hashtag
    6 Master playlist

    Master Playlist option (default is active). This Increases player compatibility.

    hashtag
    7 Autoclean

    Automatic cleanup of all media data after the end of the process.

    hashtag
    8 RTMP Output

    Publish the stream as an RTMP output.

    hashtag
    9 SRT Output

    Publish the stream as an SRT output.

    hashtag
    10 Snapshot

    A preview image is generated from the live stream.

    hashtag
    11 Interval

    The interval is in seconds and specifies the value until the video source's preview image (JPEG) is updated. As the default value, we recommend 1 minute, 60 seconds.

    hashtag
    Process

    Behavior rule for the running video process in case of a malfunction.

    hashtag
    12 Reconnect

    The checkbox is used to decide whether the stream should reconnect or not.

    hashtag
    13 Reconnect

    Interval in seconds until the connection starts again.

    hashtag
    14 Timeout

    Seconds until a hanging process is terminated and exited as Faulty.

    hashtag
    ...

    hashtag
    15 Abort

    Unsaved settings are lost by canceling.

    hashtag
    16 Save

    Do not forget to save settings.

    hashtag
    17 Close

    Closes the active window without saving.

    hashtag
    Learn more

    Fig. 1: Processing and control menu
    User Guideschevron-right
    Check video source

    Check the video source with the VLC playerarrow-up-right. The free player is available for all operating systems and can play all formats from datarheiRESTREAMER. If the video source is not played correctly, check the original signal directly at the start if possible.

    hashtag
    Check hardware

    If you have hardware integrated with your video signal, check the hardware, such as encoders, network cameras, video mixers, and other eligible components.

    hashtag
    Check network

    If you can be sure that there are no hardware problems, check the transport paths to the destination of the video signal in the datarhei Restreamer.

    1. Check the video source. IP cam, encoder, and other possible video sources.

    2. Check LAN. Router, IP settings, firewall, port forwarding, and network settings in question.

    3. Check WAN and Internet connection

    hashtag
    Check software

    In the last step, check the datarhei Restreamer settings.

    1. Use the wizard to create the live stream again.

    hashtag
    System logs and error reports

    If you continue to have issues, the process reports and details can help narrow down what went wrong. All reports can be used as text files on GitHub or the helpdesk to get help. We always advise sending these reports along.

    hashtag
    Learn more

    ⭐Premium Supportchevron-right
    Wizardchevron-right
    Process reportchevron-right
    Process detailschevron-right
    Loggingchevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    circle-exclamation

    Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.

    hashtag
    Security

    hashtag
    2 Allow all referer

    Enable or disable Allow access from all referrers.

    hashtag
    3 CORS security

    The HTTP request header "Referrer" contains the page's absolute or partial address from which the request originates. The referrer header allows a server to identify a page from which it is visited. This data is used by datarhei Restreamer to bring essential protection to the live streams.

    The access control takes effect when the hook is deactivated, and a domain is entered.

    circle-info

    Syntax: One address per line. The default value is allow all: *

    Accept all accesses.

    hashtag
    4 HLS statistics for /memfs.

    The audience count is displayed when the hook is active.

    hashtag
    5 Ignore IP ranges

    To exclude viewers from the statistics, it may be necessary to ignore IP addresses so that the statistics are not distorted. For this purpose, a list of IP ranges in CIDR notation can be created in the text field, e.g., 127.0.0.1/32, which are not covered by the statistics.

    circle-info

    Syntax: One IP range per line.

    Record all sessions: Leave field empty

    hashtag
    6 Session timeout

    Length of the time interval in seconds when the viewer's session is terminated to no longer be captured by the statistics.

    circle-info

    The default value is: 30 seconds

    hashtag
    7 Persist session history

    Session data is stored on the hard disk of the core host system.

    hashtag
    Learn more

    Fig. 1: The playback settings menu
    💾Installingchevron-right
    What are environment variables?chevron-right
    User Guideschevron-right
    hashtag
    Raspberry Pi (Rasbian Bullseye, 32/64 Bit)
    triangle-exclamation

    Video processing with a maximum of 1920x1080 pixels.

    hashtag
    H.264 V4L2-M2M

    Video4Linux (V4L2) is a collection of device drivers and an API for supporting real-time video capture on Linux systems.

    hashtag
    Rasperry Pi (Rasbian Buster, Userland, 32 Bit)

    triangle-exclamation

    Video processing with a maximum of 1920x1080 pixels.

    hashtag
    H.264 NVENC

    Nvidia NVENC is a feature in Nvidia graphics cards that performs video encoding, offloading this compute-intensive task from the CPU to a dedicated part of the GPU.

    hashtag
    H.264 Intel VA-API

    VA-API (Video Acceleration API) user-mode driver for Intel GEN Graphics family VA-API is an open-source library and API specification which provides access to graphics hardware acceleration capabilities for video processing.

    hashtag
    H.264 VideoToolbox

    VideoToolbox is a low-level framework for macOS that provides direct access to hardware encoders and decoders. In addition, it provides services for video compression and decompression and conversion between raster image formats stored in CoreVideo pixel buffers.

    hashtag
    H.264 (libx264)

    x264 is a free and open-source software library and a command-line utility developed by VideoLAN for encoding video streams into the H.264/MPEG-4 AVC video coding format.

    hashtag
    H.265 (libx265)

    x265 is a software codec for creating digital video streams in the High-Efficiency Video Coding video compression format developed by the Joint Collaborative Team on Video Coding.

    hashtag
    VP9 (libvpx-vp9)

    ibvpx is a free software video codec library from Google and the Alliance for Open Media. It is the reference software implementation for the VP8 and VP9 video coding formats. For AV1, a special fork named libaom was stripped of backward compatibility.

    hashtag
    Learn more

    How do I start a GPU Encoding?chevron-right
    Manualchevron-right
    2 Log

    Log data of the running FFmpeg process.

    hashtag
    3 Telemetry data

    The most important raw data of the active live stream is in real-time.

    • FPS is the frames per seconds

    • Quality stands for the Speed of the video encoding

      • 1 = normal

      • < 1 = too slow

      • 1 = too fast when data is jammed

    • Lost frames

    • Duplicate frames

    hashtag
    Learn more

    Fig. 1: Open menu
    Fig. 2: Copy data and analyze
    Loggingchevron-right
    Process reportchevron-right
    User Guideschevron-right
    YouTube Video: Quick guide for restreaming via RTMP server with OBS
    http://restreamer-url/arrow-up-right
    💾Installingchevron-right
    Manualchevron-right
    /opt/restreamer/data
    Depending on which license you choose, a logo will be generated for the website.

    hashtag
    CC0 1.0

    The person who has associated a work with this deed has dedicated the work to the public by waiving all of their rights in the work worldwide under copyright law, including all related and neighboring rights, to the extent permitted by law. You may reproduce, modify, distribute and perform the Work, including for commercial purposes, all without asking permission.

    hashtag
    CC BY 4.0

    This license allows reusers to distribute, remix, adapt and build upon the material in any medium or format as long as credit is given to the author. The license permits commercial use.

    hashtag
    CC BY-SA 4.0

    This license allows reusers to distribute, remix, adapt and build upon the material in any medium or format as long as credit is given to the author. The license permits commercial use. If you remix, adapt, or build upon the material, you must license the modified material under identical terms.

    hashtag
    CC BY-NC 4.0

    This license allows reusers to distribute, remix, adapt and build upon the material in any medium or format and for non-commercial purposes only, as long as credit is given to the author.

    hashtag
    CC NC-BY-SA 4.0

    This license permits reusers to distribute, remix, adapt, and build upon the material in any medium or format for noncommercial purposes only, and only so long as credit is given to the author. If you rework, adapt, or build upon the Material, you must license the modified Material under identical terms.

    hashtag
    CC BY-ND 4.0

    This license permits reusers to copy and distribute the material in any medium or format only in an unmodified form and only as long as credit is given to the author. The license permits commercial use.

    hashtag
    CC BY-NC-ND 4.0

    This license permits reusers to copy and distribute the material in any medium or format in an unmodified form for non-commercial purposes only and only as long as credit is given to the copyright owner.

    hashtag
    Learn more

    Fig. 1: Menu for licensing the live stream with a Creative Commons license
    CC Licensechevron-right
    User Guideschevron-right
    hashtag
    Just 4 steps to live stream on Facebook
    Step 1: Go to Publication services
    Step 2: Select Facebook
    Step 3: Enter streaming key from Facebook
    Step 4: Start stream
    Step 5: Edit stream (optional)

    hashtag
    Step by step to your live stream on Facebook

    RS = Clicks in Restreamer FB = Clicks on Facebook

    1. RS: Go to Publication Service in your Restreamer.

    2. RS: Click on Facebook

    3. RS: Click on Settings.

    4. RS: Give a name to the Publication Service (optional)

    5. FB: Copy the stream key on Facebook

    6. RS: Paste the stream key or permanent stream key in the restreamer.

    7. RS: Enter backup server (optional)

    8. RS: Process settings are good on default values for all applications. We advise changing the settings only if necessary.

    9. RS: Click on save to start the video stream to Facebook. A preview will be displayed on Facebook.

    10. FB: Write a description and a title for the live stream.

    11. Click go live now. If you want to schedule a broadcast for later, click Schedule Live Video Event.

    hashtag
    Facebook Creator Studio

    You can find a helpful guide for live streaming on Facebook. The guide will help you find the streaming ID for the restreamer.

    circle-info

    The stream should always be manually stopped on Facebook first. If the stream is interrupted elsewhere during a social media stream, Facebook may not save the live stream in the archive.

    hashtag
    Learn more

    User Guideschevron-right
    📚Knowledge Basechevron-right
    hashtag
    2 Extended display

    More details appear when the mouse pointer enters the area.

    Fig. 3: Mouseover of the system monitoring on the main screen

    hashtag
    Learn more

    Fig. 1: Video channel monitoring
    Fig. 2: Permanent system monitoring
    🟡Understand different error messages?chevron-right
    Troubleshootingchevron-right
    User Guideschevron-right
    In Restreamer
    1. Select Publication Service

    2. Enter a valid streaming ID from YouTube

    3. Click on the Save button

    4. Once connected to YouTube Live, the bitrate of the live stream will be displayed in the main Restreamer window.

    5. Click Stop to pause the stream.

    hashtag
    Quick Start Guide

    How to start a livestream to YouTube using the Publication Service with the free open source video software datarhei Restreamer.

    hashtag
    YouTube Studio

    A helpful guide for live streaming is on YouTube. The guide helps to find the streaming ID for the restreamer.

    circle-info

    Always end the stream on YouTube first after an event. If you interrupt the stream in the Restreamer during a live stream, YouTube may not save your live stream in the DVR archive.

    hashtag
    Learn more

    Step 1: Publication Service
    Step 2: Select publication service
    Step 3: Enter streaming key
    Step 4: Start Stream or optionally Step 5: Edit
    YouTube Video: Quick start guide live stream to YouTube with the Restreamer
    User Guideschevron-right
    📚Knowledge Basechevron-right
    1 Video stream

    A video stream for viewing.

    hashtag
    2 Audience count

    The number of the current audience.

    hashtag
    3 Audience bit rate

    in Mbit/s

    hashtag
    4 Uptime

    Operating time is the duration of time the active livestream is used in hours, minutes, and seconds.

    hashtag
    5 Video stream bitrate

    Bitrate of the active live stream

    hashtag
    6 Frame rate

    Frames per second — short FPS.

    hashtag
    7. System data

    Fig. 2: Unfold system monitoring.
    Fig. 3: System monitoring menu expanded.

    hashtag
    Learn more

    Fig. 1: Real-time data in the main screen
    System monitoringchevron-right
    Quick Startchevron-right
    General system settingschevron-right
    Quick Startchevron-right
    Fig. 2: Menu for the system settings
    Fig. 3: Select menu for system settings
    Fig. 4: Activating the expert mode
    Process detailschevron-right
    Github issuearrow-up-right
    Process reportchevron-right
    User Guideschevron-right
    Manualchevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    https://demo.datarhei.com/api/swagger/index.htmlarrow-up-right
    https://docs.datarhei.com/corearrow-up-right
    📚Knowledge Basechevron-right
    ⭐Premium Supportchevron-right
    Environment Variableschevron-right
    What are environment variables?chevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    💾Installingchevron-right
    Manualchevron-right
    Fig 1: Various setting options are available.
    User Guideschevron-right
    📚Knowledge Basechevron-right

    Windows

    Install and run Restreamer on Microsoft Windows with Docker Desktop.

    circle-check

    After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Preparation

    hashtag
    Step 1: Install Docker Desktop

    Download, install and run . Follow the installation instructions. If you are already using Docker Desktop and installed WSL 2, skip to Step 4.

    hashtag
    Step 2: WSL 2 installation

    To make the Restreamer container compatible with Windows, installing the Linux kernel update is necessary. The instructions are available on and websites. We recommend using the Debian or Ubuntu package. Follow the instructions, and there will be no problems.

    hashtag
    Step 3: Docker Desktop settings

    Go to the Docker Desktop settings to enable the Linux distro integration.

    triangle-exclamation

    After the steps, we recommend rebooting the computer.

    hashtag
    Start Restreamer container in Docker Desktop

    hashtag
    Step 4: Pull the container with the Restreamer

    Open the command-line PowerShell for Windows and load the cotainer from Docker Hub. Use the command:

    hashtag
    Step 5: Run Restreamer Container

    Start Docker Desktop and go to Images. The Restreamer is in the list. A click on RUN takes you to the next step.

    hashtag
    Step 6: Configurate your Restreamer container and start

    The next step is to set the container's name, the ports for access in the browser, and the video data. Finally, place the volume settings so that the login data and the restreamer are permanently saved! Otherwise, the settings and login data will be gone with the next update. Click Run to start the Restreamer for the first time.

    • Name A logical name helps to find the container again.

    • Ports Transfer the numbers from the Container Ports field to the empty areas on the left.

    • Volumes Choose a folder on the windows machine where you want to store the settings and configuration of the restreamer permanently. The Destination path is /core/config

    hashtag
    Step 7: Open Browser to login

    Click on the 8080:8080 opens the default browser with the Restreamer front door. You can otherwise also open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    hashtag
    Step 8. First login

    When you log in for the first time in your Restreamer, you have to enter your credentials.

    hashtag
    Additional information: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup. They are admittedly not so essential for Docker Desktop, but it does not hurt if you know them!

    hashtag
    Description of the most important commands for the use of environments

    -p 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    -p 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    -p 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    -p 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    -p 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    -v ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    -v ${HOME}/restreamer/data:/core/data The restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    Terminal

    Install and run datarhei Restreamer on Mac with Intel or Silicon chip in an Docker container.

    circle-check

    After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Requirements

    • A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.

    hashtag
    Preparation

    hashtag
    Step 1: Install Docker

    Download, install and run . Follow the installation instructions. If you are already using Docker, skip this step.

    hashtag
    Installation Windows PowerShell

    In the PowerShell, a single command is required to download and start the Restreamer.

    hashtag
    Step 2: Start the Restreamer

    Without hardware support

    Start with hardware support for Nvidia CUDA

    Start with hardware support for Intel VAAPI

    circle-exclamation

    For security reasons, start the Restreamer only with --privileged if you need hardware support.

    hashtag
    Step 3: Open the Restreamer

    Open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    hashtag
    Step 4. First login

    When you log in for the first time in your Restreamer, you have to enter your credentials.

    hashtag
    Important: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup.

    hashtag
    Description of the most important commands for the use of environments

    -d Deletes the container. This means that the container is executed in the background. You can run it interactively in the foreground with -it instead of -d. To stop the restreamer in detached mode, type docker stop restreamer. In interactive mode, simply press Ctrl-C to stop the restreamer.

    --name restreamer Set the container the name restreamer. This name can be used in other Docker commands to control the container. For example, to stop the Restreamer, type docker stop restreamer. While the Restreamer is running, you can log into the container with docker exec -it restreamer /bin/bash.

    --restart=always If the Restreamer crashes or the device reboots, Docker restarts the Restreamer automatically.

    --publish 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    --publish 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    --publish 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    --publish 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    --publish 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    --volume ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    --volume ${HOME}/restreamer/data:/core/data The Restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    How does port forwarding work for the Restreamer?

    So that the Restreamer can be reached via the Internet.

    hashtag
    What is port forwarding?

    Port forwarding allows remote computers (e.g., computers on the Internet) to connect to a specific computer or service within a private local area network (LAN). A public IP must be available for the Restreamer's IP to be accessible from "outside" after installation.

    hashtag
    What ports are needed for the Restreamer?

    Open ports for HTTP and HTTPS are required. We recommend using HTTPS on the website.

    What
    Router (external port)
    Restreamer (internal port)
    Optional
    circle-info

    RTMPS can be activated in addition to HTTPS!

    circle-info

    To use live streams/players/publication sites on the Internet, including Let's Encrypt (automatic HTTPS certification function), the port forwarders for HTTP and HTTPS are required.

    hashtag
    Check port forwarding

    Various free web services are available on the Internet for testing to check whether the forwarding is active without errors.

    hashtag
    Learn more

    Virtual audio source

    The audio settings for a virtual audio source.

    Fig. 1: Virtual audio source menu

    hashtag
    Audio source selection

    hashtag
    2 Source

    • Silence

    • Noise

    • Sine

    hashtag
    3 Sampling Rate

    We recommend a sampling rate of 44100 Hz.

    • 96000 Hz

    • 88200 Hz

    • 48000 Hz

    Sampling rate of the audio stream.

    hashtag
    4 Layout

    Stereo and mono support.

    hashtag
    5 Check

    After selecting the settings, the audio stream must be checked. The setting can only be saved after a successful check.

    Pressing the button verifies the reception of the video signal.

    circle-check

    hashtag
    > CHECK

    If the audio source is not accepted, the error message can be displayed directly. By clicking on: "View details of the check".

    hashtag
    Learn more

    How do I stream a RaspiCam?

    We explain how to connect the Raspberry Pi camera module to a datarhei Restreamer.

    hashtag
    Use Raspicam as video source for live streaming in datarhei Restreamer

    Check that the device is installed correctly before the restreamer recognizes the camera module. As soon as the device is available on the host system, it is automatically displayed in the Restreamer.

    There are several types of camera boards available for the Raspberry Pi. The official Raspberry Pi cameras can take high-resolution photos and Full HD 1080p videos and be fully controlled. After the installation in the "raspi-config" menu, all cameras can be used in the Restreamer for live streaming.

    triangle-exclamation

    ATTENTION! Using the GPU with the Raspicam requires increasing the cache memory to 256 MB. >> <<

    circle-exclamation

    If unexpected behavior occurs, rebooting the Raspberry Pi might help.

    circle-exclamation

    If unexpected behavior occurs, restarting the datarhei Restreamer might help.

    circle-check

    Note the video where we explain encoding over the GPU from the Raspberry Pi to offload the CPU from the Raspberry Pi.

    hashtag
    Enabling the Pi Camera

    If you have a Pi camera connected to your Raspberry Pi and you want capture a stream from it, you first need to make it available as a "video4linux" device.

    hashtag
    Raspbian buster or earlier

    On the console, type sudo modprobe bcm2835-v4l2 and restart Restreamer. Then you should be able to select the Pi camera in the wizard or advanced setup.

    hashtag
    Raspbian bullseye

    With the latest Raspbian (bullseye) the tools for the camera are based on libcamera which is not necessarly compatible with video4linux and is currently not supported by ffmpeg directly. In order to make the camera available as a video4linux device you have to switch it into legacy mode:

    1. Open /boot/config.txt in an editor, e.g. sudo nano /boot/config.txt

    2. Replace the line camera_auto_detect=1 with start_x=1

    After the Pi rebooted you should see the Pi camera option in the UI.

    Alternatively, you can run sudo raspi-config and enable the legacy camera support in the Interface Options section. This will only allocate 128MB GPU memory and will only allow HD streaming (1280x720). If you want FullHD streaming (1920x1080), then open /boot/config.txt in an editor and change the line with gpu_mem=128 to gpu_mem=256.

    hashtag
    Raspbian bookworm or later

    With the release of Raspbian "bookworm", the legacy mode for the camera is not anymore available and the camera can't be accessed anymore directly from ffmpeg. We recommend to install Raspbian "bullseye" and follow the instructions above.

    hashtag
    Learn more

    General stream settings

    Edit the audio and video sources, determine their processing, add metadata, and define the desired license.

    hashtag
    1 General

    Fig. 1: Overview of the menu for the general settings of the active live stream.
    circle-info

    The sources menu section shows the active video and audio settings per channel.

    circle-info

    Use the wizard for quick and easy setup, or edit sources directly in custom mode.

    hashtag
    Video settings

    hashtag
    2 Launching the video wizard

    🧙Start the video source wizard.

    hashtag
    3 Video settings

    Adjust the active video settings

    hashtag
    Audio settings

    hashtag
    4 Launch audio wizard

    🧙Starts the wizard for the audio sources

    hashtag
    5 Audio settings

    Customize the active audio settings.

    hashtag
    ...

    hashtag
    6 Abort

    Unsaved settings are lost by canceling.

    hashtag
    7 Delete video sources

    The active video source is completely removed from the system.

    hashtag
    8 Save

    Do not forget to save settings.

    hashtag
    9 Close

    Closes the active window without saving.

    hashtag
    Learn more

    How do I stream to HDMI?

    This guide describes how to write a stream to the HDMI port.

    Writing video data to the HDMI port is done with the Framebuffer publication service. After creating a channel in Restreamer, you can add the Framebuffer publication service. This publication services require that at least one framebuffer device is availbale on your system.

    A framebuffer device is located in /dev with the name fb*, where * is a number usually starting from 0.

    The framebuffer device might only show up as soon a display is connected.

    In order to have these devices available in the Restreamer Docker container, you have to start the container with the --privileged option.

    hashtag
    Raspberry Pi 4

    On a Raspberry Pi 4 we recommend to install Raspbian "bullseye" in order to enable the framebuffer device /dev/fb0.

    You have to edit the /boot/config.txt in order to set the correct resolution:

    1. Open /boot/config.txt in an editor, e.g. sudo nano /boot/config.txt

    2. Set hdmi_force_hotplug=1

    Reboot the Pi and the docker container. Now you should see the Framebuffer publication service, where you select the /dev/fb0 device and the matching color settings (usually RGB565 Little Endian).

    Logo

    Docker Desktop

    Install and run Restreamer on Mac with Docker Desktop.

    circle-check

    After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Preparation

    Terminal

    Install and run datarhei Restreamer on Mac with Intel or Silicon chip in an Docker container.

    circle-check

    After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Requirements

    Docker Desktop

    Install and run Restreamer on Microsoft Windows with Docker Desktop.

    circle-check

    After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.

    hashtag
    Preparation

    Migration

    Migration notes for version breaks.

    hashtag
    v2.4+ to v2.3.x (downgrade)

    Restreamer version >= 2.4.0 switches to FFmpeg 5.1.2, which is incompatible with earlier versions.

    However, if problems arise due to the update, there is a backup to downgrade to =< 2.3.x.

    Network source

    Send and receive video signals from a network on the LAN or WAN.

    hashtag
    1 Network as video source

    Fetch or receive data? There are two different variants to choose from as a mode: Push or Pull. The respective setting influences the further menu navigation.

    Wizard

    🪄 The wizard helps with the initial setup and configuration of the video sources in the datarhei Restreamer. All settings can be edited at any time afterward on the grounds of the live stream.

    hashtag
    Video Setup

    After entering the datarhei Restreamer graphical user interface for the first time, you can use the wizard to set up a video source. The wizard will help you to configure the single steps conveniently.

    circle-info

    Main screen

    After logging in with your credentials, the home page appears on the main screen.

    hashtag
    General system settings with real-time data

    On the main screen, you can see the current video stream. Under the video player, you can find the runtime, the bitrate, and the frame rate. In addition, you find the number of viewers and the current bitrate in real-time for the publications.

    Set
    hdmi_group=1
  • Set hdmi_mode=4 (for 1280x720) or hdmi_mode=16 (for 1920x1080)

  • Set hdmi_pixel_encoding=2

  • At the bottom in the [pi4] section, set dtoverlay=vc4-fkms-v3d

  • 44100 Hz
  • 22050 Hz

  • 8000 Hz

  • Custom ...

  • Audio settingschevron-right
    User Guideschevron-right
    Wizardchevron-right
    How do I operate the wizard?chevron-right
    User Guideschevron-right
    YouTube Video: Quick start guide system configuration
    YouTube Video: Quick start guide for system configuration in datarhei Restreamer
    YouTube Video: Quick guide for the transfer of the Raspberry Pi camera module.
    Add gpu_mem=256 right after the line with start_x=1
  • Replace the line with dtoverlay=vc4-kms-v3d with dtoverlay=vc4-fkms-v3d

  • Save the file and exit the editor

  • Reboot the Pi

  • To the guidearrow-up-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    YouTube video: Using Raspicam as video source for live streaming
    YouTube video: Quick start guide HLS video source with m3u8
    YouTube: SRT Connection with OBS and datarhei Restreamer to reduce latency
    YouTube Video: Quick guide for transferring a USB video source.
    YouTube Video: Quick start guide for USB video device
    YouTube Video: Quick start guide for GPU encoding on a Raspberry Pi.
    Logo
    Logo
    YouTube Video: Video tutorial
    YouTube: Quickstart on Raspberry Pi 4 to produce vertical video with filter.
    Website https://creativecommons.org
    YouTube Video: Test pattern with virtual video source.
    and
    /core/data
    .
    Docker Desktoparrow-up-right
    Microsoftarrow-up-right
    Dockerarrow-up-right
    latest Restreamerarrow-up-right
    Loginchevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    Fig 1. WSL 2 notice in Docker Desktop
    Fig 2. Debian Image in Windows-App-Store
    Fig 3. Docker Desktop settings with Debian
    Fig 4. Docker pull command in PowerShell
    Fig 6. Docker Desktop with Restreamer Image
    Fig 7. Restreamer Desktop settings with ports and path on volume
    Fig 8. Active Restreamer container in Docker Desktop.
    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.

    1935/tcp

    1935/tcp

    x

    RTMPS

    1936/tcp

    1936/tcp

    x

    SRT

    6000/udp

    6000/udp

    x

    HTTP

    80/tcp

    8080/tcp

    HTTPS

    443/tcp

    8181/tcp

    x

    How can I use HTTPS with Let's Encrypt?chevron-right
    📚Knowledge Basechevron-right

    RTMP

    hashtag
    Step 1: Install Docker Desktop

    Download, install and run Docker Desktoparrow-up-right. Follow the installation instructions. Start Restreamer container in Docker Desktop. If you already installed Docker Desktop jump to next step.

    hashtag
    Step 2: Pull the container with the Restreamer

    Open the Terminal and load the latest Restreamerarrow-up-right cotainer from Docker Hub. Use the command:

    Fig 1. Docker pull command in macOS terminal

    hashtag
    Step 3: Run Restreamer Container

    Start Docker Desktop and go to Images. The Restreamer is in the list. A click on RUN takes you to the next step.

    Fig 2. Docker Desktop with Restreamer Image

    hashtag
    Step 4: Configurate your Restreamer container and start

    The next step is to set the container's name, the ports for access in the browser, and the video data. Finally, place the volume settings so that the login data and the restreamer are permanently saved! Otherwise, the settings and login data will be gone with the next update. Click Run to start the Restreamer for the first time.

    • Name A logical name helps to find the container again.

    • Ports Transfer the numbers from the Container Ports field to the empty areas on the left.

    • Volumes Choose a folder on the windows machine where you want to store the settings and configuration of the restreamer permanently. The Destination path is /core/config and /core/data.

    Fig 3. Restreamer Desktop settings with ports and path on volume

    hashtag
    Step 5: Open Browser to login

    Click on the 8080:8080 opens the default browser with the Restreamer front door. You can otherwise also open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    Fig 4. Active Restreamer container in Docker Desktop.

    hashtag
    Step 8. First login

    When you log in for the first time in your Restreamer, you have to enter your credentials.

    hashtag
    Additional information: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup. They are admittedly not so essential for Docker Desktop, but it does not hurt if you know them!

    hashtag
    Description of the most important commands for the use of environments

    -p 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    -p 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    -p 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    -p 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    -p 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    -v ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    -v ${HOME}/restreamer/data:/core/data The restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.
    Loginchevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
  • A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.

  • hashtag
    Preparation

    hashtag
    Step 1: Install Docker

    Download, install and run Docker Desktoparrow-up-right. Follow the installation instructions. If you are already using Docker, skip this step.

    hashtag
    Installation

    hashtag
    Step 2: Start the Restreamer

    Without hardware support

    Start with hardware support for Nvidia CUDA

    Start with hardware support for Intel VAAPI

    circle-exclamation

    For security reasons, start the Restreamer only with --privileged if you need hardware support.

    Fig 1. Docker command in Mac terminal

    hashtag
    Step 3: Open the Restreamer

    Open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    hashtag
    Step 4. First login

    When you log in for the first time in your Restreamer, you have to enter your credentials.

    hashtag
    Important: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup.

    hashtag
    Description of the most important commands for the use of environments

    -d Deletes the container. This means that the container is executed in the background. You can run it interactively in the foreground with -it instead of -d. To stop the restreamer in detached mode, type docker stop restreamer. In interactive mode, simply press Ctrl-C to stop the restreamer.

    --name restreamer Set the container the name restreamer. This name can be used in other Docker commands to control the container. For example, to stop the Restreamer, type docker stop restreamer. While the Restreamer is running, you can log into the container with docker exec -it restreamer /bin/bash.

    --restart=always If the Restreamer crashes or the device reboots, Docker restarts the Restreamer automatically.

    --publish 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    --publish 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    --publish 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    --publish 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    --publish 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    --volume ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    --volume ${HOME}/restreamer/data:/core/data The Restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.
    Loginchevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    Environment Variableschevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    hashtag
    Step 1: Install Docker Desktop

    Download, install and run Docker Desktoparrow-up-right. Follow the installation instructions. If you are already using Docker Desktop and installed WSL 2, skip to Step 4.

    hashtag
    Step 2: WSL 2 installation

    To make the Restreamer container compatible with Windows, installing the Linux kernel update is necessary. The instructions are available on Microsoftarrow-up-right and Dockerarrow-up-right websites. We recommend using the Debian or Ubuntu package. Follow the instructions, and there will be no problems.

    Fig 1. WSL 2 notice in Docker Desktop
    Fig 2. Debian Image in Windows-App-Store
    Fig 3. Docker Desktop settings with Debian

    hashtag
    Step 3: Docker Desktop settings

    Go to the Docker Desktop settings to enable the Linux distro integration.

    triangle-exclamation

    After the steps, we recommend rebooting the computer.

    hashtag
    Start Restreamer container in Docker Desktop

    hashtag
    Step 4: Pull the container with the Restreamer

    Open the command-line PowerShell for Windows and load the latest Restreamerarrow-up-right cotainer from Docker Hub. Use the command:

    Fig 4. Docker pull command in PowerShell

    hashtag
    Step 5: Run Restreamer Container

    Start Docker Desktop and go to Images. The Restreamer is in the list. A click on RUN takes you to the next step.

    Fig 6. Docker Desktop with Restreamer Image

    hashtag
    Step 6: Configurate your Restreamer container and start

    The next step is to set the container's name, the ports for access in the browser, and the video data. Finally, place the volume settings so that the login data and the restreamer are permanently saved! Otherwise, the settings and login data will be gone with the next update. Click Run to start the Restreamer for the first time.

    • Name A logical name helps to find the container again.

    • Ports Transfer the numbers from the Container Ports field to the empty areas on the left.

    • Volumes Choose a folder on the windows machine where you want to store the settings and configuration of the restreamer permanently. The Destination path is /core/config and /core/data.

    Fig 7. Restreamer Desktop settings with ports and path on volume

    hashtag
    Step 7: Open Browser to login

    Click on the 8080:8080 opens the default browser with the Restreamer front door. You can otherwise also open a browser and enter the device's IP address with the Restreamer installed. In the example: http://device-ip:8080/ui

    Fig 8. Active Restreamer container in Docker Desktop.

    hashtag
    Step 8. First login

    When you log in for the first time in your Restreamer, you have to enter your credentials.

    hashtag
    Additional information: The Environments

    Environments are global settings for the Restreamer. We recommend considering some environments at the startup. They are admittedly not so essential for Docker Desktop, but it does not hurt if you know them!

    hashtag
    Description of the most important commands for the use of environments

    --publish 8080:8080 Binds the computer's port 8080 to the Restreamer's port 8080. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to -p 31000:8080, for example.

    --publish 8081:8181 Binds the computer's port 8181 to the Restreamer's port 8181. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to -p 31000:8181, for example.

    --publish 1935:1935 Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

    --publish 1936:1936 Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

    --publish 6000/udp Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

    --volume ${HOME}/restreamer/config:/core/config The Restreamer stores the current state in the /core/config directory inside the container. This command maps the ${HOME}/restreamer/config directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. -v /tmp/restreamer/config:/core/config

    --volume ${HOME}/restreamer/data:/core/data The Restreamer stores the internal file system persistently in this directory.

    datarhei/restreamer:latest It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

    hashtag
    List with all available environment variables

    hashtag
    Learn more

    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.
    Loginchevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    hashtag
    The required steps:
    • Switch to the mounted Restreamer configuration folder Docker parameter: -v /host/path:/core/config

    • Rename db.json to db_ff5.json

    • Rename db_ff4.json to db.json

    • Start the Restreamer container with an older Docker image tag (e.g., datarhei/restreamer:2.3.0.)

    circle-exclamation

    Restoring the processes created with the new version >= 2.4.0, is impossible.

    hashtag
    v0.6.x to v2.x

    If you are currently using an older version of Restreamer and want to upgrade to the latest version, you have to follow these steps. In case you don't need or want to keep your current stream settings you can go the Quick Start page and install Restreamer v2.x from scratch.

    This guide assumes that your current docker command line looks like

    Your actual command line might have more enviroment variables or different paths to the mounted directories.

    1. Upgrade your Restreamer to v0.6.8 (https://github.com/datarhei/restreamer/releases/tag/v0.6.8arrow-up-right). If you don't upgrade to v0.6.8, all your settings might get lost during the migration.

    2. Start Restreamer v0.6.8 and start streaming from the video source.

    3. Stop Restreamer v0.6.8 by stopping the Docker container, e.g. docker kill restreamer and then docker rm restreamer.

    4. Pull the latest Restreamer image, e.g. docker pull datarhei/restreamer:latest.

    5. Adjust the mounted volumes by replacing -v /mnt/restreamer/db:/restreamer/db with -v /mnt/restreamer/db:/core/config -v /opt/restreamer/data:/core/data in your docker command line.

    6. Start Restreamer. Now the settings from v0.6.8 are imported to v2.x

    7. Done.

    Your docker command should now look like

    After the old settings have been successfully imported, the old settings database (v1.json) stored in /mnt/restreamer/db will not be used anymore. A new settings database (db.json) and a config file (config.json) have been created in that directory.

    hashtag
    Review your Docker command line

    In case you are using any environment variablesarrow-up-right (command line options that start with -e RS_), they will be ignored after the first start of Restreamer v2.x (see step 6 above). You can remove them from your docker command line.

    As in the example command line above, there are two environment variables RS_USERNAME and RS_PASSWORD. You can remove those because during the first start of Restreamer v2.x their values were transferred into the config.json.

    Your docker command should now look like

    Your actual command line might have different paths to the mounted directories. Please adjust the example above accordingly in case you want to copy/paste it.

    hashtag
    2 Pull or receive mode
    Fig. 1: Set up video source in pull mode.

    hashtag
    3 Protocol

    You can select between > SRT > RTMP or > HLS.

    hashtag
    4 Send the stream to this address:

    Enter this address in the sending device from the video signal.

    hashtag
    5. CHECK

    Pressing the button verifies the reception of the video signal.

    circle-info

    If the stream is not accepted, the error message can be displayed directly. By clicking on: "View details of the review".

    hashtag
    2 Fetch in push mode

    Fig. 2: Set up video source in push mode.

    hashtag
    3 Network source address push

    At this point, the address of the server can be customized. The address supports HTTP, HTTPS (HLS, DASH), RTP, RTSP, RTMP, and SRT.

    hashtag
    4 Login credentials

    If required, the access data of the video source can be entered here.

    hashtag
    5 Advanced settings in push mode

    hashtag
    HTTP and HTTPS

    Read input at native speed

    Force input frame rate

    hashtag
    User-agent

    hashtag
    General

    hashtag
    Tread Queue Size

    This option sets the maximum number of packets in the queue when read from the file or device. For low latency/high rate live streams, packages may be discarded if they are not read in time; setting this value may force FFmpeg to use a separate input thread and read packets as they arrive. The default value is 512.

    hashtag
    > Flags

    Default value is: genpts

    1. discardcorrput -> Discard damaged frames

    2. fastseek -> Enable fast but inaccurate searches for some formats.

    3. genpts -> Generate the timestamp of the video

    4. igndts -> Ignore decoding of the timestamp

    5. ignidx -> Ignore index

    6. nobuffer -> Reduce latency caused by optional buffering

    7. nofillin -> Do not fill in missing values that can be calculated exactly

    8. noparse -> Disable AVParsers, that needs filling too

    9. sortdts -> Try to interleave the output packets by decoding the timestamp

    hashtag
    6. CHECK

    After starting the test process, the active video stream can be selected.

    circle-info

    "Show probe details" shows the feedback from the system.

    hashtag
    Encoding settings

    Passthrough (copy) option takes the unedited video stream.

    • Passthrough (copy) option takes the unedited video stream.

    • H.264 (libx264) starts a video encoding with the free and open-source software library.

    circle-info

    Afterwards, you can directly switch to the audio settings.

    hashtag
    Learn more

    Audio settingschevron-right
    Troubleshootingchevron-right
    User Guideschevron-right
    You can edit all settings at any time later on.
    circle-info

    The wizard can be started again in the first step or directly in the audio settings in the live stream settings.

    hashtag
    Step 1: Video Setup

    Fig. 1: Set up a video source via the wizard.

    Select whether to retrieve the video source from a network source (such as a network camera) or from the internal RTMP server (such as OBS Streams or Wowza).

    Push method Enter the address for the video source. HTTP, HTTPS (HLS, DASH), RTP, RTSP, RTMP, SRT are supported. The manufacturer in the manual specifies the streaming address of network cameras.

    If you use OBS or another video source, use this address as the video source.

    If you have an active Raspberry Pi Cam, use this address as a video source.

    If you want to use a video device via USB.

    Internal SRT server

    hashtag
    Step 2: Video setup

    Select one of the available video profiles of the video source.

    Fig. 2: The available resolutions of the video source are displayed.

    hashtag
    Step 3: Audio setup

    This step sets the audio from the live stream.

    A silent audio channel is recommended if you don't have sound, but an audio track is necessary to produce the video. Some services like YouTube or Facebook always require an active audio channel.

    Disable the sound.

    Enable Sound

    hashtag
    Step 4: Metadata

    Metadata is essential for the search engine optimization of a video. Therefore, a short description of the video for the audience is optimal.

    hashtag
    Step 5: License

    Think briefly about the terms under which the video will be published on the Internet. All Creative Commons licenses are supported. The Creative Commons page explains the details of the different licenses in detail.

    The worst license is no license!

    CC0 1.0 The person who has associated a work with this deed has dedicated the work to the public domain by waiving all of their rights in the work worldwide under copyright law, including all related and neighboring rights, to the extent permitted by law. You may reproduce, modify, distribute and perform the Work, including for commercial purposes, all without asking permission.

    CC BY 4.0 This license allows reusers to distribute, remix, adapt and build upon the material in any medium or format as long as credit is given to the author. The license permits commercial use.

    CC BY SA 4.0 This license allows reusers to distribute, remix, adapt and build upon the material in any medium or format as long as credit is given to the author. The license permits commercial use. If you remix, adapt, or build upon the material, you must license the modified material under identical terms.

    CC BY NC 4.0 This license allows reusers to distribute, remix, adapt and build upon the material in any medium or format and for non-commercial purposes only, as long as credit is given to the author.

    CC BY NC SA 4.0 This license permits reusers to distribute, remix, adapt, and build upon the material in any medium or format for noncommercial purposes only, and only so long as credit is given to the author. If you rework, adapt, or build upon the Material, you must license the modified Material under identical terms.

    CC BY ND 4.0 This license allows reusers to copy and distribute the material in any medium or format only in an unadapted form and only as long as credit is given to the author. The license permits commercial use.

    CC BY NC ND 4.0 This license permits reusers to copy and distribute the material in any medium or format only in an unmodified form and only as long as credit is given to the author. The license permits commercial use.

    hashtag
    Restart wizard

    The wizard can be started again in the first step or directly in the audio settings in the live stream settings.

    hashtag
    Learn more

    Video settingschevron-right
    Audio settingschevron-right
    Meta Informationchevron-right
    Licensechevron-right
    How do I stream a RaspiCam?chevron-right
    How do I connect a USB camera to the Restreamer?chevron-right
    How do I stream an IP cam with RTSP?chevron-right
    Quick Startchevron-right
    hashtag
    The menu items in detail

    The navigation points take you to the settings of the various submenus.

    1. System menu

      1. datarhei Service

      2. Player site

      3. Issue alert

      4. Language

      5. Logout

      1. All

      2. Plattform

      1. Add source

      2. Switch channel

      1. Embed

      2. Color

    2. Process details

    3. Stop Stream

    4. Copy HLS, RTMP, SRT, or Snapshot address

    hashtag
    Learn more

    Fig. 1: The main screen is the central point of contact in datarhei Restreamer.
    Quick Startchevron-right
    Publication serviceschevron-right
    Docker Desktoparrow-up-right
    Loginchevron-right
    How do I install Docker?chevron-right
    How does port forwarding work for the Restreamer?chevron-right
    How can I use HTTPS with Let's Encrypt?chevron-right
    What are environment variables?chevron-right
    Environment Variableschevron-right
    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    Fig 1. Docker command in Windows PowerShell
    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.

    How do I stream an IP cam with RTSP?

    You can use the RTSP protocol for live streaming if you have an IP camera. RTSP stands for Real-Time Streaming Protocol.

    To integrate an RTSP-enabled network camera, you need the address where you can retrieve the live stream from the camera. Please read your camera manual and search for "RTSP" or look on the internet with the excellent search command "RTSP + URL + manufacturer + camera model."

    triangle-exclamation

    ATTENTION! Do not use standard user data for IP cams, and always assign a secure password! ATTENTION! Activate password protection for your RTSP streams to prevent unauthorized access!

    hashtag
    Add a video source via RTSP

    hashtag
    How do I find the RTSP address of a network camera?

    If you don't know how to get the RTSP address of your network camera, learn it in this guide.

    hashtag
    Example of the RTSP syntax of the manufacturer HIKVISION

    rtsp:// [USERNAME] : [PASSWORD] @ [ADDRESS] : [RTSP PORT] /Streaming/Channels/ [CH] 0 [STREAM TYP]

    • [USER] - This is the username for accessing the stream

    • [PASSWORD] - String, for access or access control to the device.

    • [ADDRESS] - Network address of the IP cam.

    hashtag
    Example 1

    hashtag
    HIKVISION network camera in LAN with a local network address.

    In this example, the IP address of the IP cam in the LAN is: 192.168.1.64 and the RTSP port is on the default port: 554. The username is: admin and the password is: password. The 3 possible streaming channels are addressed.

    The RTSP streaming addresses are:

    1 Main Stream: rtsp://admin:passwort@192.168.1.64:554/Streaming/Channels/101 2 Substream: rtsp://admin:passwort@192.168.1.64:554/Streaming/Channels/102 3 Dritter Stream: rtsp://admin:passwort@192.168.1.64:554

    hashtag
    Example 2

    hashtag
    HIKVISION network camera on WAN with a public IP address.

    The IP address on the LAN is: 181.112.101.124 and the RTSP port is on the default port: 554. All other parameters are identical to Example 1 on the LAN.

    The RTSP streaming addresses are:

    1 Main Stream: rtsp://admin:passwort@181.112.101.124:554/Streaming/Channels/101 2 Substream: rtsp://admin:passwort@181.112.101.124:554/Streaming/Channels/102 3 Dritter Stream: rtsp://admin:passwort@181.112.101.124:554/Streaming/Channels/103

    circle-exclamation

    Don't forget to forward active ports in routers and firewalls to be publicly available over the Internet.

    hashtag
    Open RTSP video with VLC Media Player

    If the RTSP stream does not work, you can check with VLC. To do this, install the free VLC player from the manufacturer's website: https://www.videolan.org/.

    • Navigate via the tab "Media" to the option "Open network stream" or open the menu via the key combination "Ctrl + N".

    • Enter RTSP address as described above

    • Click on the "Open RTP/UDP stream" button to start the stream.

    If you have a working RTSP address, the rest is ready to live stream with a few clicks.

    hashtag
    Learn more

    Understand different error messages?

    • The publication service "{0}" could not be deleted

    • Login failed: Couldn't load API details

    • The channel "{0}" could not be deleted

    • Main channel not found

    • Publication service not found

    • RTMP server is not enabled

    • The input profile is not complete. Please define a video and audio source.

    • There was a problem storing the settings. Settings not saved.

    • There were some errors in the settings. Settings not saved.

    • This is not necessarly an error. It may take a bit longer for Restreamer Core to restart.

    • This source cannot be edited while it is in use. In order to continue you have to disconnect the source.

    • API endpoint not found. Settings not saved.

    • Deleting a publication service cannot be reversed. The publication will be stopped immediately.

    • This source cannot be edited while it is in use. In order to continue you have to disconnect the source.

    • Login failed: {0}

    • Reconnecting to Restreamer Core failed for the last {RETRIES} seconds.

    • Restarting the application failed.

    • Uploading the file failed

    • Uploading the logo failed

    • Failed to create playersite files.

    • Failed to create publication service ({0})

    • Failed to probe the source. Please check the <0>probe details</0>.

    • Failed to properly cleanup previous process data

    • Failed to refresh token: {0}

    • Failed to save ingest metadata

    • Failed to stop process

    • Failed to store playersize setting.

    • Failed to store publication service ({0})

    • Failed to update ingest process ({0})

    • Failed to update the player

    • Failed to verify the source. Please check the address.

    • Error while copying data to clipboard

    • There war an error during upload: {0}

    • There was an error connecting to Restreamer Core at {0}.

    • There was an error setting up the stream.

    • There were some errors in the settings. Settings not saved.

    hashtag
    Login failed

    triangle-exclamation

    Login failed: Invalid username or password

    Solution: Check the access data for validity.

    hashtag
    Missing or Invalid JWT Token

    triangle-exclamation

    Token could not be updated: Missing or invalid JWT token

    Token konnte nicht aktualisiert werden: Missing or invalid JWT token

    Solution:

    hashtag
    Failed to check the source

    triangle-exclamation

    Prüfen der Quelle ist fehlgeschlagen. <0>Details der Überprüfung</0> ansehen.

    Solution:

    hashtag
    Token Error

    triangle-exclamation

    Token konnte nicht aktualisiert werden: {0}

    Solution:

    hashtag
    Verification failed

    triangle-exclamation

    Die Quelle konnte nicht verifiziert werden. Bitte Adresse prüfen.

    Solution:

    hashtag
    API Error

    triangle-exclamation

    Login fehlgeschlagen: Konnte die API-Details nicht laden

    Solution:

    hashtag
    Clipboard not copied

    triangle-exclamation

    Die Daten konnten nicht in die Zwischenablage kopiert werden

    Solution:

    hashtag
    Upload Error

    triangle-exclamation

    Beim Hochladen ist ein Fehler aufgetreten: {0}

    Solution:

    hashtag
    API Error

    triangle-exclamation

    Es ist ein Fehler beim Verbinden mit der Restreamer-API bei {0} aufgetreten.

    Solution:

    hashtag
    Settings error

    triangle-exclamation

    Es gab einige Fehler in den Einstellungen. Einstellungen nicht gespeichert.

    Solution:

    hashtag
    Learn more

    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.
    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All Environment variables on GitHub.
    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: All environments variables on GitHub
    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    External URL: List with all environment variables on GitHub
    GitHub - datarhei/core: datarhei Core is management for FFmpeg processes without development effort. Whether your streaming has one viewer or a million, we have the tools to help you develop, deploy and manage any video project at any stage. We've solved the challenging problems so you can focus on your application, not your infrastructure.GitHubchevron-right
    datarhei Core on GitHub
    YouTube Video: Quick Start Guide Activate HTTPS with Let's Encrypt for Free
    docker pull datarhei/restreamer:latest
    docker pull datarhei/restreamer:latest
    docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:latest
    docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:cuda-latest
    docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:vaapi-latest
    docker pull datarhei/restreamer:latest
    $ docker run -d --restart always \
         --name restreamer \
         -e "RS_USERNAME=admin" -e "RS_PASSWORD=datarhei" \
         -p 8080:8080 -v /mnt/restreamer/db:/restreamer/db \
         datarhei/restreamer:latest
    $ docker run -d --restart always \
         --name restreamer \
         -e "RS_USERNAME=admin" -e "RS_PASSWORD=datarhei" \
         -p 8080:8080 \
         -v /mnt/restreamer/db:/core/config -v /opt/restreamer/data:/core/data \
         datarhei/restreamer:latest
    $ docker run -d --restart always \
         --name restreamer \
         -p 8080:8080 \
         -v /mnt/restreamer/db:/core/config -v /opt/restreamer/data:/core/data \
         datarhei/restreamer:latest
    docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:latest
    docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:cuda-latest
    docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:vaapi-latest
    Software
  • Protocol

  • Audio Settings

  • Processing and Control

  • Meta information

  • License (CC)

  • Logo
  • Statistics

  • Playback

  • System settings
    Publication services
    Multi-video source
    Stream settings
    General
    Sources Video Settings
    Video Player Settings
    System monitoring
    Process report
    How can I change the password of the Restreamer?chevron-right
    ⭐Premium Supportchevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    docker kill restreamer
    docker rm restreamer
    cd /mnt/restreamer/config
    mv db.json db_ff5.json
    mv db_ff4.json db.json
    docker run {used params...} datarhei/restreamer:2.3.0
    YouTube: SRT Server with Publication Service for multi-streaming with SRT

    [RTSP PORT] - default port is 554

  • [CHANNEL] - HIKVISION cameras provide 2 to 3 channels, where channel 1 is mostly 4:3 format and is used for internal viewing

  • [STREAM TYPE] - 1 for First/Mainstream, 2 for Substream 4:3 format (internal use), 3 for Secondstream (sometimes has to be enabled separately)

  • /Streaming/Channels/
    103

    If the video does not start, check the video source and firewall settings in your network.

    User Guideschevron-right
    📚Knowledge Basechevron-right
    Fig. 1: Video and audio settings HIKVISION
    Fig. 2: Select and configure channel

    Publication services

    The publication service helps you send video output to a remote station. It is a virtual broadcast to deliver a live video to many or single destinations.

    hashtag
    Specify in the Publication services where the stream should be pulled over.

    hashtag
    HLS (memfs) & HLS (diskfs)

    Default In this case we use the HLS stream of the channel and push it to the desired destination. Latency: What the user has set (min. 10-30 sec.)

    hashtag
    RTMP

    Take the stream from the RTMP server if the channel is enabled as shown in "2. Channel Edit > Processing & Control". Latency: 1-2 sec.

    hashtag
    SRT

    As for RTMP. Latency: <1 sec.

    circle-info

    An active user account on the external video streaming service is a prerequisite for using Publication Services.

    circle-info

    Instructions for the settings of the target services can be found on the target platform. Keywords for research are: "External RTMP" or " External HLS".

    hashtag
    What is a Publication Service?

    There are many Publication Services. Any number of new services can be created for different platforms. The procedure for using publication services is always very similar. The datarhei Restreamer is connected to the external service via a streaming key. Then the video stream is started on the service, in this example, YouTube.

    hashtag
    Video tutorial

    hashtag
    Platforms

    If a platform for distributing your content is missing, don't hesitate to contact us. We will add the publication service immediately. Just submit a pull request via GitHub or write an email to [email protected].

    hashtag
    Social Media

    • YouTube

    • Facebook

    • Twitter

    hashtag
    CDN

    • livespotting.com — The #1 webcam platform for webcams in Germany

    • restream.io — Multi-Channel Platform

    • be.live

    hashtag
    Software

    • WOWZA

    • Icecast

    • Red5

    hashtag
    Protocol

    • Image2

    • RTSP

    • RTMP

    hashtag
    Troubleshooting

    If connection problems occur, error diagnostics can be performed via the error logs of the process details and the process report.

    hashtag
    Learn more

    Let's Encryptletsencrypt.orgchevron-right
    External URL: letsencrypt.org
    Deed - Attribution-NonCommercial 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NoDerivatives 4.0 International - Creative Commonscreativecommons.orgchevron-right
    https://creativecommons.org/licenses/zero/1.0creativecommons.orgchevron-right
    Deed - Attribution-NonCommercial-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NonCommercial-NoDerivatives 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Go live on Facebook using streaming software | Facebook Help Centerwww.facebook.comchevron-right
    External resource: Facebook
    Create a YouTube live stream with an encoder - YouTube Helpsupport.google.comchevron-right
    Logo
    Logo
    Logo
    Logo
    Twitch
  • Vime

  • Instagram

  • TikTok

  • Amazon

  • LinkedIn

  • Telegram

  • dlive

  • Trovo

  • PeerTube

  • Brightcove — OTT
  • Akamai - CDN

  • DaCast - OTT

  • CDN77 - CDN

  • Azure Media Services - CDN

  • Media Network

  • Ant Server
  • Mist Server

  • Kurento

  • Streamhash

  • Clipbucket

  • FreeSwitch

  • Nimble Streamer

  • Xsplit

  • Wirecast

  • Unreal Media Server

  • NginX with nginx-rtmp-module

  • Owncast

  • HLS
  • DASH

  • SRT

  • UDP

  • MPEG-TS

  • Framebuffer

  • YouTube Video: Quick guide explains the Publication Service in datarhei Restreamer in a few steps
    Process detailschevron-right
    Process reportchevron-right
    Loggingchevron-right
    User Guideschevron-right
    Fig. 1: The + symbol opens the area with the various Publication Services.
    Fig. 2: Example of how to use the Publication Service with YouTube.
    Fig. 3: Detailed settings of the Publication Service for YouTube
    Fig. 4: Active Publication Service to YouTube on the main screen
    Port Checker - Check Open Ports Onlineportchecker.cochevron-right
    External link: Check public ports
    Logo
    Logo
    https://www.mistserver.org/opensourcearrow-up-right
    https://www.kurento.orgarrow-up-right
    https://streamhash.comarrow-up-right
    https://clipbucket.comarrow-up-right
    https://freeswitch.comarrow-up-right
    https://wmspanel.com/nimblearrow-up-right
    https://www.xsplit.comarrow-up-right
    https://www.telestream.net/wirecast/arrow-up-right
    http://www.umediaserver.net/umediaserverarrow-up-right
    https://owncast.onlinearrow-up-right

    Proxying

    If you are already running a web server and you want Restreamer to be part of the website, you can forward requests to a specific location to your Restreamer.

    Below you will find example configuration snippets for nginx, Apache, and Caddy. All of these allow proxying requests to a specific location to your Restreamer. These examples assume that Restreamer is running on the same server or in a trusted local network accessible by your server. In this case HTTPS doesn't need to be enabled in Restreamer. Your nginx, Apache, or Caddy needs to be configured for HTTPS instead.

    hashtag
    NGINX

    Example 1: nginx is serving your website and you want access Restreamer at /restreamer/. Restreamer is running on the same server at “127.0.0.1:8080”:

    Example 2: nginx is serving your website and you want access multiple Restreamer at /restreamer1/, /restreamer2/, and /restreamer3/. All Restreamer are in a local network that is connected to your server:

    Example 3: nginx is serving your website via HTTPS and you want access Restreamer at /restreamer/. Restreamer is running on the same server at “127.0.0.1:8080”:

    circle-info

    Please note that you don't need to enable HTTPS in Restreamer, because nginx is already handling the SSL connection.

    Example 4: nginx is serving your website and you want access Restreamer at /restreamer/. Restreamer is running in the local network at “192.168.1.42”. The Restreamer HTTP server is listening on port 8080 and the RTMP and SRT servers are listening on ports 1935 and 6000 resp.:

    See the for more details.

    hashtag
    Apache

    Example 1: Apache is serving your website and you want access Restreamer at /restreamer/. Restreamer is running on the same server at “127.0.0.1:8080”:

    Example 2: Apache is serving your website and you want access multiple Restreamer at /restreamer1/, /restreamer2/, and /restreamer3/. All Restreamer are in a local network that is connected to your server:

    Example 3: Apache is serving your website via HTTPS and you want access Restreamer at /restreamer/. Restreamer is running on the same server at “127.0.0.1:8080”:

    circle-info

    Please note that you don't need to enable HTTPS in Restreamer, because Apache is already handling the SSL connection.

    See the for more details.

    hashtag
    Caddy

    Example 1: Caddy is serving your website and you want access Restreamer at /restreamer/. Restreamer is running on the same server at “127.0.0.1:8080”:

    Example 2: Caddy is serving your website and you want access multiple Restreamer at /restreamer1/, /restreamer2/, and /restreamer3/. All Restreamer are in a local network that is connected to your server:

    Caddy will automatically serve your site with HTTPS enabled in case you configured your DNS correctly. Read more about .

    circle-info

    Please note that you don't need to enable HTTPS in Restreamer, because Caddy is already handling the SSL connection.

    See the for more details.

    hashtag
    Learn more

    https://creativecommons.org/licenses/zero/1.0/creativecommons.orgchevron-right
    https://creativecommons.org/licenses/arrow-up-right
    Deed - Attribution 4.0 International - Creative Commonscreativecommons.orgchevron-right
    https://creativecommons.org/licenses/arrow-up-right
    Deed - Attribution-NonCommercial-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NoDerivatives 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NoDerivatives 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NonCommercial 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Nginx documentationarrow-up-right
    Apache documentationarrow-up-right
    Automatic HTTPS with Caddyarrow-up-right
    Caddy documentationarrow-up-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    http {
        server {
            listen 80;
            server_name ...;
    
            [your site configuration]
    
            location /restreamer/ {
                proxy_http_version 1.1;
                proxy_pass http://127.0.0.1:8080/;
                proxy_redirect off;
            }
        }
    }
    http {
        server {
            listen 80;
            server_name ...;
    
            [your site configuration]
    
            location /restreamer1/ {
                proxy_http_version 1.1;
                proxy_pass http://192.168.0.11:8080/;
                proxy_redirect off;
            }
    
            location /restreamer2/ {
                proxy_http_version 1.1;
                proxy_pass http://192.168.0.12:8080/;
                proxy_redirect off;
            }
    
            location /restreamer3/ {
                proxy_http_version 1.1;
                proxy_pass http://192.168.0.13:8080/;
                proxy_redirect off;
            }
    
            ...
        }
    }
    http {
        server {
            listen 443 ssl http2;
            server_name ...;
    
            [SSL configuration]
    
            [your site configuration]
    
            location /restreamer/ {
                proxy_http_version 1.1;
                proxy_pass http://127.0.0.1:8080/;
                proxy_redirect off;
            }
        }
    }
    http {
        server {
            listen 80;
            server_name ...;
    
            [your site configuration]
    
            location /restreamer/ {
                proxy_http_version 1.1;
                proxy_pass http://192.168.1.42:8080/;
                proxy_redirect off;
            }
        }
    }
    
    stream {
        server {
            listen 1935;
            proxy_pass 192.168.1.42:1935;
        }
    
        server {
            listen 6000 udp reuseport;
            proxy_pass 192.168.1.42:6000;
        }
    }
    <VirtualHost *:80>
            ServerName ...
    
            [your site configuration]
    
            <Location "/restreamer/">
                    ProxyPass http://localhost:8080/
            </Location>
    </VirtualHost>
    <VirtualHost *:80>
            ServerName ...
    
            [your site configuration]
    
            <Location "/restreamer1/">
                    ProxyPass http://192.168.0.11:8080/
            </Location>
            
            <Location "/restreamer2/">
                    ProxyPass http://192.168.0.12:8080/
            </Location>
            
            <Location "/restreamer2/">
                    ProxyPass http://192.168.0.13:8080/
            </Location>
    </VirtualHost>
    <VirtualHost *:443>
       ServerName ...
       
       [your site configuration]
       
       SSLEngine on
       SSLProxyEngine On
       SSLCertificateFile /path/to/fullchain.pem
       SSLCertificateKeyFile /path/to/privkey.pem
       Protocols h2 http/1.1
    
       <Location "/restreamer">
          ProxyPass http://127.0.0.1:8080/
       </Location>
    </VirtualHost>
    your.site.com {
    	handle_path /restreamer/* {
    		reverse_proxy 127.0.0.1:8080
    	}
    }
    your.site.com {
    	handle_path /restreamer1/* {
    		reverse_proxy 192.168.1.11:8080
    	}
    	
    	handle_path /restreamer1/* {
    		reverse_proxy 192.168.1.12:8080
    	}
    	
    	handle_path /restreamer1/* {
    		reverse_proxy 192.168.1.13:8080
    	}
    }
    https://creativecommons.org/licenses/arrow-up-right
    https://creativecommons.org/licenses/arrow-up-right
    https://creativecommons.org/licenses/arrow-up-right
    https://creativecommons.org/licenses/arrow-up-right
    Logo
    Logo
    Logo
    YouTube Video: Add video source of IP-Cams with a few clicks
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo

    How do I write a template for the publication website?

    This guide explains how you can write a template for the publication website and describes the available expressions.

    A template for the publication website is a single HTML page which uses the Handlebars templating language (https://handlebarsjs.com/arrow-up-right) to control the output based on the available expressions.

    The Restreamer default template is available at https://github.com/datarhei/restreamer-ui/blob/main/public/_playersite/index.htmlarrow-up-right.

    hashtag
    Expressions

    The available Handlebars expressions are:

    Expression
    Type
    Description

    hashtag
    Channel object

    Expression
    Type
    Description

    Many of those expressions are for manipulating the default template. If you write your own template you are not required to use all expressions. Pick the ones that are suitable for your needs.

    The template is used to create the /index.html for the default channel and for each channel a /playersite_[channelid].html. The [channelid] will be replaced by the respective ID of that channel. This can be used to link to the rendered template of an individual channel.

    hashtag
    Handlebars

    The template language "Handlebars" is used for the publication website templates. If you are new to Handlebars, please check out their guide () in order to get up to speed.

    There are two additional helper defined:

    hashtag
    ifEquals

    This helper lets you check if two values are equal, e.g.

    hashtag
    ifnoteq

    This helper lets you check if two values are not equal, e.g.

    Logo

    boolean

    Whether to enable share buttons.

    support

    boolean

    Whether to display a link to the datarhei project website.

    chromecast

    boolean

    Whether to enable chromecast in the player.

    airplay

    boolean

    Whether to enable airplay in the player.

    url

    string

    The URL to the playersite.

    textcolor_title

    string

    Text color for titles as defined in the Design section.

    textcolor_default

    string

    Default text color as defined in the Design section.

    textcolor_link

    string

    Link color as defined in the Design section.

    textcolor_link_hover

    string

    Link :hover color as defined in the Design section.

    bgcolor_header

    string

    Background color for the header as defined in the Design section.

    bgcolor_selected

    string

    Background color for selected items as defined in the Design section.

    bgcolor_unselected

    string

    Background color for unselected items as defined in the Design section.

    bgcolor_default

    string

    Default background color as defined in the Design section.

    hrcolor

    string

    Separator color as defined in the Design section (linecolor).

    bgimage_url

    string

    URL of the background image, empty if no background image has been uploaded.

    imprint_html

    string

    Imprint HTML content as defined in the Notes section.

    terms_html

    string

    Terms HTML content as defined in the Notes section.

    inject1

    string

    HTML content for the extended header as defined in the Code injection section.

    inject2

    string

    HTML content for the extended channel list as defined in the Code injection section.

    inject3

    string

    HTML content for the extended content area as defined in the Code injection section.

    inject4

    string

    HTML content for the extended footer as defined in the Code injection section.

    channels

    array

    List of all available channels, i.e. channel objects. See below.

    channel_id

    string

    ID of the currently selected (or default) channel.

    channel_name

    string

    Name of the currently selected (or default) channel.

    channel_description

    string

    Description of the currently selected (or default) channel.

    channel_descriptionhtml

    string

    Description of the currently selected (or default) channel as HTML.

    channel_creator_name

    string

    Name of the creator of the currently selected (or default) channel.

    channel_creator_description

    string

    Description of the creator of the currently selected (or default) channel.

    channel_creator_description_html

    string

    Description of the creator of the currently selected (or default) channel as HTML.

    channel_license

    string

    License of the currently selected (or default) channel.

    channel_poster

    string

    URL of the poster (snapshot) image of the currently selected (or default) channel.

    channel_width

    number

    The witdh of the player, currently always 640.

    channel_height

    number

    The height of the player, currently always 360.

    boolean

    Whether the channel is available, i.e. connected.

    thumbnail

    string

    URL to the latest snapshot of that channel, empty if not available.

    egresses

    array(string)

    List of egress UUIDs.

    player

    string

    Currently this value is always videojs.

    playersite

    boolean

    Whether the playersite is enabled.

    title

    string

    The sitename of the playersite as defined in the General section.

    id

    string

    Full channel ID, e.g. restreamer-ui:ingest:[UUID]

    channelid

    string

    UUID of the channel.

    name

    string

    Name of the channel.

    https://handlebarsjs.com/guide/arrow-up-right

    share

    available

    {{#ifEquals player "videojs"}}
       ...
    {{/ifEquals}}
    {{#ifnoteq channel_license "none"}}
       ...
    {{/ifnoteq}}
    Logo
    Logo
    Logo
    YouTube: Activate the RTMP server on the datarhei Restreamer
    Logo
    Deed - Attribution-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    https://creativecommons.org/licenses/arrow-up-right
    Logo
    Deed - Attribution 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Logo