How To Set Up a Video Streaming Server using Nginx-RTMP on Ubuntu 20.04 | DigitalOcean (2023)


There are many use cases for streaming video. Service providers such as Twitch are very popular for handling the web discovery and community management aspects of streaming, and free software such as OBS Studio is widely used for combining video overlays from multiple different stream sources in real time. While these platforms are very powerful, in some cases you may want to be able to host a stream that does not rely on other service providers.

In this tutorial, you will learn how to configure the Nginx web server to host an independent RTMP video stream that can be linked and viewed in different applications. RTMP, the Real-Time Messaging Protocol, defines the fundamentals of most internet video streaming. You will also learn how to host HLS and DASH streams that support more modern platforms using the same technology.


To complete this guide, you will need:

  • An Ubuntu 20.04 server and a non-root user with sudo privileges. You can learn more about how to set up a user with these privileges in our Initial Server Setup with Ubuntu 20.04 guide.
  • Nginx installed, following How To Install Nginx on Ubuntu 20.04.

This tutorial will use the placeholder domain name your_domain for URLs and hostnames. Substitute this with your own domain name or IP address as you work through the tutorial.

Step 1 — Installing and Configuring Nginx-RTMP

Most modern streaming tools support the RTMP protocol, which defines the basic parameters of an internet video stream. The Nginx web server includes a module that allows you to provide an RTMP stream with minimal configuration from a dedicated URL, just like it provides HTTP access to web pages by default. The Nginx RTMP module isn’t included automatically with Nginx, but on Ubuntu 20.04 and most other Linux distributions you can install it as an additional package.

Begin by running the following commands as a non-root user to update your package listings and install the Nginx module:

  1. sudo apt update
  2. sudo apt install libnginx-mod-rtmp

Installing the module won’t automatically start providing a stream. You’ll need to add a configuration block to your Nginx configuration file that defines where and how the stream will be available.

Using nano or your favorite text editor, open Nginx’s main configuration file, /etc/nginx/nginx.conf, and add this configuration block to the end of the file:

  1. sudo nano /etc/nginx/nginx.conf


. . .rtmp { server { listen 1935; chunk_size 4096; allow publish; deny publish all; application live { live on; record off; } }}
  • listen 1935 means that RTMP will be listening for connections on port 1935, which is standard.
  • chunk_size 4096 means that RTMP will be sending data in 4KB blocks, which is also standard.
  • allow publish and deny publish all mean that the server will only allow video to be published from the same server, to avoid any other users pushing their own streams.
  • application live defines an application block that will be available at the /live URL path.
  • live on enables live mode so that multiple users can connect to your stream concurrently, a baseline assumption of video streaming.
  • record off disables Nginx-RTMP’s recording functionality, so that all streams are not separately saved to disk by default.

Save and close the file. If you are using nano, press Ctrl+X, then when prompted, Y and Enter.

This provides the beginning of your RTMP configuration. By default, it listens on port 1935, which means you’ll need to open that port in your firewall. If you configured ufw as part of your initial server setup run the following command.

  1. sudo ufw allow 1935/tcp

Now you can reload Nginx with your changes:

(Video) install Nginx RTMP Live Streaming Server on Ubuntu 20.04

  1. sudo systemctl reload nginx.service

You should now have a working RTMP server. In the next section, we’ll cover streaming video to your RTMP server from both local and remote sources.

Step 2 — Sending Video to Your RTMP Server

There are multiple ways to send video to your RTMP server. One option is to use ffmpeg, a popular command line audio-video utility, to play a video file directly on your server. If you don’t have a video file already on the server, you can download one using youtube-dl, a command line tool for capturing video from streaming platforms like YouTube. In order to use youtube-dl, you’ll need an up to date Python installation on your server as well.

First, install Python and its package manager, pip:

  1. sudo apt install python3-pip

Next, use pip to install youtube-dl:

  1. sudo pip install youtube-dl

Now you can use youtube-dl to download a video from YouTube. If you don’t have one in mind, try this video, introducing DigitalOcean’s App Platform:

  1. youtube-dl

You’ll see some output as youtube-dl combines the video and audio streams it’s downloading back into a single file – this is normal.


