One of the most common video streaming protocols is an HLS Streaming Server. HLS is an adaptive streaming technology which allows you to stream media content that is tailored to the user’s device and network conditions for the best streaming performance.

HLS and RTMP can be easily integrated with the Nginx web server using the Nginx RTMP module. In this tutorial, we’ll show you how to setup an HLS live streaming server on Ubuntu.

See AlsoZumiv Media Streaming Server Solutions

What is Nginx RTMP?

Nginx RTMP is an Nginx module which allows you to add RTMP and HLS streaming to your media server. Previously, the RTMP and HLS modules were seperate Nginx modules, but they can now all be added to Nginx as a single module.

See Also: Experience Our for Free VPS Hosting: Enjoy a 30-Day Trial with Risk-Free Servers

Server Requirements

  • Ubuntu OS (May work on other Operating Systems with command modifications)
  • Minimum 2GB RAM
  • Disk space as required for any media files
  • Zumiv Cloud VDS or Dedicated Server

Installation Instructions

Step 1: Login via SSH to the server

Login as root or a user with sudo access on the server. If you are using a user with sudo access, then add sudo before each command in the tutorial:

ssh root@server-ip

Step 2: Download required software

Start by updating the apt repository:

apt-get update

If this is a new server, you should consider updating the system software:

apt-get Upgrade

We’ll then install the required software:

apt-get install -y git build-essential ffmpeg libpcre3 libpcre3-dev libssl-dev zlib1g-dev

Step 3: Clone Module

Install the clone module:

git clone https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git

Step 4: Download Nginx

Copy the latest download link from the Nginx website and decompress the files:

wget http://nginx.org/download/nginx-1.17.6.tar.gztar -xf nginx-1.17.6.tar.gzcd nginx-1.17.6

Step 5: Configure Nginx

Configure NGINX by typing in the following command:

./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-rtmp-modulemake -j 1make install

Step 6: Configure Nginx

Continued…

rm /usr/local/nginx/conf/nginx.confnano /usr/local/nginx/conf/nginx.conf

Copy the following contents into the file and save it:

worker_processes auto;events {worker_connections 1024;}# RTMP configurationrtmp {server {listen 1935; # Listen on standard RTMP portchunk_size 4000;application show {live on;# Turn on HLShls on;hls_path /mnt/hls/;hls_fragment 3;hls_playlist_length 60;# disable consuming the stream from nginx as rtmpdeny play all;}}}http {sendfile off;tcp_nopush on;directio 512;default_type application/octet-stream;server {listen 8080;location / {# Disable cacheadd_header 'Cache-Control' 'no-cache';# CORS setupadd_header 'Access-Control-Allow-Origin' '*' always;add_header 'Access-Control-Expose-Headers' 'Content-Length';# allow CORS preflight requestsif ($request_method = 'OPTIONS') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain charset=UTF-8';add_header 'Content-Length' 0;return 204;}types {application/dash+xml mpd;application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /mnt/;}}}

Step 7: Start Nginx

Start Nginx:

/usr/local/nginx/sbin/nginx

Step 8: Start Streaming

This server can stream from a variety of sources including a static file, webcam, etc.

We previously installed ffmpeg. We’ll start streaming example-vid.mp4 to our http://localhost/show/stream

ffmpeg -re -i example-vid.mp4 -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://localhost/show/stream

Step 9: Integrate into Player

The stream can now be integrated into a javascript HLS player as per your requirements.

See Also: Experience Our for Free VPS Hosting: Enjoy a 30-Day Trial with Risk-Free Servers

Deploying An Nginx RTMP Server

If you have any questions about deploying a new Nginx RTMP or HLS server, consider booking a free consultation with one of our our account executives. We can help you choose the right server hardware for your media streaming project.

Now that you’ve learned about creating an Nginx RTMP server, why not read about: What is RTMP?


Zumiv not only supports businesses with technical tutorials, but also through enterprise focused solutions such as colocation and server cluster configurations. To find out more about these advanced partnership opportunities, please book a free consultation with an account executive.

What are your feelings

COMPLETE DIGITAL SERVER SOLUTIONS FOR ALL

Bare Metal Dedicated Servers

A single tenant, physical server allowing you full access to its resources

Read More

Cloud VPS

The cheapest way to get your own independent computing instance.
Read More

Cloud VDS

Virtualized server platform hosted on enterprise-grade physical servers
Read More

10 Gbps Unmetered Servers

Zumiv offers high bandwidth dedicated servers up to 20Gbps.
Read More
free vps hosting

ZUMIV NEWSLETTER

Receive the latest news, updates and offers. You can unsubscribe at any time.

ZUMIV NEWSLETTER

Receive the latest news, updates and offers. You can unsubscribe at any time.

zumiv logo white final 1 1

Cloud VPS and Bare Metal Servers for Less

Registered Office:
124 City Road, London
EC1V 2NX, United Kingdom.
44-7-441-399-305
Support Hours: 24x7x365
Sale Office Hours: M-F, 7AM-5PM EST

We accept the following:

payment option

PRODUCTS

SERVICES

© 2023 Webcom Ltd. (DBA zumiv.com) Company,  CR: 14252964, ® All Rights Reserved

certifications

ZUMIV NEWSLETTER

Receive the latest news, and offers. You can unsubscribe at any time.

CALL US 44.7.441.399.305

  • PRODUCTS
  • LOCATIONS
  • SOLUTIONS
  • COMPANY
This is a staging enviroment

Please tell us more about yourself.

Complete the form below and one of our experts will contact you within 24 hours or less. For immediate assistance contact us.