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.
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.
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.
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.
The Main screen
After successful login, the main screen is a central point in the system and the starting point for all other settings.
Without an active video source, the Video Wizard appears.
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!
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.
Standardports HTTP: 80 ; HTTPS: 443
Port forwarding (80>8080, 443>8181) of the public ports is necessary for full functionality.
Use a secure and unique password.
2. Add video source
The wizard helps to activate a video source.
Audio
Optionally, the use of sound is possible via the configurator.
AAC and Mp3 formats are supported.
4. Integrate video player on the website
Becoming a live streaming superhero with the Restreamer is a pretty simple process:
Port forwarding is necessary for the audience to see the live stream.
5. Optional: Customize video player
The video player is ready to use. It is straightforward to customize the color, logo, and link.
6. Optional: Customize video page
The video page is active immediately and is provided via localhost.
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?
🧙Tip: You can create, start and run as many services as you like.
> CHECK
If the audio source is not accepted, the error message can be displayed directly. By clicking on: "View details of the check".
Learn more
Official Recommendations
Official production deployment recommendations
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.
These settings are only visible in expert mode.
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
Video tutorial
Learn more
System settings
You can edit system settings in this area.
Overview
System settings in 3 steps
General stream settings
Edit the audio and video sources, determine their processing, add metadata, and define the desired license.
1 General
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.
1 Notes
2 Imprint
How to change the RTMP port
Change the RTMP standard port 1935 to any other.
Default command
This is the default command to start the Docker container with your Restreamer on port 1935.
How do I start a GPU Encoding?
How GPU encoding from the Raspberry Pi in the datarhei Restreamer significantly reduces CPU load.
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.
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.
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.
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
YouTubeNewsletter
Learn more
How can I change the password of the Restreamer?
You could always change the username and password for the datarhei Restreamer.
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.
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.
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.
TwitterYouTubeNewsletter
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.
Learn more
How can I use the landing page?
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.
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.
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.
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.
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.
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.
The datarhei Restreamer's cloud uses our official Docker images, making this installation method the most tested.
Docker 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.
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.
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 .
Update v2 to > v2.x
The current version of the datarhei Restreamer is executed via the same command as during the new installation.
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.
Old Version v0.6.8
Learn more
Network
Configure basics for a functioning network.
1 Network settings
Fig. 1: The menu for the network settings.
Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.
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
3 HTTP Address
Address on which HTTP requests should listen.
The default value is Port: 8080
4 HTTPS Address
Address on which HTTPS requests should listen.
The default value is Port: 8181
HTTPS (SSL/TLS)
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.
Bandwidth control
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
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
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.
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.
2 Video source selection
Test pattern
Test pattern extended
RGB test pattern
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.
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.
5 Check
After a successful check, more details and the encoding settings can be shown.
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.
Prerequisite
You have already started your Docker container with the mount path if you followed the instructions.
-v /opt/restreamer/data:/core/data
The /core/data folder represents the root directory for the Restreamer, accessible via the URL:
Step 1
Make website (index.html) accessible
Copy your website files into the mount path:
Step 2
Now the page is active.
The address is http://restreamer-url/
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
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
Learn more
Authorization
Check the credentials for the administrator and in the expert mode for IP addresses.
1 Authorization settings
Fig. 1: The menu for authorization
2 Enable login/JWT authorization
Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.
If access data are activated via ENV, a change via the graphical interface in the Restreamer is not possible.
It is strongly recommended to enable authorization to prevent unauthorized access to the instance.
3 Username
Here you can store the name for the login.
4 Password
Password for authorization on the system.
Learn more
Disk space
You can control the saving of videos in this section.
1 Storage settings
Fig. 1: The menu for the memory settings
Settings for the memory space are only visible in expert mode.
Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.
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.
3 Username
4 Password
5 Maximum file size
6 Remove old files
7 Hard disk
8 Hard disk cache
9 Maximum file size
10 Cache timeout
11 Maximum file size
12 Cache Type
Learn more
SRT
Secure Reliable Transport (SRT) is an open-source video transport protocol that utilises the UDP transport protocol.
1 SRT settings
Fig. 1: The menu for the SRT settings
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.
2 SRT server
The ✅ checkmark activates the SRT server.
3 Port
Port settings for the SRT server.
The default value for the listening address is port: 6000
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.
5 Passphrase
This setting encrypts the stream and is optional.
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
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
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.
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
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.
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.
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.
List of Docker services for deploying a Docker image
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.
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.
Configuration menu
Edit the individual elements and extend them with HTML code elements.
Fig. 1: Configuration menu of the publication website.
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.
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.
If you have forgotten the login name or password, you can look into the config.json.
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.
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.
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.
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.
We explain how to connect the Raspberry Pi camera module to a datarhei Restreamer.
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.
Video player configuration
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.
Create YouTube Live Stream
Multi Video source
Create, manage and delete additional video sources.
Add more video sources
Activate additional video sources via the interface in the browser in just a few steps.
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.
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.
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.
1 RTMP settings
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.
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.
Network source
Use audio signal with the video channel from the network.
Audio source selection
2 Source
Process details
1 Banner
datarhei Restreamer uses FFmpeg for streaming and stores log files for each video process for diagnostic purposes.
How do I connect a USB camera to the Restreamer?
We explain how to connect a USB video device to a datarhei Restreamer.
USB device as a video source in datarhei Restreamer
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.
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.
RGB or web colors may be entered.
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.
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.
1 General system settings
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.
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.
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.
The problems
Most problems occur in one of these three sections.
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.
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.
Audio source selection
2 Source
In order to have these devices available in the Restreamer Docker container, you have to start the container with the --privileged option.
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:
Open /boot/config.txt in an editor, e.g. sudo nano /boot/config.txt
Set hdmi_force_hotplug=1
Set hdmi_group=1
Set hdmi_mode=4 (for 1280x720) or hdmi_mode=16 (for 1920x1080)
Set hdmi_pixel_encoding=2
At the bottom in the [pi4] section, set dtoverlay=vc4-fkms-v3d
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).
The default value for the listening address is port: 1935
5 Port RTMPS
Port settings for the RTMP/S server.
The default value for the listening address is port: 1936
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).
7 Token
RTMP token for publishing and playback. The token is the value of the URL query parameter 'token'.
Check the video source with the VLC player. 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.
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.
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.
Check the video source. IP cam, encoder, and other possible video sources.
Check LAN. Router, IP settings, firewall, port forwarding, and network settings in question.
Check WAN and Internet connection
Check software
In the last step, check the datarhei Restreamer settings.
Use the wizard to create the live stream again.
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.
The expert mode extends the configuration possibilities.
2 General
Node-ID
The node ID can be used to uniquely identify the running datarhei core.
Name
The name makes it easier for people to identify the core. In addition, it is generated automatically or can be customized.
3 Update
Enable automatic check for updates.
Once a Core is connected to the service, the service will notify you of updates.
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.
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.
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)
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.
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.
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.
6 Playback
Select the options for the live stream.
Autoplay
Autostart video automatically starts the live stream.
Mute
Turns off the audio channel.
Chromecast
Start broadcasting with Chromecast.
AirPlay
Start broadcasting with Apple AirPlay devices.
Learn more
Fig. 1: Open configuration menu for player settings
ATTENTION! Using the GPU with the Raspicam requires increasing the cache memory to 256 MB. >> To the guide <<
If unexpected behavior occurs, rebooting the Raspberry Pi might help.
If unexpected behavior occurs, restarting the datarhei Restreamer might help.
Note the video where we explain encoding over the GPU from the Raspberry Pi to offload the CPU from the Raspberry Pi.
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.
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.
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:
Open /boot/config.txt in an editor, e.g. sudo nano /boot/config.txt
Replace the line camera_auto_detect=1 with start_x=1
Add gpu_mem=256 right after the line with start_x=1
Replace the line with dtoverlay=vc4-kms-v3d with dtoverlay=vc4-fkms-v3d
Save the file and exit the editor
Reboot the Pi
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.
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.
Once connected to YouTube Live, the bitrate of the live stream will be displayed in the main Restreamer window.
Click Stop to pause the stream.
Quick Start Guide
How to start a livestream to YouTube using the Publication Service with the free open source video software datarhei Restreamer.
YouTube Studio
A helpful guide for live streaming is on YouTube. The guide helps to find the streaming ID for the restreamer.
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.
The icon opens an additional layer at the bottom of the screen.
Fig. 1: The menu item opens the video bar
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.
3 Active video sources
Active video signals appear in the video bar at the bottom of the screen.
4 Close
Collapses the video bar.
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.
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.
If unexpected behavior occurs, a reboot of the host system will help.
If unexpected behavior occurs, restarting the datarhei Restreamer will help.
The following standard troubleshooting procedure is proven to find a quick solution before contacting us.
Step 1: Test with virtual source
As a first procedure, check whether the error also occurs with a test transmission
Step 2: Check log files
Look into the process details and find the error to fix it.
Step 3: Open issue
If steps 1 and 2 were unsuccessful, create a Github issue and attach the process report.
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.
Install and run datarhei Restreamer on Mac with Intel or Silicon chip in an Docker container.
After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.
Requirements
A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.
Preparation
Step 1: Install Docker
Download, install and run . Follow the installation instructions. If you are already using Docker, skip this step.
Installation
Step 2: Start the Restreamer
Without hardware support
Start with hardware support for Nvidia CUDA
Start with hardware support for Intel VAAPI
For security reasons, start the Restreamer only with --privileged if you need hardware support.
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
Step 4. First login
When you log in for the first time in your Restreamer, you have to enter your credentials.
Important: The Environments
Environments are global settings for the Restreamer. We recommend considering some environments at the startup.
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/dataThe 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.
List with all available environment variables
Learn more
How does port forwarding work for the Restreamer?
So that the Restreamer can be reached via the Internet.
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.
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
RTMPS can be activated in addition to HTTPS!
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.
Check port forwarding
Various free web services are available on the Internet for testing to check whether the forwarding is active without errors.
Learn more
Encoding compatibility list
These encoders work well with the Restreamer.
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.
Raspberry Pi (Rasbian Bullseye, 32/64 Bit)
Video processing with a maximum of 1920x1080 pixels.
H.264 V4L2-M2M
Video4Linux (V4L2) is a collection of device drivers and an API for supporting real-time video capture on Linux systems.
Rasperry Pi (Rasbian Buster, Userland, 32 Bit)
Video processing with a maximum of 1920x1080 pixels.
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.
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.
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.
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.
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.
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.
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.
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.
Just 4 steps to live stream on Facebook
Step by step to your live stream on Facebook
RS = Clicks in RestreamerFB = Clicks on Facebook
RS: Go to Publication Service in your Restreamer.
RS: Click on Facebook
RS: Click on Settings.
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.
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.
Learn more
Minimum Requirements
Once Docker runs on the host, there is an excellent chance to use the Restreamer.
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.
Restreamer via Podman
Podman is a free and recommended alternative for Docker.
Web Browsers
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.
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
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.
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.
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 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.
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.
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.
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.
After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.
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.
After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.
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.
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.
Network source
Send and receive video signals from a network on the LAN or WAN.
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.
After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.
Requirements
Migration
Migration notes for version breaks.
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.
1 Playback settings
Settings for playback are only visible in expert mode.
Processing and Control
General characteristics of the process control of the livestream.
HLS Output
HTTP live streaming (HLS) is an industry-standard video streaming protocol.
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.
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.
Anyone can join in! If you want to help us with the translation, you can upload your language files on GitHub.
Quick start guide: Example publication service with YouTube
Locked settings that have been set with environment variables at startup are marked with ENV. Disable or adjust environment variables unlocks the settings.
Security
2 Allow all referer
Enable or disable Allow access from all referrers.
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.
Syntax: One address per line.
The default value is allow all: *
Accept all accesses.
4 HLS statistics for /memfs.
The audience count is displayed when the hook is active.
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.
Syntax: One IP range per line.
Record all sessions: Leave field empty
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.
The default value is: 30 seconds
7 Persist session history
Session data is stored on the hard disk of the core host system.
Selection of the storage location in the working memory or on the hard disk.
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.
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.
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.
6 Master playlist
Master Playlist option (default is active). This Increases player compatibility.
7 Autoclean
Automatic cleanup of all media data after the end of the process.
8 RTMP Output
Publish the stream as an RTMP output.
9 SRT Output
Publish the stream as an SRT output.
10 Snapshot
A preview image is generated from the live stream.
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.
Process
Behavior rule for the running video process in case of a malfunction.
12 Reconnect
The checkbox is used to decide whether the stream should reconnect or not.
13 Reconnect
Interval in seconds until the connection starts again.
14 Timeout
Seconds until a hanging process is terminated and exited as Faulty.
Environments are global settings for the Restreamer. We recommend considering some environments at the startup.
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/dataThe 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.
Download, install and run Docker Desktop. Follow the installation instructions. Start Restreamer container in Docker Desktop. If you already installed Docker Desktop jump to next step.
Step 2: Pull the container with the Restreamer
Open the Terminal and load the latest Restreamer cotainer from Docker Hub. Use the command:
Fig 1. Docker pull command in macOS terminal
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
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
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.
Step 8. First login
When you log in for the first time in your Restreamer, you have to enter your credentials.
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!
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/dataThe 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.
The wizard can be started again in the first step or directly in the audio settings in the live stream settings.
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
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.
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
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.
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.
Enter this address in the sending device from the video signal.
5. CHECK
Pressing the button verifies the reception of the video signal.
If the stream is not accepted, the error message can be displayed directly. By clicking on: "View details of the review".
2 Fetch in push mode
Fig. 2: Set up video source in push mode.
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.
4 Login credentials
If required, the access data of the video source can be entered here.
5 Advanced settings in push mode
HTTP and HTTPS
Read input at native speed
Force input frame rate
User-agent
General
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.
> Flags
Default value is: genpts
discardcorrput -> Discard damaged frames
fastseek -> Enable fast but inaccurate searches for some formats.
genpts -> Generate the timestamp of the video
igndts -> Ignore decoding of the timestamp
ignidx -> Ignore index
nobuffer -> Reduce latency caused by optional buffering
nofillin -> Do not fill in missing values that can be calculated exactly
noparse -> Disable AVParsers, that needs filling too
sortdts -> Try to interleave the output packets by decoding the timestamp
6. CHECK
After starting the test process, the active video stream can be selected.
"Show probe details" shows the feedback from the system.
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.
Afterwards, you can directly switch to the audio settings.
A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.
Preparation
Step 1: Install Docker
Download, install and run Docker Desktop. Follow the installation instructions. If you are already using Docker, skip this step.
Installation
Step 2: Start the Restreamer
Without hardware support
Start with hardware support for Nvidia CUDA
Start with hardware support for Intel VAAPI
For security reasons, start the Restreamer only with --privileged if you need hardware support.
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
Important: The Environments
Environments are global settings for the Restreamer. We recommend considering some environments at the startup.
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/dataThe 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.
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.)
Restoring the processes created with the new version >= 2.4.0, is impossible.
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.
Start Restreamer v0.6.8 and start streaming from the video source.
Stop Restreamer v0.6.8 by stopping the Docker container, e.g. docker kill restreamer and then docker rm restreamer.
Pull the latest Restreamer image, e.g. docker pull datarhei/restreamer:latest.
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.
Start Restreamer. Now the settings from v0.6.8 are imported to v2.x
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.
Review your Docker command line
In case you are using any environment variables (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.
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.
Specify in the Publication services where the stream should be pulled over.
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.)
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.
SRT
As for RTMP. Latency: <1 sec.
An active user account on the external video streaming service is a prerequisite for using Publication Services.
Instructions for the settings of the target services can be found on the target platform. Keywords for research are: "External RTMP" or " External HLS".
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.
Video tutorial
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].
Social Media
YouTube
Facebook
Twitter
CDN
livespotting.com — The #1 webcam platform for webcams in Germany
restream.io — Multi-Channel Platform
be.live
Software
WOWZA
Icecast
Red5
Protocol
Image2
RTSP
RTMP
Troubleshooting
If connection problems occur, error diagnostics can be performed via the error logs of the process details and the process report.
Learn more
Mac
Install and run Restreamer on Mac with Docker Desktop.
After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.
Preparation
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.
Step 2: Pull the container with the Restreamer
Open the Terminal and load the cotainer from Docker Hub. Use the command:
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.
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
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
Step 8. First login
When you log in for the first time in your Restreamer, you have to enter your credentials.
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!
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/dataThe 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.
List with all available environment variables
Learn more
Docker Desktop
Install and run Restreamer on Microsoft Windows with Docker Desktop.
After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.
Preparation
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.
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.
Step 3: Docker Desktop settings
Go to the Docker Desktop settings to enable the Linux distro integration.
After the steps, we recommend rebooting the computer.
Start Restreamer container in Docker Desktop
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:
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.
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
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
Step 8. First login
When you log in for the first time in your Restreamer, you have to enter your credentials.
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!
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/dataThe 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.
List with all available environment variables
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."
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!
Add a video source via RTSP
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.
Example of the RTSP syntax of the manufacturer HIKVISION
[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.
Example 1
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/1012 Substream: rtsp://admin:passwort@192.168.1.64:554/Streaming/Channels/1023Dritter Stream: rtsp://admin:passwort@192.168.1.64:554
Example 2
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/1012 Substream: rtsp://admin:passwort@181.112.101.124:554/Streaming/Channels/102
3Dritter Stream: rtsp://admin:passwort@181.112.101.124:554/Streaming/Channels/103
Don't forget to forward active ports in routers and firewalls to be publicly available over the Internet.
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.
Learn more
Terminal
Install and run datarhei Restreamer on Mac with Intel or Silicon chip in an Docker container.
After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.
Requirements
A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.
Preparation
Step 1: Install Docker
Download, install and run . Follow the installation instructions. If you are already using Docker, skip this step.
Installation Windows PowerShell
In the PowerShell, a single command is required to download and start the Restreamer.
Step 2: Start the Restreamer
Without hardware support
Start with hardware support for Nvidia CUDA
Start with hardware support for Intel VAAPI
For security reasons, start the Restreamer only with --privileged if you need hardware support.
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
Step 4. First login
When you log in for the first time in your Restreamer, you have to enter your credentials.
Important: The Environments
Environments are global settings for the Restreamer. We recommend considering some environments at the startup.
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/dataThe 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.
List with all available environment variables
Learn more
How can I receive an RTMP stream?
Use the internal RTMP server as a video source.
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.
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.
After installation, control the Restreamer in any browser using the IP and port of the device with the path /ui.
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.
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.
Download, install and run Docker Desktop. Follow the installation instructions. If you are already using Docker Desktop and installed WSL 2, skip to Step 4.
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 Microsoft and Docker 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
Step 3: Docker Desktop settings
Go to the Docker Desktop settings to enable the Linux distro integration.
After the steps, we recommend rebooting the computer.
Start Restreamer container in Docker Desktop
Step 4: Pull the container with the Restreamer
Open the command-line PowerShell for Windows and load the latest Restreamer cotainer from Docker Hub. Use the command:
Fig 4. Docker pull command in PowerShell
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
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
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.
Step 8. First login
When you log in for the first time in your Restreamer, you have to enter your credentials.
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!
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/dataThe 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.
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.
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”:
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.
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”:
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.
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 .
Please note that you don't need to enable HTTPS in Restreamer, because Caddy is already handling the SSL connection.
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/) to control the output based on the available expressions.
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.
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:
ifEquals
This helper lets you check if two values are equal, e.g.
ifnoteq
This helper lets you check if two values are not equal, e.g.