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...

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.

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

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.

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

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
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

Troubleshooting

User Guides

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

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.

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. Disable or adjust environment variables unlocks the settings.

Video settings

hashtag
Video tutorial

hashtag
Learn more

System settings

You can edit system settings in this area.

hashtag
Overview

hashtag
System settings in 3 steps

General stream settings

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

hashtag
1 General

circle-info

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

Notes

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

hashtag
1 Notes

hashtag
2 Imprint

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

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

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 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

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
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 ENV

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.

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

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

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

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

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.

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.

twitter.com/datarhei arrow-up-right
https://www.youtube.com/user/datarheiarrow-up-right
https://datarhei.comarrow-up-right
User Guideschevron-right

Manual

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.

Dockerarrow-up-right 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

💾Installingchevron-right
📚Knowledge Basechevron-right
👨‍💻Developerchevron-right
⭐Premium Supportchevron-right
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
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

Fig. 1: Overview of the menu for the general settings of the active live stream.
Wizardchevron-right
How do I operate the wizard?chevron-right
User Guideschevron-right
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

Fig. 1: Menu for the two settings at the bottom of the publication website.
User Guideschevron-right
https://twitter.com/datarheiarrow-up-right
https://youtube.com/user/datarheiarrow-up-right
https://datarhei.comarrow-up-right
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 ... -p CUSTOM_PORT:1935 ... 
docker run ... -p 1200:1935 ... 
How to navigate to the system settings menu in 2 clicks and activate the expert mode.
Fig. 2: Menu for the system settings
Fig. 3: Select menu for system settings
Fig. 4: Activating the expert mode

hashtag
Quick start video guide

hashtag
Learn more

General system settingschevron-right
Servicechevron-right
Networkchevron-right
Authorizationchevron-right
Playbackchevron-right
Disk spacechevron-right
RTMPchevron-right
SRTchevron-right
Loggingchevron-right
Fig. 1: Overview of the global system settings
General system settingschevron-right
Quick Startchevron-right
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
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
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
Learn more
User Guideschevron-right
📚Knowledge Basechevron-right
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
User Guideschevron-right
Manualchevron-right
📚Knowledge Basechevron-right
User Guideschevron-right
Manualchevron-right
Licensechevron-right
📚Knowledge Basechevron-right

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

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

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

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

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.

-v /opt/restreamer/data:/core/data
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

Authorization

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

hashtag
1 Authorization settings

Fig. 1: The menu for authorization

hashtag
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

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

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

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.

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

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

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

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

System displays

The Restreamer provides comprehensive system monitoring.

hashtag
Overview real-time monitoring

Fig. 1: Real-time data in the main screen

hashtag
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

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.

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

📚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

What are environment variables?

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

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

Fig. 1: Example environment variables with locked fields are marked with ENV

hashtag
Learn more

Why do I see ENV and cannot select anything?chevron-rightUser Guideschevron-right📚Knowledge Basechevron-right

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

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

No audio

For livestreams without audio.

Fig. 1: No audio

hashtag
Learn more

Audio settingschevron-rightUser Guideschevron-right

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 do I start a GPU Encoding?chevron-rightUser Guideschevron-right

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.

Video player settings

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

hashtag
Video player configuration

hashtag

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

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

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.

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.

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 ENV. Disable or adjust environment variables unlocks the settings.

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.

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

Network source

Use audio signal with the video channel from the network.

hashtag
Audio source selection

hashtag
2 Source

Process details

hashtag
1 Banner

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

hashtag

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

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.

Design

Customize colors and background of the publication website.

circle-info

RGB or web colors may be entered.

hashtag
2 Text colors

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.

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 ENV. Disable or adjust environment variables unlocks the settings.

Meta Information

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

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.

General settings

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

hashtag
2 Activate publication website

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

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

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.

Virtual audio source

The audio settings for a virtual audio source.

hashtag
Audio source selection

