Nginx: Basic Live Video Streaming Server

From OnnoWiki
Revision as of 10:35, 11 May 2020 by Onnowpurbo (talk | contribs) (→‎Where to go next?)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sumber: https://opensource.com/article/19/1/basic-live-video-streaming-server

Yang perlu di pikirkan dalam instalasi live streaming video server

  • Stream quality: mau HD atau SD?
  • Viewership: jumlah pemirsa?
  • Storage: mau di rekam atau tidak?
  • Access: apakah private atau open?

Spec Minimal Server:

  • 4GB RAM
  • 20G harddisk
  • 1 core i7

Disini digunakan Real-Time Messaging Protocol (RTMP) untuk menangani audio + video streaming. Alternatif lain adalah WebRTC.

Setting Server

Instalasi nginx

sudo apt update
sudo apt upgrade (optional)
sudo apt -y install nginx

Instalasi RTMP agar nginx dapat menangani media stream:

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

Tambahkan konfigurasi di nginx untuk menangani RTMP,

sudo vi /etc/nginx/nginx.conf

Tambahkan di paling bawah,

rtmp {
        server {
                listen 1935;
                chunk_size 4096; 

                application live {
                        live on;
                        record off;
                }
        }
}

Di save konfigurasi-nya.

Restart nginx

sudo systemctl restart nginx
/etc/init.d/nginx restart



Studio Broadcast dengan OBS

Kita bisa streaming menggunakan OBS, perlu di set

  • Source > Media Sources > nama file.mp4
  • File > Settings > Stream > Custom > Server dengan format di bawah ini (cek dengan ifconfig di server)
rtmp://IP-ADDRESS/live.
  • Streaming Key, kita set sebagai password bagi user untuk akses, misalnya
x6kj-8psm-p2wy-38ks
onno-teknik-jaringan

Klik "Start Streaming" di OBS

Settingan di sisi Client / Penonton

Untuk bisa menonton, salah satu yang sederhana bisa menggunakan VLC

sudo apt -y install vlc

Untuk akses, klik

  • Media > Open Network Stream

Alamat video streaming adalah

rtmp://IP-ADDRESS/live/SECRET-KEY.

Selanjutnya?

Yang bisa dikerjakan selanjutnya,

  • Limit access: bisa membatasi akses server kita, misalnya menggunakan firewall, .htaccess di web, atau access control di rtmp modul.
  • Record streams: merekam video dengan cara mengubah sedikit konfigurasi,
application live {
             live on;
             record all;
             record_path /var/www/html/recordings;
             record_unique on;
}

Referensi

Pranala Menarik