[youtube] iom_nhYQIYk: Downloading webpageWARNING: Requested formats are incompatible for merge and will be merged into mkv.[download] Destination: Introducing App Platform by DigitalOcean-iom_nhYQIYk.f137.mp4[download] 100% of 32.82MiB in 08:40[download] Destination: Introducing App Platform by DigitalOcean-iom_nhYQIYk.f251.webm[download] 100% of 1.94MiB in 00:38[ffmpeg] Merging formats into "Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv"Deleting original file Introducing App Platform by DigitalOcean-iom_nhYQIYk.f137.mp4 (pass -k to keep)Deleting original file Introducing App Platform by DigitalOcean-iom_nhYQIYk.f251.webm (pass -k to keep)

You should now have a video file in your current directory with a title like Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv. In order to stream it, you’ll want to install ffmpeg:

  1. sudo apt install ffmpeg

And use ffmpeg to send it to your RTMP server:

  1. ffmpeg -re -i "Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://localhost/live/stream

This ffmpeg command is doing a few things to prepare the video for a streaming-friendly format. This isn’t an ffmpeg tutorial, so you don’t need to examine it too closely, but you can understand the various options as follows:

  • -re specifies that input will be read at its native framerate.
  • -i "Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv" specifies the path to our input file.
  • -c:v is set to copy, meaning that you’re copying over the video format you got from YouTube natively.
  • -c:a has other parameters, namely aac -ar 44100 -ac 1, because you need to resample the audio to an RTMP-friendly format. aac is a widely supported audio codec, 44100 hz is a common frequency, and -ac 1 specifies the first version of the AAC spec for compatibility purposes.
  • -f flv wraps the video in an flv format container for maximum compatibility with RTMP.

The video is sent to rtmp://localhost/live/stream because you defined the live configuration block in Step 1, and stream is an arbitrarily chosen URL for this video.

Note: You can learn more about ffmpeg options from ffmprovisr, a community-maintained catalog of ffmpeg command examples, or refer to the official documentation.

(Video) Create Own RTMP Server with OBS and Nginx-RTMP in Ubuntu and test with client on VLC

While ffmpeg is streaming the video, it will print timecodes:


frame= 127 fps= 25 q=-1.0 size= 405kB time=00:00:05.00 bitrate= 662.2kbits/s speed=frame= 140 fps= 25 q=-1.0 size= 628kB time=00:00:05.52 bitrate= 931.0kbits/s speed=frame= 153 fps= 25 q=-1.0 size= 866kB time=00:00:06.04 bitrate=1173.1kbits/s speed=

This is standard ffmpeg output. If you were converting video to a different format, these might be helpful in order to understand how efficiently the video is being resampled, but in this case, you just want to see that it’s being played back consistently. Using this sample video, you should get exact fps= 25 increments.

While ffmpeg is running, you can connect to your RTMP stream from a video player. If you have VLC, mpv, or another media player installed locally, you should be able to view your stream by opening the URL rtmp://your_domain/live/stream in your media player. Your stream will terminate after ffmpeg has finished playing the video. If you want it to keep looping indefinitely, you can add -stream_loop -1 to the beginning of your ffmpeg command.

Note: You can also stream directly to, for example, Facebook Live using ffmpeg without needing to use Nginx-RTMP at all by replacing rtmp://localhost/live/stream in your ffmpeg command with rtmps:// YouTube uses URLs like rtmp:// Other streaming providers that can consume RTMP streams should behave similarly.

Now that you’ve learned to stream static video sources from the command line, you’ll learn how to stream video from dynamic sources using OBS on a desktop.

Step 3 — Streaming Video to Your Server via OBS (Optional)

Streaming via ffmpeg is convenient when you have a prepared video that you want to play back, but live streaming can be much more dynamic. The most popular software for live streaming is OBS, or Open Broadcaster Software – it is free, open source, and very powerful.

OBS is a desktop application, and will connect to your server from your local computer.

After installing OBS, configuring it means customizing which of your desktop windows and audio sources you want to add to your stream, and then adding credentials for a streaming service. This tutorial will not be covering your streaming configuration, as it is down to preference, and by default, you can have a working demo by just streaming your entire desktop. In order to set your streaming service credentials, open OBS’ settings menu, navigate to the Stream option and input the following options:

Streaming Service: CustomServer: rtmp://your_domain/livePlay Path/Stream Key: obs_stream

obs_stream is an arbitrarily chosen path – in this case, your video would be available at rtmp://your_domain/live/obs_stream. You do not need to enable authentication, but you do need to add an additional entry to the IP whitelist that you configured in Step 1.

