RTMP sangat bagus untuk menyajikan kandungan langsung. Apabila RTMP dipasangkan dengan FFmpeg, aliran dapat diubah menjadi pelbagai kualiti. Vultr sangat bagus untuk aplikasi ini kerana mereka memberikan prestasi CPU yang pantas dan berdedikasi. Rangkaian global Vultr juga memastikan bahawa anda dapat menyampaikan kandungan langsung berkualiti tinggi dengan kelewatan minimum. Mari kita mulakan!
Memasang Nginx dan Nginx-RTMP
Pasang alat yang diperlukan untuk menyusun Nginx dan Nginx-RTMP dari sumber.
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Buat direktori yang berfungsi dan beralih kepadanya.
mkdir ~/working
cd ~/working
Muat turun sumber Nginx dan Nginx-RTMP.
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Pasang pakej Unzip.
sudo apt-get install unzip
Ekstrak sumber Nginx dan Nginx-RTMP.
tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
Tukar ke direktori Nginx.
cd nginx-1.7.5
Tambahkan modul yang akan disusun oleh Nginx. Nginx-RTMP disertakan.
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Susun dan pasang Nginx dengan Nginx-RTMP.
make
sudo make install
Pasang skrip init Nginx.
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults
Mulakan dan hentikan Nginx untuk menghasilkan fail konfigurasi.
sudo service nginx start
sudo service nginx stop
Memasang FFmpeg
Tambah PPA FFmpeg.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
Kemas kini senarai pakej.
sudo apt-get update
Pasang FFmpeg.
sudo apt-get install ffmpeg
Catatan: Perintah apt-add-repository mungkin tidak dipasang dalam beberapa kes. Untuk memasangnya, jalankan sudo apt-get install software-properties-common
.
Mengkonfigurasi Nginx-RTMP dan FFmpeg
Buka fail konfigurasi Nginx.
sudo nano /usr/local/nginx/conf/nginx.conf
Lampirkan perkara berikut.
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
}
application live360p {
live on;
record off;
}
}
}
Setelah anda menambahkan perkara di atas, anda boleh menyesuaikan tetapan seperti kadar bit video, kadar bit audio dan resolusi. Perubahan ini hanya akan diterapkan pada aliran berkualiti rendah. Untuk menambahkan lebih banyak kualiti, salin dan tampal baris fecmpeg exec dan ubah tetapannya. Anda juga perlu membuat aplikasi baru. Anda boleh melakukan ini dengan menyalin dan menampal contoh live360 yang telah disertakan. Jangan lupa untuk mengemas kini talian exec ffmpeg dengan alamat aplikasi baru. Anda boleh melakukan ini dengan menukar alamat RTMP akhir di barisan exec ffmpeg.
Catatan: Mengubah nilai selepas -b:v
akan mengubah kadar bit video. Ini diukur dalam kilobit sesaat. Mengubah nilai selepas -b:a
akan mengubah kadar bit audio. Ini diukur dalam kilobit sesaat. Mengubah nilai selepas -s
akan mengubah resolusi.
Simpan fail dengan menekan Control dan X bersama-sama. Mulakan semula Nginx.
sudo service nginx restart
Catatan: Untuk prestasi terbaik, setiap aliran yang ditukar harus mempunyai teras CPU sendiri. Contohnya dua kualiti, 360P dan 480P sedang dibuat dari aliran 720P. Contoh Vultr dengan sekurang-kurangnya dua teras CPU harus digunakan.
Nota Keselamatan
Sekiranya anda menggunakan firewall, anda perlu memastikan TCP 1935 dibenarkan.
Konfigurasi semasa membolehkan sesiapa sahaja melakukan streaming ke pelayan anda. Kami dapat memperbaikinya dengan hanya membenarkan alamat IP tertentu izin penerbitan. Buka konfigurasi Nginx.
sudo nano /usr/local/nginx/conf/nginx.conf
Cari baris berikut.
live on;
record off;
Tambahkan yang berikut untuk setiap set baris di atas. Tukar 0.0.0.0 ke alamat IP anda.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
Konfigurasi sekarang harus kelihatan seperti ini.
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
}
application live360p {
live on;
record off;
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
}
}
}
Simpan fail dengan menekan Control dan X bersama-sama. Mulakan semula Nginx.
sudo service nginx restart
Mengkonfigurasi Perisian untuk Bekerja dengan Nginx-RTMP
Aplikasi streaming biasanya mempunyai dua medan untuk maklumat sambungan. Medan pertama biasanya untuk maklumat pelayan dan medan kedua biasanya untuk nama aliran atau kunci. Maklumat yang harus anda masukkan ke dalam setiap bidang disenaraikan. Nama atau kunci aliran boleh ditetapkan untuk apa sahaja.
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set
Untuk melihat aliran, buka pautan berikut dalam pemain yang menyokong RTMP.
rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set
Menyiapkan pemain untuk memaparkan video langsung di laman web adalah di luar skop panduan ini. Mencari istilah 'pemain web RTMP' mungkin membantu anda.