RTMP sunucusu kurulumu ve yayın yapma
11 ay önce#makalelerRTMP açılımıyla Real-Time Messaging Protocol yani Türkçe anlamıyla Gerçek Zamanlı Mesajlaşma Protokolü dediğimiz olayı birçok televizyon kanalının internet siteleri üzerinden yayın yapmak için kullandıkları, aynı zamanda Twitch, Dlive tarzında platformların kullanıcıların yayın yapması için onlara sundukları altyapı olarak tanımlayabiliriz.
Bugün bu yazımızda kendi bilgisayarımızı ya da sunucumuzu RTMP sunucusuna nasıl çevirebiliriz onu anlatacağım. Bu sayede kendi altyapınızı kullanarak isterseniz internet sitenizden ya da telefon uygulamanızdan insanlara public şekilde yayınlar yapabilir, isterseniz sadece arkadaşlarınızın görebileceği yayınlar düzenleyebilirsiniz.
Anlatıma başlamadan önce bu yöntemi iyi amaçlar için kullanmanızı öneririm. Örnek vermek gerekirse Discord'da arkadaşlarınıza yayın açarken piksellerde kötüleşme olabiliyor. Kendi RTMP sunucunuz üzerinden kesintisiz ve yüksek kaliteli bir yayın sunabilirsiniz onlara. Kesinlikle bu olayı kaçak maç yayını yapma gibi şeylerde kullanmanızı tavsiye etmiyorum. Bu tür şeylerin ağır cezaları vardır ayrıyeten etik bir davranış değildir.
1.Kurulum
Kendi RTMP sunucumuzu kurmak için Nodejs kullanacağız. Bilgisayarınızda ya da sunucunuzda Nodejs 12 veya üzerinde bir sürümün yüklü olduğundan emin olun. Eğer Nodejs yüklü değilse aşağıdan kendinize uygun yolu kullanarak Nodejs kurulumunu gerçekleştirebilirsiniz.
Windows
Otomatik yükleme sihirbazı ile kolayca kurulum yapmak için setup dosyasını buraya tıklayarak indirebilirsiniz.
Linux Centos 7
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install nodejs
Linux Centos 8
sudo dnf module enable nodejs:12
sudo dnf install nodejs
Ubuntu 18.04 ve Üzeri
sudo apt update
sudo apt install nodejs
sudo apt install npm
Artık RTMP kullanacağımız cihazda NodeJS yüklü olduğuna göre şimdi npm komutuyla gerekli olan modülümüzü yükleyebiliriz. Fakat bunun yerine yükleyeceğimiz Node Media Server'ı github üzerinden hazır çekeceğiz. Bu sayede hem kurulumu daha çok kolay olacak hem de bizlere basit bir yönetim paneli sunacak. Modülümüzü buradaki bağlantıya giderek github üzerinden cihazımıza indirelim.
Modülümüzü cihazımıza çektiğimize göre bilgisayar ya da sunucunuzda hangi terminal üzerinden işlem yapıyorsanız terminalimizi açalım. CD komutuyla indirdiğimiz klasörün içerisine giriyoruz. Gerekli olan son birkaç şeyi yüklemesi için terminal üzerinden npm install komutunu çalıştırıyoruz.
2.Çalıştırma
Servisi başlatmak için hazırız. Sunucumuza indirdiğimiz Node Media Server'a start vermek için terminalimize npm start yazıyoruz. Bizi aşağıdaki şekilde bir ekran karşılayacak.
Şu anda RTMP servisimiz başlamış durumda. Canlı yayın yapmak için hazır konumdayız. İsterseniz bilgisayarınız üzerinde OBS programından isterseniz cep telefonlarınızın uygulama mağazası üzerinde bulunan çeşitli RTMP yayın uygulamaları üzerinden canlı yayına başlayabilirsiniz. Kullandığınız programlara yayın anahtarını nasıl girmeniz gerektiğini aşağıya bırakıyorum.
Yayın Tipi: Özel Yayın Sunucusu
Yayın URL: rtmp://localhost/live
Yayın anahtarı: yayin_adi
OBS ya da kullanacağınız yazılıma yayın ayarlarını bu şekilde ayarladığınızda sorunsuz şekilde yayına girebilirsiniz. Yayına girip girmediğinizi kontrol etmek için localhost:8000/admin adresinden yönetim paneline giriş yapmamız yeterli. Eğer sunucu üzerine kurduysanız hem Yayın URL hem de yönetim paneline erişim kısmındaki localhost değerini sunucunuzun ip adresi ile değiştirin. Yönetim paneli kullanıcı adı ve şifresi admin'dir. Doğru şekilde giriş yaptığınızda aşağıdaki şekilde bir ekran karşılayacak sizi.
Eğer yayına başarılı bir şekilde giriş yaptıysanız yukarıdaki görselde yer alan Streams sekmesine girdiğinizde yayın adınızı göreceksiniz. Yayın adınızın üzerine bastığınızda yayınınızın nasıl göründüğünü izleyebilirsiniz.
3.Dağıtım
Kurulumu sorunsuz yaptık, servisimizi sorunsuz başlattık ve yayına sorunsuz girdik. Şimdi son aşamaya geldik, insanlar bu yayınımızı nasıl izleyecekler? Yayını insanlara web sitemiz üzerinden izletmeyi planlıyorsak HTTP-FLV formatında sunacağız. Ayrıca VLC gibi video oynatıcı programları uzaktan ortam oynatma özelliklerinde HTTP-FLV formatını da desteklemektedir.
HTTP-FLV Yayın Linki
http://localhost:8000/live/yayin_adi.flv
HTTP-FLV Player Örneği
Sitemizde sorunsuz şekilde yayını dağıtmak için FLV.js kullanacağız. Dosyaları hostunuza çekmenize gerek yok, gerekli JavaScript dosyalarını CDN yardımıyla uzaktan çekeceğiz. Sadece kod içerisinde yer alan yayın linki kısmını düzenlemeniz yeterli.
<script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js"></script>
<video id="videoElement"></video>
<script>
if (flvjs.isSupported()) {
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
url: 'http://localhost:8000/live/yayin_linki.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
flvPlayer.play();
}
</script>
Yukarıdaki kodu sitenizde uygun bir yere ekleyerek sitenize giren kişilerin yayını sorunsuz şekilde izlemesini sağlayabilirsiniz. Yayını cep telefonu uygulaması vesaire gibi başka platformlarda dağıtmak istiyorsanız onun için de farklı yayın linki formatlarını aşağıya ekliyorum.
RTMP
rtmp://localhost/live/yayin_linki
Websocket-FLV
ws://localhost:8000/live/STREAM_NAME.flv
HLS
http://localhost:8000/live/STREAM_NAME/index.m3u8
DASH
http://localhost:8000/live/STREAM_NAME/index.mpd
Yazımızın sonuna geldik. Umarım faydalı bir yazı olmuştur, RTMP sunucusu kurmak isteyenlerin işini göreceğini umut ediyorum. Terminal görseli kafanızı karıştırmasın ben kurulumu Windows 11 sürümü üzerinde gerçekleştirdim. Yazıyı bitirmeden son olarak sunucu ve yayın istatistiklerine ulaşmanız için gerekli linkleri aşağıya bırakıyorum.
Sunucu istatistik bilgileri için http://localhost:8000/api/server
Yayın istatistik bilgileri için http://localhost:8000/api/streams