hashtag
2 Source

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

  3. Set hdmi_group=1

  4. Set hdmi_mode=4 (for 1280x720) or hdmi_mode=16 (for 1920x1080)

  5. Set hdmi_pixel_encoding=2

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

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).

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
Wizardchevron-right
Video settingschevron-right
Audio settingschevron-right
User Guideschevron-right
Fig. 2: Reaching the settings for the active livestream from the main screen
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
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
    💾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
    User Guideschevron-right
    Manualchevron-right
    Loggingchevron-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
    System monitoringchevron-right
    Quick Startchevron-right
    Fig. 2: Unfold system monitoring.
    Fig. 3: System monitoring menu expanded.
    Environment Variableschevron-right
    User Guideschevron-right
    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
    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
  • Silence

  • Noise

  • Sine

  • hashtag
    Sampling rate

    We recommend the standard sampling rate of 44100 Hz.

    • 96000 Hz

    • 88200 Hz

    • 48000 Hz

    • 44100 Hz

    • 22050 Hz

    • 8000 Hz

    • Custom …

    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

    Fig. 1: Audio via network source
    Audio settingschevron-right
    User Guideschevron-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
    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

    Fig. 1: Menu for the design settings on the publication website.
    User Guideschevron-right
    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
    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

    Fig. 1: Menu for meta information of the live stream.
    Publication Websitechevron-right
    User Guideschevron-right
    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

    Fig. 1: General settings menu for the publication website.
    User Guideschevron-right
  • Silence

  • Noise

  • Sine

  • hashtag
    3 Sampling Rate

    We recommend a sampling rate of 44100 Hz.

    • 96000 Hz

    • 88200 Hz

    • 48000 Hz

    • 44100 Hz

    • 22050 Hz

    • 8000 Hz

    • Custom ...

    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

    Fig. 1: Virtual audio source menu
    Audio settingschevron-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

    Fig. 1: Open configuration menu for player settings
    Fig. 2: Configuration menu for the video player
    Publication Websitechevron-right
    User Guideschevron-right
    YouTube video: Quick start guide for configuring a video player.
    User Guideschevron-right
    📚Knowledge Basechevron-right
    YouTube Video: Quick start guide using iframe with HTML Code for website
    YouTube video: Quick start guide for the player page in the Restreamer
    YouTube Video: Quick start guide explains how to add and delete a video source
    User Guideschevron-right
    📚Knowledge Basechevron-right
    YouTube Video: Add and delete video sources in 60 seconds
    http://restreamer-url/arrow-up-right
    💾Installingchevron-right
    Manualchevron-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
    /opt/restreamer/data
    <link rel="stylesheet" src="something"/>
    <link rel="stylesheet" src="something"/>
    <link rel="stylesheet" src="something"/>
    <link rel="stylesheet" src="something"/>
    triangle-exclamation

    ATTENTION! Using the GPU with the Raspicam requires increasing the cache memory to 256 MB. >> To the guidearrow-up-right <<

    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

    3. Add gpu_mem=256 right after the line with start_x=1

    4. Replace the line with dtoverlay=vc4-kms-v3d with dtoverlay=vc4-fkms-v3d

    5. Save the file and exit the editor

    6. Reboot the Pi

    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

    User Guideschevron-right
    📚Knowledge Basechevron-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
    User Guideschevron-right
    📚Knowledge Basechevron-right
    1 Open video bar

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

    Fig. 1: The menu item opens the video bar

    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.

    Fig. 2: Create new video source in the video bar.

    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.

    Fig. 4: Open video settings of the active live stream.
    Fig. 5: Delete the video stream with one click.

    hashtag
    Quick Start Guide

    hashtag
    Learn more

    User Guideschevron-right
    YouTube Video: Quick Start Guide Delete and add video sources in datarhei Restreamer
    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.

    Fig 1: Various setting options are available.

    hashtag
    Learn more

    💾Installingchevron-right
    Manualchevron-right
    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

    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
    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

    ⭐Premium Supportchevron-right
    Environment Variableschevron-right
    What are environment variables?chevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right

    Player-Streaming

  • 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 Github issuearrow-up-right 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

    Process detailschevron-right
    Process reportchevron-right
    User Guideschevron-right
    Manualchevron-right

    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

    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

    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

    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

    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.

    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 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.

    hashtag
    Just 4 steps to live stream on Facebook

    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.

    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

    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

    License

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

    Fig. 1: Menu for licensing the live stream with a Creative Commons license

    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.

    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

    Quick start guide: Installing the open-source video streaming server Restreamer for experts.
    Quick start guide: Player config
    Quick start guide: How does the livestream get on the website?
    Quick start guide: Customize video page
    Quick start guide: The wizard helps to create video and audio files.

    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

    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

    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

    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.

    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

    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.

    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.

    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.

    hashtag

    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

    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.

    How do I start a GPU Encoding?chevron-right
    Manualchevron-right
    Quick start guide: Example publication service with YouTube
    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
    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
    hashtag
    Learn more
    Fig. 1: Open the system menu
    Fig. 2: Open the language menu
    Fig. 3: Select language
    User Guideschevron-right
    YouTube Video: Quick start guide for GPU encoding on a Raspberry Pi.
    YouTube Video: Video tutorial
    YouTube: SRT Connection with OBS and datarhei Restreamer to reduce latency
    YouTube Video: Quick start guide system configuration
    YouTube Video: Quick start guide for system configuration in datarhei Restreamer
    Website https://creativecommons.org

    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., ODROIDarrow-up-right or from the manufacturer Pine64arrow-up-right.

    hashtag
    Preparation

    hashtag
    Step 1: Install Docker

    If you are already using Docker, skip this step.

    1. Install the latest Raspberry Pi OS-Imagearrow-up-right on a memory card.

    2. Log in to the Pi and install Docker according to the Debian installation guide for armhf.arrow-up-right

    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: How do I stream a RaspiCam?

    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

    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
    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

    443/tcp

    8181/tcp

    x

    RTMP

    1935/tcp

    1935/tcp

    x

    RTMPS

    1936/tcp

    1936/tcp

    x

    SRT

    6000/udp

    6000/udp

    x

    HTTP

    80/tcp

    8080/tcp

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

    HTTPS

    RS: Give a name to the Publication Service (optional)
  • FB: Copy the stream key on Facebook

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

  • RS: Enter backup server (optional)

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

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

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

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

  • User Guideschevron-right
    📚Knowledge Basechevron-right
    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)

    Microsoft Edge

    Latest 2 versions

    Microsoft Internet Explorer

    Good luck!

    Browser

    Requirements

    Google Chrome

    Latest 3 versions

    Mozilla Firefox

    Latest 3 versions

    Safari

    Latest 2 versions

    📚Knowledge Basechevron-right
    👨‍💻Developerchevron-right
    ⭐Premium Supportchevron-right
    Get DockerDocker Documentationchevron-right
    External URL: Install Docker
    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

    docker pull datarhei/restreamer:latest
    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
    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
    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

    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

    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
    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
    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.

    $ 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
    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 Mac terminal
    CC Licensechevron-right
    User Guideschevron-right
    User Guideschevron-right

    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

    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 and /core/data

    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

    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

    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 and /core/data

    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

    --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 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

    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 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

    YouTube Video: Quick start guide live stream to YouTube with the Restreamer

    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

    Understand different error messages?

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

    • Login failed: Couldn't load API details

    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.

    Get DockerDocker Documentationchevron-right
    Official Docker website docker.com
    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 https://www.mistserver.org/opensourcearrow-up-right

  • Kurento https://www.kurento.orgarrow-up-right

  • Streamhash https://streamhash.comarrow-up-right

  • Clipbucket https://clipbucket.comarrow-up-right

  • FreeSwitch https://freeswitch.comarrow-up-right

  • Nimble Streamer https://wmspanel.com/nimblearrow-up-right

  • Xsplit https://www.xsplit.comarrow-up-right

  • Wirecast https://www.telestream.net/wirecast/arrow-up-right

  • Unreal Media Server http://www.umediaserver.net/umediaserverarrow-up-right

  • NginX with nginx-rtmp-module

  • Owncast https://owncast.onlinearrow-up-right

  • 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
    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
    YouTube video: Quick start guide HLS video source with m3u8
    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

    How can I change the password of the Restreamer?chevron-right
    ⭐Premium Supportchevron-right
    User Guideschevron-right
    📚Knowledge Basechevron-right
    YouTube Video: Quick start guide for USB video device
    YouTube Video: Quick guide for transferring a USB video source.
    YouTube: Quickstart on Raspberry Pi 4 to produce vertical video with filter.
    YouTube Video: Test pattern with virtual video source.
    .
    docker pull datarhei/restreamer:latest
    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.
    .
    docker pull datarhei/restreamer:latest
    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.

    [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
    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

    -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

    docker pull datarhei/restreamer:latest
    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 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 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 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
    User Guideschevron-right
    📚Knowledge Basechevron-right
    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
    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
    YouTube Video: Quick Start Guide Activate HTTPS with Let's Encrypt for Free
    YouTube Video: Quick guide for the transfer of the Raspberry Pi camera module.
    YouTube video: Using Raspicam as video source for live streaming
    Software
  • Protocol

  • Logo
  • Statistics

  • Playback

  • System settings
    Publication services
    Multi-video source
    Stream settings
    General
    Sources Video Settings
    Video Player Settings
    System monitoring
    Process report
    Audio Settings
    Processing and Control
    Meta information
    License (CC)
    Logo
    https://support.google.com/youtube/answer/2907883support.google.comchevron-right
    YouTube Video: Quick guide for restreaming via RTMP server with OBS
    Logo
    Podmanpodman.iochevron-right
    External URL: Install podman

    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

    Let's Encryptletsencrypt.orgchevron-right
    External URL: letsencrypt.org
    Go live on Facebook using streaming software | Facebook Help Centerwww.facebook.comchevron-right
    External resource: Facebook
    Deed - Attribution-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NonCommercial 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NonCommercial-NoDerivatives 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NoDerivatives 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-NonCommercial-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    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
    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: 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 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 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 Environment variables on GitHub.
    Port Checker - Check Open Ports Onlineportchecker.cochevron-right
    External link: Check public ports
    Logo
    Logo
    Logo
    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
    	}
    }
    YouTube Video: Add video source of IP-Cams with a few clicks
    Deed - Attribution-NonCommercial 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-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Deed - Attribution-ShareAlike 4.0 International - Creative Commonscreativecommons.orgchevron-right
    Logo
    Logo
    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
    https://creativecommons.org/licenses/arrow-up-right

    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.

    https://creativecommons.org/licenses/zero/1.0creativecommons.orgchevron-right
    Logo
    Logo

    string

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

    share

    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.

    name

    string

    Name of the channel.

    available

    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.

    id

    string

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

    channelid

    string

    UUID of the channel.

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

    title

    {{#ifEquals player "videojs"}}
       ...
    {{/ifEquals}}
    {{#ifnoteq channel_license "none"}}
       ...
    {{/ifnoteq}}
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    YouTube: Activate the RTMP server on the datarhei Restreamer
    Logo