Bu eğitim, güçlü ve hafif bir web sunucusu ve ters proxy ve RTMP protokolü olan Nginx'ten yararlanan kişisel bir canlı akış sunucusunun nasıl kurulacağını göstererek bunu çözmeyi amaçlamaktadır.
Devam etmeden önce şunlardan emin olun:
- Ubuntu veya Debian sunucusu çalıştırıyorsunuz
- Sunucunuza SSH ile erişin
- Kök kullanıcı veya sudo ayrıcalıkları
başlayalım.
Nginx Nedir?
Yukarıda bahsedildiği gibi, Nginx hızlı ve hafif bir açık kaynaklı web sunucusudur ve basit statik web sitelerine veya büyük uygulamalara hizmet etmek için kullanılan ters proxy'dir. Nginx, inanılmaz hız ve güvenliğe sahip yüksek performanslı bir web sunucusudur. Hafif yapısı sayesinde, akış hizmetleri ve yoğun trafiği olan trafik için çok verimli bir seçimdir.
Aşağıda sağlanan kaynaktan Nginx hakkında daha fazla bilgi edinebilirsiniz:
https://nginx.org/tr/belgeler/
Nginx RTMP nedir
Nginx RTMP, Nginx web sunucusu için açık kaynaklı ve güçlü bir modüldür. RTMP protokolünü, HTTP Canlı Akışı (HLS) ve HTTP Üzerinden Dinamik Uyarlamalı Akışı (DASH) etkinleştirir.
Kaynak sayfasından HLS ve DASH hakkında daha fazla bilgi edinebilirsiniz:
https://www.bulut parlaması.com/learning/video/mpeg-dash nedir/
Artık Nginx ve Nginx RTMP'nin ne olduğunu bildiğinize göre, sunucuyu kuralım:
Sunucuya Yapılandır
İlk adım, sunucuya erişim elde etmektir. Sunucunuza SSH'nin etkinleştirildiğinden ve daha kolay oturum açmak için eklenmiş anahtarlara sahip olduğunuzdan emin olun.
ssh [email protected][e-posta korumalı]:~$
Sunucuya eriştikten sonra gerekli paketleri ve kitaplıkları kurmaya başlayabiliriz. Öncelikle sunucunuzun güncel olduğundan emin olun:
sudo apt-get güncellemesisudo apt-get yükseltme -y
Gerekli Yazılımı Yükleme
Akış sunucusunu kurmak için kaynaktan Nginx oluşturmamız ve RTMP modülünü etkinleştirmemiz gerekecek. Bunun için build-essentials ve diğer paketleri kullanacağız. Tüm bağımlılıkları yüklemek için aşağıdaki apt komutunu kullanın.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devBir sonraki adım, Nginx'i RTMP modülü etkinken derlemek ve kurmaktır. Düzenli kalmak için süreç için bir dizin oluşturun.
mkdir ~/Yapcd ~/Yap/
Ardından, nginx-RTMP modülünü klonlayın:
git klon git://github.com/arut/nginx-rtmp-modülü.gitŞimdi nginx'i indirmemiz gerekiyor.
http://nginx'e gidin.org/tr/indir.html ve indirme seçeneğinizi seçin.
wget http://nginx.org/download/nginx-1.19.8.katran.gzkatran xzf nginx-1.19.8.katran.gz
cd nginx-1.19.8
Bu bölümdeki son adım, Nginx'i RMTP modülü etkinken derlemektir. Aşağıdaki komutları kullanın:
sudo ./configure --with-http_ssl_module --add-module=… /nginx-rtmp-modulesudo yapmak
sudo kurulum yap
Canlı Akışı Ayarlama
RTMP desteğini etkinleştirmek için nginx yapılandırma dosyasını düzenlememiz ve RTMP bloğunu belirtmemiz gerekiyor.
sudo nano /usr/local/nginx/conf/nginx.konfRTMP destek bloğunu şu şekilde girin:
rtmpsunucu
1935'i dinle;
30'lara ping atmak;
uygulama canlı
yaşamak;
araya girmek;
açık;
hls_path /tmp/hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type application/octet-stream;
sunucu
80 dinle;
konum /tv
kök /tmp/hls;
türler
uygulama/vnd.elma.mpegurl m3u8;
video/mp2t ts;
metin/html html;
Yukarıdaki konfigürasyonda RTMP modülünü ve HLS'yi etkinleştiriyoruz. DASH'in nasıl etkinleştirileceğini öğrenmek için belgeleri inceleyin.
Yapılandırmayı yaptıktan sonra dosyayı kaydedin ve Nginx hizmetini başlatın.
sudo /usr/local/nginx/sbin/nginxAkışı Başlat
Her şeyi doğru bir şekilde yapılandırdıktan sonra, FFmpeg'i kullanarak akışa başlayabilirsiniz - bu en kolayı. OBS stüdyosu gibi diğer araçları da yapılandırabilirsiniz, ancak bu eğitimde bunu ele almayacağım.
FFmpeg komutunu şu şekilde kullanın:
sudo ffmpeg -re -i örnek-mp4 dosyası.mp4 -c kopya -f hls rtmp://localhost/live/streamKaynakta FFplay veya VLC Media player kullanarak akışı oynatın.
ffplay rtmp://IP/canlı/akışAkışı çalıştırdıktan sonra, hizmeti bir dış ağa sunabilirsiniz.
NOT: Herkese açık erişime izin vermeden önce sunucunuzun güvenliğini sağladığınızdan emin olun.
Sonuç
Bu eğitici, Nginx ve Nginx RTMP modülünü kullanarak bir akış sunucusunun nasıl kurulacağını ele almıştır. Bir akış hizmetinin kurulmasıyla ilgili birçok donanım olduğunu ve bunu ihtiyaçlarınıza göre özelleştirebileceğinizi unutmayın.
Daha fazlasını keşfetmek için aşağıdaki kaynakları göz önünde bulundurun.
- https://ffmpeg.kuruluş/ffmpeg.html
- https://ffmpeg.kuruluş/ffplay.html
- https://ffmpeg.org/ffmpeg-formatları.html
- https://obsproject.com/belgeler/
- https://wiki.video programı.kuruluş/Belgeler:Streaming_HowTo