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