Back on the server, open Nginx’s main configuration file, /etc/nginx/nginx.conf, and add an additional allow publish entry for your local IP address. If you don’t know your local IP address, it’s best to just go to a site like What’s my IP which can tell you where you accessed it from:

  1. sudo nano /etc/nginx/nginx.conf


(Video) How To create a Video Streaming Server using Nginx-RTMP

. . . allow publish; allow publish your_local_ip_address; deny publish all;. . .

Save and close the file, then reload Nginx:

  1. sudo systemctl reload nginx.service

You should now be able to close OBS’ settings menu and click Start Streaming from the main interface! Try viewing your stream in a media player as before. Now that you’ve seen the fundamentals of streaming video in action, you can add a few other features to your server to make it more production-ready.

Step 4 — Adding Monitoring to Your Configuration (Optional)

Now that you have Nginx configured to stream video using the Nginx-RTMP module, a common next step is to enable the RTMP statistics page. Rather than adding more and more configuration details to your main nginx.conf file, Nginx allows you to add per-site configurations to individual files in a subdirectory called sites-available/. In this case, you’ll create one called rtmp:

  1. sudo nano /etc/nginx/sites-available/rtmp

Add the following contents:


server { listen 8080; server_name localhost; # rtmp stat location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /var/www/html/rtmp; } # rtmp control location /control { rtmp_control all; }}

Save and close the file. The stat.xsl file from this configuration block is used to style and display an RTMP statistics page in your browser. It is provided by the libnginx-mod-rtmp library that you installed earlier, but it comes zipped up by default, so you will need to unzip it and put it in the /var/www/html/rtmp directory to match the above configuration. Note that you can find additional information about any of these options in the Nginx-RTMP documentation.

Create the /var/www/html/rtmp directory, and then uncompress the stat.xsl.gz file with the following commands:

  1. sudo mkdir /var/www/html/rtmp
  2. sudo gunzip -c /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl.gz > /var/www/html/rtmp/stat.xsl

Finally, to access the statistics page that you added, you will need to open another port in your firewall. Specifically, the listen directive is configured with port 8080, so you will need to add a rule to access Nginx on that port. However, you probably don’t want others to be able to access your stats page, so it’s best only to allow it for your own IP address. Run the following command:

  1. sudo ufw allow from your_ip_address to any port http-alt

Next, you’ll need to activate this new configuration. Nginx’s convention is to create symbolic links (like shortcuts) from files in sites-available/ to another folder called sites-enabled/ as you decide to enable or disable them. Using full paths for clarity, make that link:

  1. sudo ln -s /etc/nginx/sites-available/rtmp /etc/nginx/sites-enabled/rtmp

Now you can reload Nginx again to process your changes:

  1. sudo systemctl reload nginx.service

You should now be able to go to http://your_domain:8080/stat in a browser to see the RTMP statistics page. Visit and refresh the page while streaming video and watch as the stream statistics change.

You’ve now seen how to monitor your video stream and push it to third party providers. In the final section, you’ll learn how to provide it directly in a browser without the use of third party streaming platforms or standalone media player apps.

(Video) RTMP local server with nginx Linux Ubuntu

Step 5 — Creating Modern Streams for Browsers (Optional)

As a final step, you may want to add support for newer streaming protocols so that users can stream video from your server using a web browser directly. There are two protocols that you can use to create HTTP-based video streams: Apple’s HLS and MPEG DASH. They both have advantages and disadvantages, so you will probably want to support both.

The Nginx-RTMP module supports both standards. To add HLS and DASH support to your server, you will need to modify the rtmp block in your nginx.conf file. Open /etc/nginx/nginx.conf using nano or your preferred editor, then add the following highlighted directives:

  1. sudo nano /etc/nginx/nginx.conf


. . .rtmp { server {. . . application live { live on; record off; hls on; hls_path /var/www/html/stream/hls; hls_fragment 3; hls_playlist_length 60; dash on; dash_path /var/www/html/stream/dash; } }}. . .

Save and close the file. Next, add this to the bottom of your sites-available/rtmp:

  1. sudo nano /etc/nginx/sites-available/rtmp


. . .server { listen 8088; location / { add_header Access-Control-Allow-Origin *; root /var/www/html/stream; }}types { application/dash+xml mpd;}

Note: The Access-Control-Allow-Origin * header enables CORS, or Cross-Origin Resource Sharing, which is disabled by default. This communicates to any web browsers accessing data from your server that the server may load resources from other ports or domains. CORS is needed for maximum compatibility with HLS and DASH clients, and a common configuration toggle in many other web deployments.

Save and close the file. Note that you’re using port 8088 here, which is another arbitrary choice for this tutorial to avoid conflicting with any services you may be running on port 80 or 443. You’ll want to open that port in your firewall for now too:

  1. sudo ufw allow 8088/tcp

Finally, create a stream directory in your web root to match the configuration block, so that Nginx can generate the necessary files for HLS and DASH:

  1. sudo mkdir /var/www/html/stream

Reload Nginx again:

  1. sudo systemctl reload nginx

You should now have an HLS stream available at http://your_domain:8088/hls/stream.m3u8 and a DASH stream available at http://your_domain:8088/dash/stream.mpd. These endpoints will generate any necessary metadata on top of your RTMP video feed in order to support modern APIs.


The configuration options that you used in this tutorial are all documented in the Nginx RTMP Wiki page. Nginx modules typically share common syntax and expose a very large set of configuration options, and you can review their documentation to change any of your settings from here.

Nearly all internet video streaming is implemented on top of RTMP, HLS, and DASH, and by using the approach that you have explored in this tutorial, you can provide your stream via other broadcasting services, or expose it any other way you choose. Next, you could look into configuring Nginx as a reverse proxy in order to make some of these different video endpoints available as subdomains.

(Video) Prt1. Create an adaptive bit-rate HLS live-stream server with Nginx/RTMP/Ffmpeg on Ubuntu20.04 (2021


How to setup a nginx RTMP server for streaming? ›

How to Set Up a Video Streaming Server using Nginx-RTMP on Ubuntu 22.04
  1. Requirements.
  2. Install Nginx Web Server.
  3. Install and Configure Nginx-RTMP.
  4. Send Video to RTMP Server.
  5. Stream Video to VLC Player.
  6. Configure RTMP Statistics for Monitoring.
  7. Access RTMP Stat Page.
Jan 13, 2023

How do I setup an RTMP server for streaming? ›

Configuring Your RTMP Encoder in 6 Steps
  1. Connect Your Video Sources. Setting up your video-capturing equipment is an important step in broadcasting. ...
  2. Create a New Live Channel and Connect Your OVP. ...
  3. Select Video and Audio Encoding Options. ...
  4. Get an Embed Code. ...
  5. Conduct a Test Stream. ...
  6. Start Streaming.
Jan 3, 2023

How to setup RTMP server for OBS streaming? ›

Go to Agenda & Speakers. Create a Session. On Session Details, Select Accelevents RTMP as Stream Provider.
On your OBS Account:
  1. Click Settings > Stream.
  2. On the Service field, select the option Custom.
  3. Paste the Streaming Key to "Stream Key" field.
  4. Click OK to save your changes.
  5. Click Start Streaming to start your broadcast.

Can OBS act as an RTMP server? ›

OBS supports RTMP streaming, which allows users to send their video and audio to a media server. To use RTMP with OBS, you'll need to specify the URL of the RTMP server and any authentication details or other settings that may be required.

Can NGINX stream video? ›

Most modern streaming tools support the RTMP protocol, which defines the basic parameters of an internet video stream. The Nginx web server includes a module that allows you to provide an RTMP stream with minimal configuration from a dedicated URL, just like it provides HTTP access to web pages by default.

Is RTMP good for streaming? ›

RTMP is better for live streaming, while RTSP is better for on-demand streaming. RTMP has lower latency, while RTSP can provide higher-quality video. RTMP requires a Flash Media Server, while RTSP can work with any media server.

How to install nginx RTMP module in ubuntu? ›

  1. update. sudo apt-get update sudo apt-get upgrade.
  2. install nginx. sudo apt-get install nginx -y sudo apt-get install libnginx-mod-rtmp -y.
  3. Edit nginx. conf. ...
  4. Add to the end of nginx config. ...
  5. restart nginx. ...
  6. Test Setup. ...
  7. Stunnel. ...
  8. Edit stunnel configuration.

How do I make a streaming video server? ›

How to Build a Live Streaming Server
  1. Get Clean on Requirements. Before you learn how to build a live streaming server, it's important to know what you want out of your live streaming server.
  2. Choose an Open-Source Project. ...
  3. Download OBS Studio. ...
  4. Create a CDN. ...
  5. Latency. ...
  6. Lack of Redundancy. ...
  7. Limits to Scale. ...
  8. Security Vulnerabilities.
Jan 5, 2023

What ports need to be open for RTMP? ›

RTMP Default Port

This is the default port for RTMP (Real Time Messaging Protocol) encoding. With an RTMP encoder, our service is set up to try to use ports 80 or 443 if 1935 isn't open, which is why most should be fine.

Is VLC an RTMP server? ›

As of now, VLC Media Player 2.1 and above has partial support for playing RTMP streams (not RTMPE), while Adobe Flash Player (web browser plug-in) is the most widely adopted RTMP client, which supports playback of audio and video streamed from RTMP servers.

What is the difference between RTSP and RTMP? ›

RTSP is commonly used for streaming media, such as video or audio streams and is best for media that needs to be broadcasted in real-time. Meanwhile, RTMP is commonly used for streaming media over the web and is best for media that can be stored and delivered when needed.

Is RTMP obsolete? ›

Since RTMP was developed for use with Flash Player and Flash Player is now dead, some people think RTMP is outdated. However, it's still widely used because it's a good low-latency streaming option. Other benefits of RTMP are: It can offer secure, cloud-based streaming through RTMPS, a more secure version of RTMP.

Is RTMP outdated? ›

RTMP was originally designed for streaming with Adobe's Flash player and is often simply called Flash streaming, but this use is now quite outdated. Today, RTMP ingest is the most common use of this protocol and has to do exclusively with the exchange between an encoder and an online video platform.

Is Netflix using NGINX? ›

The specific open source projects Netflix chose were: FreeBSD as the operating system, because it's known to be fast and stable. The developer community is strong and willing to work with vendors. NGINX as the streaming media server.

What is the maximum body size for NGINX stream? ›

Client Max Body Size

By default, NGINX allows a client request body to be up to 1m in size. Setting the value to “0” allows for an unlimited request body size.

Do people still use NGINX? ›

NGINX Plus and NGINX are the best-in-class web server and application delivery solutions used by high‑traffic websites such as Dropbox, Netflix, and Zynga. More than 350 million websites worldwide rely on NGINX Plus and NGINX Open Source to deliver their content quickly, reliably, and securely.

Does RTMP require a server? ›

RTMP livestreaming generally requires a media server and a content delivery network, but by leveraging StackPath edge-compute you can remove the need for a CDN and drastically reduce latency and costs.

Should I use RTMP or HLS? ›

It all depends on your needs. If you need low latency, then RTMP is the better option. However, if you need adaptive bitrate streaming, then HLS is the better option.

How does RTMP streaming work? ›

A media player sends a request to the streaming server when a viewer wants to watch a live stream or a video on demand. The server then uses the RTMP protocol to connect directly with the media player. Once the connection is made between them, the server sends the encoded multimedia data to the media player.

What replaced RTMP? ›

Replacing RTMP With RIST

Reliable Internet Stream Transport (RIST) is an open-source and open standard protocol specifically designed for transporting data across unpredictable public networks.

What is the bitrate limit for RTMP? ›

You need to ensure that the overall bitrate does not exceed 8500Kbps, and note this is a strict upper limit and if for some reason your total bitrate fluctuates slightly above this you will be disconnected.

What protocol is used for video streaming? ›

9 Common Streaming Protocols
  • HTTP Live Streaming (HLS) ...
  • Dynamic Adaptive Streaming over HTTP (MPEG-DASH) ...
  • WebRTC. ...
  • Secure Reliable Transport (SRT) ...
  • Real-Time Messaging Protocol (RTMP) ...
  • Real-Time Streaming Protocol (RTSP) ...
  • Transmission Control Protocol (TCP) ...
  • User Datagram Protocol (UDP)
Sep 15, 2022

How to run nginx server on Ubuntu? ›

  1. Installing Nginx. To install Nginx, use following command: sudo apt update sudo apt install nginx. ...
  2. Creating our own website. Default page is placed in /var/www/html/ location. ...
  3. Setting up virtual host. ...
  4. Activating virtual host and testing results.

How to install and setup nginx in Ubuntu? ›

Installing a Prebuilt Ubuntu Package from an Ubuntu Repository
  1. Update the Ubuntu repository information: sudo apt-get update.
  2. Install the package: sudo apt-get install nginx.
  3. Verify the installation: sudo nginx -v nginx version: nginx/1.4.6 (Ubuntu)

How to set up nginx server blocks on Ubuntu? ›

For the purpose of setting up the Nginx server block on Ubuntu 22.04, follow the given instructions.
  1. Step 1: Create Directory. ...
  2. Step 2: Set Directory ownership. ...
  3. Step 3: Set File permissions. ...
  4. Step 4: Create HTML file. ...
  5. Step 5: Set up Nginx server block. ...
  6. Step 6: Enable Nginx server block. ...
  7. Step 7: Nginx testing.

Which server is best for video streaming? ›

10Gbps dedicated servers are incredibly fast. They are ideal for video streaming because they provide low-latency connectivity, a high number of simultaneous downloads and uploads, and high data transfer speeds.

What ports does nginx RTMP use? ›

Ports 19350 and 19360 are used by default in order to not conflict with other streaming engines that might be installed on the system. It is not possible to change the nginx-rtmp default ports at the moment, they must remain as 19350 and 19360.

Is SRT better than RTMP? ›

Comparing End-to-End Latency

In these tests, compared to RTMP, SRT was more than twice as fast and, when tested using dedicated hardware encoding and decoding equipment, the difference was even more dramatic with SRT being 5 to 12 times faster than RTMP.

Is WebRTC better than RTMP? ›

WebRTC is excellent if a browser is all you need, but if you want more control over your encoding settings, then RTMP might be the way to go.
Ingestion vs. Delivery.
Use as Delivery ProtocolExcellent for last-mile delivery, ensuring glass-to-glass streaming.No longer widely supported as a delivery protocol.
6 more rows
Oct 3, 2022

How to set up a VLC streaming server? ›

How to Set up the VLC Server
  1. Click the "Media" menu at the top of the VLC Media Player window and select "Streaming."
  2. Click the "Add" button to the right of the file box, browse to a media file to stream on your computer and double-click it. ...
  3. Click the "Stream" button at the bottom of the Open Media window.

Is RTMP still supported? ›

RTMP ingest on Dacast automatically supports conversion to HLS on iOS, Android, and all browsers. RTMP has several distinct variations. RTMP has been mostly deprecated for general use and is no longer supported by Adobe.

Why is RTMP still used? ›

RTMP was initially designed to transport audio and video data between a dedicated streaming server and the Adobe Flash Player. Today, however, the protocol is most often used to deliver encoded content to social media platforms, streaming platforms, and media servers.

Is WebRTC a RTMP? ›

Unlike RTMP, WebRTC is more than a protocol. The technology covers transmission protocols, as well as the Application Programming Interfaces (APIs) that are used for Real-Time Communication (RTC) between web browsers and mobile applications.

Is Zoom a RTMP? ›

The Zoom video conferencing and online meeting application supports live streaming a webinar or meeting to a custom streaming platform via RTMP.

Is Vimeo a RTMP? ›

As an example, Vimeo uses RTMPS as the default protocol for Livestream Studio to make it easier and safer to stream.

Does TikTok accept RTMP? ›

TikTok does support RTMP live streams, but not all users can access it. Please note that live video on TikTok uses a 9:16 ('portrait') frame.

Does Facebook accept RTMP? ›

Using Custom RTMP allows you to stream to Facebook with Switcher Studio without the integration. Note: For information about what Custom RTMP is and why it's used, check out the Help Center article Streaming to Platforms without a Direct Integration.

How do I setup a NGINX proxy server? ›

How to Set Up an Nginx Reverse Proxy?
  1. Install Nginx. We'll be using the apt command on Ubuntu 18.04: sudo apt-get update sudo apt-get install nginx.
  2. Disable the Default Virtual Host. ...
  3. Create the Nginx Reverse Proxy. ...
  4. Test Nginx and the Nginx Reverse Proxy.

How do I setup my own streaming server? ›

How to Build a Video Streaming Server?
  1. Set up your server. There's no reason to reinvent the wheel. ...
  2. Install and configure your streaming software. Your server is ready to roll. ...
  3. Build your Content Delivery Network (CDN) ...
  4. Set up your media player. ...
  5. Additional configurations.

How to set up NGINX virtual hosts? ›

  1. Step 1 — Setting Up New Document Root Directories.
  2. Step 2 — Creating Sample Pages for Each Site.
  3. Step 3 — Creating Server Block Files for Each Domain.
  4. Step 4 — Enabling your Server Blocks and Restarting Nginx.
  5. Step 5 — Modifying Your Local Hosts File for Testing (Optional)
  6. Step 6 — Testing Your Results.
  7. Conclusion.
Dec 1, 2022

How do I get an RTMP stream? ›

Select the Live Tools menu. Scroll to the bottom to find the RTMP Input option. Select Get Link. You will be presented with a Stream Key and a Server URL along with a few additional options.

Can NGINX be used as forward proxy? ›

Nginx is often used as a load balancer, a reverse proxy, and an HTTP Cache, among other uses. In this tutorial, we are focusing on learning how to use it as a forward proxy for any requested location.

How to start NGINX service in Ubuntu? ›

  1. Installing Nginx. To install Nginx, use following command: sudo apt update sudo apt install nginx. ...
  2. Creating our own website. Default page is placed in /var/www/html/ location. ...
  3. Setting up virtual host. ...
  4. Activating virtual host and testing results.

Can NGINX be used as a proxy server? ›

Nginx is an open source web server that can also serve as a reverse proxy. Apart from being used to host websites, it's also one of the most widely used reverse proxy and load balancing solutions.

What is needed for a streaming setup? ›

What is a basic streaming setup? As a beginner, you need five basic things to go live: a camera, streaming software, a microphone, a computer and a good internet connection. You can also add accessories that will drastically improve the quality of your live stream without too much effort.

What is the basic setup for live streaming? ›

How to live stream in 5 simple steps
  1. Connect your audio and video sources. This involves physically connecting the audio and video sources to your main live streaming setup (the PC or laptop). ...
  2. Configure the encoder. ...
  3. Connect to the streaming platform. ...
  4. Check your internet connection. ...
  5. Start streaming.

How to setup nginx virtual host in Ubuntu? ›

Enable Nginx Virtual Host

Enable virtual hosts by adding symbolic links between the files present at /etc/nginx/sites-available and /etc/nginx/sites-enabled . The answer Syntax OK should be returned. Then, restart Nginx to apply the changes and have the web server use your configuration file.

How to host nginx on Ubuntu? ›

To install and configure Nginx on Ubuntu 20.04 server, follow these 7 steps:
  1. Step 1: Install NGINX on Ubuntu 20.04.
  2. Step 2: Manage NGINX Service.
  3. Step 3: Host a Single Website.
  4. Step 4: Configure NGINX Server Blocks to Host Multiple Websites.
  5. Step 5: Change File Ownership and Permissions.
Nov 5, 2021

Does nginx have virtual hosts? ›

NGINX does not have Virtual hosts, it has “Server Blocks” that use the server_name and listen directives to bind to tcp sockets.

Is an RTMP server free? ›

Ant Media Community Edition for a free RTMP Server

Ant Media Server Community Edition is a free, self-hosted, and self-managed streaming software where you get: Low latency of 8 to 12 seconds. RTMP and WebRTC ingesting.


1. Setup a Nginx RTMP live-stream server & HLS video-player on Wordpress on Ubuntu/Raspbian/Debian ▶️
2. Build a live-stream server with Nginx, RTMP, HLS & VideoJS on Ubuntu 18.04 (re-upload)
3. HLS Streaming Server with NGINX
(Nerd on the Street)
4. FFmpeg Streaming - Next Step: RTMP Configuration and Usage
(Dev Stef)
5. Seting up nginx+RTMP module on ubuntu 18.04 ▶️ to push the stream to multiple platforms
6. RTMP and RTMPS Streaming Guide with Nginx
Top Articles
Latest Posts
Article information

Author: Kimberely Baumbach CPA

Last Updated: 15/06/2023

Views: 6227

Rating: 4 / 5 (61 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Kimberely Baumbach CPA

Birthday: 1996-01-14

Address: 8381 Boyce Course, Imeldachester, ND 74681

Phone: +3571286597580

Job: Product Banking Analyst

Hobby: Cosplaying, Inline skating, Amateur radio, Baton twirling, Mountaineering, Flying, Archery

Introduction: My name is Kimberely Baumbach CPA, I am a gorgeous, bright, charming, encouraging, zealous, lively, good person who loves writing and wants to share my knowledge and understanding with you.