ahmadajah03 Wed Sep 2021 1 year ago

Cara Menggunakan Modul NGINX RTMP untuk Menyiapkan Server Streaming

Salah satu protokol streaming video yang paling umum adalah Server Streaming HLS.  HLS adalah teknologi streaming adaptif yang memungkinkan Anda melakukan streaming konten media yang disesuaikan dengan perangkat pengguna dan kondisi jaringan untuk kinerja streaming terbaik. 

HLS dan RTMP dapat dengan mudah diintegrasikan dengan server web Nginx menggunakan modul Nginx RTMP. Dalam tutorial ini, kami akan menunjukkan cara menyiapkan server streaming langsung HLS di Ubuntu.

 

Apa itu Nginx RTMP?

Nginx RTMP adalah modul Nginx yang memungkinkan Anda menambahkan streaming RTMP dan HLS ke server media Anda. Sebelumnya, modul RTMP dan HLS adalah modul Nginx yang terpisah, tetapi sekarang semuanya dapat ditambahkan ke Nginx sebagai satu modul.

 

Persyaratan Server:

  • OS Ubuntu (Dapat bekerja pada Sistem Operasi lain dengan modifikasi perintah)
  • RAM minimal 2GB
  • Ruang disk sesuai kebutuhan untuk file media apa pun
  • instruksi instalasi

 

Instruksi instalasi

Langkah 1: Masuk melalui SSH ke server

Login sebagai root atau pengguna dengan akses sudo di server. Jika Anda menggunakan pengguna dengan akses sudo, tambahkan sudo sebelum setiap perintah dalam tutorial:

ssh root@server-ip

Langkah 2: Unduh perangkat lunak yang diperlukan

Mulailah dengan memperbarui repositori apt:

apt-get update

Jika ini adalah server baru, Anda harus mempertimbangkan untuk memperbarui perangkat lunak sistem:

apt-get Upgrade

Kami kemudian akan menginstal perangkat lunak yang diperlukan:

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

 

Langkah 3: Modul Klon

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

 

Langkah 4: Unduh Nginx

Salin tautan unduhan terbaru dari situs web Nginx dan dekompresi file:

wget http://nginx.org/download/nginx-1.17.6.tar.gz 
tar -xf nginx-1.17.6.tar.gz 
cd nginx-1.17.6

 

Langkah 5: Konfigurasi Nginx

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

 

Langkah 6: Konfigurasi Nginx

rm /usr/local/nginx/conf/nginx.conf
nano /usr/local/nginx/conf/nginx.conf

Salin konten berikut ke dalam file dan simpan:

worker_processes  auto;
events {
worker_connections  1024;
}

# RTMP configuration
rtmp {
server {
listen 1935; # Listen on standard RTMP port
chunk_size 4000;

application show {
live on;
# Turn on HLS
hls on;
hls_path /mnt/hls/;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
deny play all;
}
}
}

http {
sendfile off;
tcp_nopush on;
directio 512;
default_type application/octet-stream;

server {
listen 8080;

location / {
# Disable cache
add_header 'Cache-Control' 'no-cache';

# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';

# allow CORS preflight requests
if ($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/;
}
}
}

Langkah 7: Mulai Nginx

Mulai Nginx

/usr/local/nginx/sbin/nginx

Langkah 8: Mulai Streaming

Server ini dapat melakukan streaming dari berbagai sumber termasuk file statis, webcam, dll.

 

Kami sebelumnya menginstal ffmpeg. Kami akan mulai streaming example-vid.mp4 ke 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

 

Langkah 9: Integrasikan ke dalam Player

Aliran sekarang dapat diintegrasikan ke dalam pemutar HLS javascript sesuai kebutuhan Anda. 

nginx rtmp setting use modul rtmp nginx example nginx