Nginx medya dosyalarını (video, ses) yayınlama nasıl yapılır?

Nginx Nedir?

Nginx, yüksek performanslı, açık kaynaklı bir web sunucusu ve ters proxy sunucusudur. HTTP, HTTPS, SMTP, POP3 ve IMAP protokollerini destekler. Yüksek verimlilik, düşük bellek kullanımı ve genişletilebilirlik gibi özellikleri nedeniyle popüler bir seçimdir. Nginx, statik dosyaların sunulmasında oldukça etkilidir ve medya dosyalarının akışında da başarılı sonuçlar verir.

Nginx Kurulumu

Nginx’in medya dosyalarını akışa almak için ilk önce sunucuda Nginx’in kurulu olması gerekmektedir. Nginx, çoğu Linux dağıtımı için varsayılan paket yöneticisi aracılığıyla kurulabilir. Örneğin, Ubuntu veya Debian tabanlı sistemlerde aşağıdaki komutlarla Nginx kurulumu gerçekleştirilebilir:

“`bash
sudo apt update
sudo apt install nginx
“`

Kurulumdan sonra Nginx’i başlatmak için aşağıdaki komut kullanılabilir:

“`bash
sudo systemctl start nginx
“`

Nginx’in varsayılan ayarlarını kontrol etmek için tarayıcıda `http://localhost` adresine gidilerek Nginx’in varsayılan karşılama sayfası görüntülenebilir.

Medya Dosyalarının Yerleştirilmesi

Öncelikle, yayınlanacak medya dosyalarının (video ve ses) bir dizine yerleştirilmesi gerekmektedir. Medya dosyalarının konulacağı dizin, Nginx yapılandırma dosyasında belirtilmelidir. Örneğin, `/usr/share/nginx/html/media` dizini oluşturulabilir ve medya dosyaları bu dizine yerleştirilmelidir:

“`bash
sudo mkdir -p /usr/share/nginx/html/media
“`

Nginx Yapılandırması

Nginx’in medya dosyalarını doğru bir şekilde sunabilmesi için yapılandırma dosyasında gerekli ayarlamaların yapılması gerekmektedir. Yapılandırma dosyası genellikle `/etc/nginx/sites-available/default` veya `/etc/nginx/nginx.conf` konumundadır. Aşağıdaki örnek yapılandırma, medya dosyalarının sunulması için basit bir ayar sağlamaktadır:

“`nginx
server {
listen 80;
server_name example.com;

location /media/ {
alias /usr/share/nginx/html/media/;
autoindex on;
}
}
“`

Bu yapılandırma ile `example.com/media/` adresine gelen isteklerde `/usr/share/nginx/html/media/` dizinindeki dosyalar sunulacaktır. Autoindex özelliği, dizinde bulunan dosyaların liste halinde görüntülenmesini sağlar.

Yapılandırma dosyasında değişiklik yapıldıktan sonra, Nginx’in bu değişiklikleri algılaması için yeniden başlatılması gerekmektedir:

“`bash
sudo systemctl restart nginx
“`

Akış Protokolleri

Nginx, medya dosyalarının akışı için çeşitli protokolleri desteklemektedir. Web tabanlı uygulamalar için en yaygın kullanılan protokoller HTTP Live Streaming (HLS) ve Dynamic Adaptive Streaming over HTTP (DASH) protokolleridir. HLS, Apple tarafından geliştirilen bir protokoldür ve video akışında geniş bir kullanıcı kitlesine ulaşmak için idealdir. Nginx ile HLS akışı için gerekli modüllerin kurulması ve yapılandırması gerekmektedir.

HLS Akışı için Nginx Modülü

HLS desteği için `nginx-rtmp-module` modülünün kurulumuna ihtiyaç vardır. Bu modül, Nginx aracılığıyla RTMP (Real-Time Messaging Protocol) akışı sağlar. Kurulum için aşağıdaki adımlar izlenebilir:

1. Nginx ve RTMP modülünü sistemde yüklemek için gereken araçların ve bağımlılıkların kurulması:

“`bash
sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev git
“`

2. Nginx ve RTMP modülünün indirilmesi ve derlenmesi:

“`bash
cd /usr/local/src
git clone https://github.com/arut/nginx-rtmp-module.git
wget http://nginx.org/download/nginx-1.x.xx.tar.gz Uygun versiyonu ekle
tar -zxvf nginx-1.x.xx.tar.gz
cd nginx-1.x.xx
./configure –with-http_ssl_module –add-module=../nginx-rtmp-module
make
sudo make install
“`

3. RTMP modülü yapılandırmasının Nginx yapılandırma dosyasına eklenmesi:

“`nginx
rtmp {
server {
listen 1935;
chunk_size 4096;

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

4. HLS akışının yapılandırılması:

“`nginx
server {
listen 8080;

location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /usr/share/nginx/html;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin ;
}
}
“`

Medya Yayınlama

Yapılandırma tamamlandıktan sonra, medya dosyaları akışı başlatılabilir. HLS akışı için, örneğin FFmpeg gibi bir araç kullanılarak bir videodan HLS formatında stream oluşturulabilir:

“`bash
ffmpeg -i yourvideo.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls /usr/share/nginx/html/hls/yourvideo.m3u8
“`

Bu komut, `yourvideo.mp4` dosyasını HLS formatında `yourvideo.m3u8` olarak dönüştürecektir.

İstemci Tarafında Yayının İzlenmesi

Kullanıcılar, oluşturulan HLS akışına tarayıcıları üzerinden veya HTML5 video etiketi kullanarak erişebilir. Örneğin:

“`html

“`

Bu şekilde, Nginx ile video ve ses dosyalarının başarılı bir şekilde yayınlanması sağlanabilir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR