GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Server NGINX RTMP untuk Streaming

Apakah streaming langsung Anda mogok setiap saat? Jika demikian, Anda harus menemukan cara yang andal untuk menghosting streaming Anda. Tetapi jika Anda tidak mampu membeli opsi yang mahal, jangan khawatir! NGINX RTMP akan menyelamatkan hari. NGINX RTMP adalah modul sumber terbuka yang andal, jadi Anda tahu artinya — GRATIS!

Dalam tutorial ini, Anda akan mempelajari cara menyiapkan server NGINX RTMP sehingga Anda dapat menyiapkan streaming langsung yang andal dengan situs web Anda.

Siap? Baca terus dan mulai siapkan streaming langsung!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut:

  • Server Linux – Demo ini menggunakan Ubuntu 20.04 LTS, tetapi Anda dapat menggunakan distribusi Linux lainnya dengan NGINX.
  • NGINX terinstal di server Linux.
  • Pengguna non-root dengan hak istimewa sudo.
  • Sumber daya minimum yang diperlukan untuk menjalankan server streaming langsung – RAM 2G, 2 Core CPU, dan HDD 20 GB.

Nilai ini hanya saran. Nilai yang tepat tergantung pada kebutuhan lalu lintas Anda yang sebenarnya. Semakin banyak lalu lintas yang Anda miliki, semakin kuat server yang Anda perlukan untuk meng-host dan streaming video langsung Anda. Dalam lingkungan pengembangan, server NGINX RTMP dengan 2 CPU dan RAM 2 GB sudah cukup untuk diuji.

Mengonfigurasi Server RTMP

Sekarang prasyarat sudah tidak ada, Anda sekarang dapat melanjutkan untuk menginstal dan mengonfigurasi server RTMP Anda. Pertama-tama Anda akan menginstal modul NGINX untuk mengonversi server NGINX Anda menjadi server RTMP, lalu mengonfigurasi file konfigurasi NGINX untuk mengaktifkan streaming langsung bagi pengguna.

1. Buka terminal Anda dan jalankan apt update perintah untuk memperbarui semua paket Anda. Perintah ini menyinkronkan database paket Anda dengan database terbaru dari Ubuntu.

sudo apt update -y

2. Selanjutnya, jalankan perintah berikut untuk menginstal server RTMP di server Linux Anda.

libnginx-mod-rtmp module adalah modul NGINX yang mengubah server NGINX Anda menjadi server RTMP. Modul ini memungkinkan NGINX untuk berkomunikasi dengan Adobe Flash player sehingga Anda dapat melakukan streaming video atau audio langsung, dan secara resmi didukung oleh tim pengembangannya.

sudo apt install libnginx-mod-rtmp -y

3. Buka /etc/nginx/nginx.conf file di editor favorit Anda untuk mengonfigurasi program langsung RTMP Anda. nginx.conf file adalah file konfigurasi NGINX, yang berisi beberapa arahan atau blok untuk menentukan perilaku layanan NGINX.

4. Terakhir, isi nginx.conf file dengan kode berikut, simpan perubahan dan keluar dari editor.

Kode di bawah ini memberi tahu NGINX untuk bertindak sebagai server RTMP dan mengaktifkan streaming langsung untuk pengguna Anda.

# This block of code tells NGINX to act as an RTMP server. 
rtmp {
		server {
		# Sets the port the server will listen on.
    listen 1935;
				# The size of each chunk of data that will be sent.
				# Flash Player will freeze if the chunk is too small, 
				# which can cause a buffer-underflow condition.
        chunk_size 4096;
				# The IP addresses are allowed to publish content to the server.
				# Allow only the localhost to publish content on NGINX RTMP.
				allow publish 127.0.0.1;
				# Deny publishing for everyone else.
				deny publish all;
				# Defines a named application called "live"
        application live {
				# Tells NGINX to enable live streams for your users.
						live on;
				# This line tells NGINX to disable recording. If this line is not included, 
				# NGINX will keep recording and save your stream forever to your disk.
						record off;
				}
		}
}

Mengamankan Jaringan dengan Menyiapkan Firewall

Anda telah mengonfigurasi server NGINX RTMP, tetapi Anda harus mengamankan jaringan dan mengontrol arus lalu lintas. Bagaimana? Dengan menyiapkan firewall, Uncomplicated Firewall (UFW), yang merupakan firewall default di Ubuntu.

Jika Anda meletakkan server NGINX RTMP Anda di belakang firewall, Anda harus mengizinkan port server NGINX RTMP terbuka. Karena Anda telah mengonfigurasi server NGINX RTMP Anda untuk mendengarkan pada port 1935 , Anda akan mengizinkan port ini melalui firewall Anda.

1. Jalankan perintah berikut untuk menambahkan aturan firewall yang membuka port 1935 di firewall Anda. Aturan firewall ini mengizinkan port server NGINX RTMP Anda 1935 agar dapat diakses untuk semua permintaan masuk dan keluar.

