format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightNginx RTMP Modülü ile Kendi Canlı Yayın Sunucunuzu Kurun
- arrow_rightNginx RTMP Modülü Nedir?
- arrow_rightNginx RTMP Modülünün Avantajları
- arrow_rightSunucu Gereksinimleri ve Hazırlık
- arrow_rightUbuntu/Debian Üzerinde Nginx RTMP Kurulumu
- arrow_right1. Adım: Sistem Güncellemesi
- arrow_right2. Adım: Gerekli Paketlerin Yüklenmesi
- arrow_right3. Adım: Nginx ve RTMP Modülünün Derlenmesi
- arrow_right4. Adım: Nginx Yapılandırması
- arrow_right5. Adım: Nginx'i Başlatma
- arrow_rightCentOS/Rocky Linux Üzerinde Kurulum
- arrow_rightOBS Studio ile Yayın Bağlantısı
- arrow_rightHLS Adaptasyonu ve Oynatma
- arrow_rightVideo.js ile Oynatma
- arrow_rightGüvenlik Yapılandırması
- arrow_rightRTMP Kimlik Doğrulama
- arrow_rightGüvenlik Duvarı Kuralları
- arrow_rightPerformans Optimizasyonu
- arrow_rightBant Genişliği Yönetimi
- arrow_rightLinux Kernel Optimizasyonu
- arrow_rightYayın Senaryoları ve Kullanım Alanları
- arrow_rightSSL/TLS ile Güvenli Yayın
- arrow_rightOrtak Sorunlar ve Çözümleri
- arrow_rightYayın Gecikmeli Açılıyor
- arrow_rightBağlantı Reddediliyor Hatası
- arrow_rightDüşük Kalite veya Kesintiler
Nginx RTMP Modülü ile Kendi Canlı Yayın Sunucunuzu Kurun
Canlı yayın teknolojilerinin hızla geliştiği günümüzde, Twitch, YouTube Live veya Facebook Live gibi platformlara bağımlı kalmadan kendi sanal sunucunuz üzerinden canlı yayın yapmak hem maliyet kontrolü hem de teknik özgürlük açısından büyük avantajlar sunmaktadır. Nginx RTMP modülü, bu ihtiyacı karşılamak için en popüler ve güvenilir çözümlerden biridir.
Nginx RTMP Modülü Nedir?
Nginx RTMP (Real-Time Messaging Protocol) modülü, Nginx web sunucusuna canlı akış (streaming) yetenekleri ekleyen bir third-party modüldür. Bu modül sayesinde sunucunuz bir RTMP sunucusu olarak çalışabilir ve OBS Studio, vMix gibi yazılımlardan gelen canlı yayınları alıp HLS (HTTP Live Streaming) formatına dönüştürebilir.
Araştırmalara göre, 2024 yılında internet trafiğinin %82'si video içeriklerinden oluşmaktadır ve bu oran 2027'ye kadar %90'ı aşması beklenmektedir. Bu durum, kişisel ve kurumsal yayıncılık için özel streaming sunucularının önemini artırmaktadır.
Nginx RTMP Modülünün Avantajları
- Düşük Gecikme: RTMP protokolü milisaniye düzeyinde gecikme süreleri sunar
- Maliyet Etkinliği: Aylık abonelik ücreti ödemeden kendi altyapınızı kullanırsınız
- Özelleştirme: Yayın URL'leri, kimlik doğrulama ve bant genişliği kontrolü tamamen sizde
- Ölçeklenebilirlik: Sunucu kaynaklarınızı ihtiyacınıza göre artırabilirsiniz
- Yedekleme: Yayınlarınızı kaydedip daha sonra istediğiniz gibi paylaşabilirsiniz
Sunucu Gereksinimleri ve Hazırlık
Kendi canlı yayın sunucunuzu kurmadan önce donanım ve yazılım gereksinimlerini anlamanız önemlidir. Minimum gereksinimler aşağıdaki tabloda detaylı olarak gösterilmiştir:
| Özellik | Minimum | Önerilen |
|---|---|---|
| İşlemci | 2 çekirdek | 4+ çekirdek |
| RAM | 4 GB | 8 GB+ |
| Depolama | 50 GB SSD | 100 GB+ NVMe |
| Bant Genişliği | 100 Mbps | 1 Gbps |
| İşletim Sistemi | Ubuntu 20.04 / CentOS 8 | Ubuntu 22.04 / Debian 12 |
Önemli Not: Canlı yayın sunucusu olarak depolama sunucusu seçeneklerini de değerlendirebilirsiniz. Yayın kalitesi ve eşzamanlı izleyici sayısı arttıkça kaynak ihtiyacı da orantılı olarak artacaktır.
Ubuntu/Debian Üzerinde Nginx RTMP Kurulumu
Aşağıda adım adım Ubuntu 22.04 üzerinde Nginx RTMP modülünün kurulum sürecini bulabilirsiniz:
1. Adım: Sistem Güncellemesi
Öncelikle sunucunuzun güncel olduğundan emin olun:
sudo apt update && sudo apt upgrade -y
2. Adım: Gerekli Paketlerin Yüklenmesi
Build araçları ve bağımlılıkları yükleyin:
sudo apt install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev git
3. Adım: Nginx ve RTMP Modülünün Derlenmesi
Nginx kaynak kodunu ve RTMP modülünü indirip derleyin:
# Nginx kaynak kodunu indir
cd /opt
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -xzf nginx-1.24.0.tar.gz
# RTMP modülünü klonla
git clone https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git
# Nginx'i RTMP modülü ile derle
cd nginx-1.24.0
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module
make
sudo make install
4. Adım: Nginx Yapılandırması
Nginx yapılandırma dosyasını düzenleyin:
sudo nano /usr/local/nginx/conf/nginx.conf
Dosyanın sonuna aşağıdaki RTMP yapılandırmasını ekleyin:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# HLS Ayarları
hls on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 3;
hls_playlist_length 60;
}
}
}
http {
server {
listen 8080;
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp4 ts;
}
root /usr/local/nginx/html;
add_header Cache-Control no-cache;
}
}
}
5. Adım: Nginx'i Başlatma
Servisi başlatın ve otomatik başlamasını sağlayın:
sudo /usr/local/nginx/sbin/nginx
Sunucunun çalıştığını doğrulamak için:
ps aux | grep nginx
CentOS/Rocky Linux Üzerinde Kurulum
CentOS veya Rocky Linux üzerinde kurulum için aşağıdaki adımları izleyin:
# Development tools ve bağımlılıkları yükle
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y pcre-devel openssl-devel zlib-devel git
# Nginx ve RTMP modülünü derle (yukardaki 3. adımdan devam)
Bu aşamada sanal sunucu kaynak limitleri ve performans testleri yaparak sunucunuzun yayın kapasitesini belirlemenizi öneriyoruz.
OBS Studio ile Yayın Bağlantısı
Sunucunuzu kurduktan sonra OBS Studio'da yayın ayarlarını yapılandırmanız gerekir. Bu adımları takip edin:
- OBS Studio'yu açın ve Ayarlar > Yayın sekmesine gidin
- Hizmet olarak Özel... seçeneğini işaretleyin
- Sunucu alanına
rtmp://sunucu-ip-adresi:1935/liveyazın - Akış Anahtarı alanına yayın ID'nizi girin (örneğin:
test) - Değişiklikleri kaydedin ve Yayınayı Başlat düğmesine tıklayın
HLS Adaptasyonu ve Oynatma
RTMP protokolü modern tarayıcılarda doğrudan desteklenmediğinden, yayınlarınızı HLS formatına dönüştürerek web üzerinden izleyicilere sunmanız gerekir. Yukarıdaki yapılandırma zaten HLS'i aktive etmektedir.
Video.js ile Oynatma
Yayınınızı web tarayıcısında oynatmak için Video.js kütüphanesini kullanabilirsiniz:
<link href="https://vjs.zencdn.net/8.0.0/video.min.css" rel="stylesheet" /> <script src="https://vjs.zencdn.net/8.0.0/video.min.js"></script> <video id="my-video" class="video-js" controls preload="auto" width="640" height="360"> <source src="http://sunucu-ip-adresi:8080/hls/test.m3u8" type="application/x-mpegURL" /> </video>Güvenlik Yapılandırması
Canlı yayın sunucunuzun güvenliği kritik öneme sahiptir. Aşağıdaki önlemleri almanızı öneriyoruz:
RTMP Kimlik Doğrulama
Yayın erişimini korumak için temel kimlik doğrulama ekleyin:
rtmp { server { listen 1935; application live { live on; on_publish http://localhost:8080/auth; deny play all; } } }Güvenlik Duvarı Kuralları
sudo ufw allow 1935/tcp sudo ufw allow 8080/tcp sudo ufw enableSunucularda 2FA (İki Faktörlü Kimlik Doğrulama) kullanmak hesap güvenliğinizi önemli ölçüde artıracaktır.
Performans Optimizasyonu
Yüksek kaliteli yayın deneyimi için sunucu optimizasyonu şarttır. İşte kritik ayar noktaları:
Bant Genişliği Yönetimi
rtmp { server { listen 1935; application live { live on; max_connections 100; # Bitrate sınırlaması push rtmp://localhost:1935/transcode; } } }Linux Kernel Optimizasyonu
# Ağ performansı için sysctl ayarları echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf sysctl -pSunucu fan gürültüsü ve ısınma sorunları için sunucu fan kontrol rehberimizi inceleyebilirsiniz.
Yayın Senaryoları ve Kullanım Alanları
Nginx RTMP modülü ile kurduğunuz sunucu çeşitli senaryolarda kullanılabilir:
Kullanım Alanı Açıklama Önerilen Kaynak Eğitim Platformları Canlı dersler ve webinarlar 4GB RAM, 2 CPU Oyun Yayıncılığı Twitch alternatifi özel sunucu 8GB RAM, 4 CPU Kurumsal Sunumlar Şirket içi canlı etkinlikler 4GB RAM, 2 CPU Dinazor TV 7/24 otomatik yayın 8GB RAM, 4 CPU Oyun sunucuları için oyun sunucuları kategorimizde özel çözümler de sunuyoruz. Özellikle Terraria sunucu ve 7 Days to Die sunucu kurulumlarında bu altyapıyı entegre edebilirsiniz.
SSL/TLS ile Güvenli Yayın
Modern web standartları gereği HTTPS üzerinden yayın yapmanız önerilir. Let's Encrypt ile ücretsiz SSL sertifikası kurabilirsiniz:
# Certbot yükleme sudo apt install -y certbot python3-certbot-nginx # Sertifika alma sudo certbot -d streaming.domain.com --nginx -d www.streaming.domain.comHTTP/3 ve modern protokoller hakkında detaylı bilgi için HTTP3 rehberimizi inceleyebilirsiniz.
Ortak Sorunlar ve Çözümleri
Yayın Gecikmeli Açılıyor
Bu sorunu çözmek için hls_fragment ve hls_playlist_length değerlerini düşürün:
hls_fragment 1; hls_playlist_length 10;Bağlantı Reddediliyor Hatası
Güvenlik duvarı ve port ayarlarını kontrol edin:
sudo ufw status sudo netstat -tlnp | grep 1935Düşük Kalite veya Kesintiler
Bant genişliği sınırlamalarını ve sunucu kaynaklarını kontrol edin.