sudo ufw allow 1935/tcp

2. Selanjutnya, jalankan perintah berikut untuk menonaktifkan dan mengaktifkan kembali firewall Anda. Perintah ini pada dasarnya me-restart firewall agar perubahan pada firewall diterapkan.

sudo ufw disable && sudo ufw enable

3. Terakhir, jalankan perintah di bawah ini untuk memeriksa status firewall Anda dan memverifikasi apakah port 1935 dapat diakses dari semua alamat IP (Di mana saja ).

sudo ufw status

Streaming Video menggunakan FFmpeg

Server NFINX RTMP Anda sekarang sudah aktif, jadi saatnya menggunakan FFmpeg untuk membuat video contoh dan streaming melalui server NGINX RTMP Anda. FFmpeg adalah solusi lengkap untuk merekam, mengonversi, dan mengalirkan audio dan video di berbagai aplikasi seperti VLC, OMXPlayer, VobSub, dan sebagainya.

Anda akan menguji streaming video di server Anda, dan Anda dapat menggunakan video apa pun yang berukuran kecil untuk streaming.

1. Jalankan apt install perintah di bawah ini untuk menginstal dependensi yang diperlukan agar FFmpeg berjalan dengan benar.

Perintah di bawah ini menginstal yang berikut:

  • libpcre3 – Pustaka regex yang digunakan oleh toolkit ffmpeg untuk membantu mengurai dan mengompilasi ekspresi reguler.
  • libpcre3-dev – Paket ini berisi header pengembangan dari paket libpcre3.
  • libssl-dev – Pustaka kriptografi OpenSSL yang digunakan untuk membuat koneksi SSL/TLS di server RTMP Anda.
  • zlib1g-dev :Pustaka zlib adalah pustaka kompresi dan dekompresi yang mempercepat transfer file audio dan video melalui Internet.
sudo apt install -y libpcre3 libpcre3-dev libssl-dev zlib1g-dev

2. Selanjutnya, jalankan perintah berikut untuk menginstal ffmpeg di server Anda.

 sudo apt install ffmpeg -y 

3. Terakhir, jalankan ffmpeg perintah untuk melakukan hal berikut dan membuat streaming langsung baru:

  • Baca masukan (re ) dari file sumber (i ) pada frekuensi gambar asli. Pastikan untuk mengganti video.mp4 dengan jalur dan nama file video Anda.
  • Salin format video kata demi kata (c:v copy ), dan menyandikan audio n codec AAC (c:a aac ).
  • Setel kecepatan sampel audio ke 44100 Hz (ar 44100 ). Jika sample rate video Anda kurang dari nilai ini (44100 Hz), FFmpeg melakukan interpolasi untuk meningkatkan sample rate.
  • Setel saluran audio ke satu saluran (mono) (ac 1 ), dan format video yang akan dialirkan FFmpeg (-f flv ).
  • Setel program langsung RTMP Anda (rtmp://localhost/live/streamname.flv ) yang Anda konfigurasikan di bagian “Mengonfigurasi Server RTMP” (langkah empat). Anda dapat mengubah streamname.flv untuk nama apa pun yang Anda inginkan.
ffmpeg -re -i "video.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://139.180.203.6:1935/live/streamname.flv 

Seperti yang Anda lihat di bawah, ffmpeg perintah mencetak bingkai per detik yang dideteksinya, bitrate , dan fps dari streaming langsung RTMP yang baru dibuat.

Kesimpulan

Dalam tutorial ini, Anda telah mempelajari cara menyiapkan server NGINX RTMP Anda dan mengaktifkan streaming langsung di server Anda dengan memodifikasi file konfigurasi NGINX. Anda juga telah menyentuh tentang menyiapkan streaming langsung video menggunakan alat FFmpeg melalui server NGINX RTMP Anda.

Anda baru menyadari bahwa menyiapkan streaming langsung tidak harus mengeluarkan biaya setiap sen. Pada titik ini, mengapa tidak mengintegrasikan aliran Anda ke halaman web Anda menggunakan elemen


Linux
  1. Cara Mengatur Server Media Streaming Menggunakan Jellyfin Di Linux

  2. Cara Mengatur Blok Server Nginx Di Ubuntu 18.04 LTS

  3. Bagaimana cara Setup Server NTP di CentOS?

  1. Cara Mengatur Apache Sebagai Proxy Frontend untuk Node.js

  2. Cara membuat server streaming di FreeBSD

  3. Cara Mengatur HAProxy sebagai Load Balancer untuk Nginx di CentOS 8

  1. Cara Mengatur HAProxy sebagai Load Balancer untuk Nginx di CentOS 7

  2. Cara Menginstal Nginx di Ubuntu 14.04

  3. Cara Menginstal Nginx di Debian 7