Bilgisayarınızdan İnternete Canlı Yayın Çıkmak

Canlı yayın çıkmak için bildiğiniz gibi alternatif olarak bir sürü yöntemler, uygulamalar mevcut. Bunların yanında donanım olarak bağlanabildiğimiz ve internete bağlayabildiğmiz herhangi bir kameradan, ses cihazından ya da herhangi bir görüntü alan cihazdan canlı yayın çıkabiliriz. Şimdi ise, kendi imkanlarımızla kendi bilgisayarımızın kamerasından canlı yayın çıkacağız.

Bunun için ihtiyacımız olanlar,

  • Kamerası olan bilgisayar
  • FFmpeg
  • İnternet
  • Local ya da dışardan bir web sunucusu

İlk aşama olarak daha önceden de bahsetmiştik ama FFmpeg’in komut yapısından bahsedelim.

ffmpeg -i avi_video.avi mpg_video.mpg

Yukardaki işlemde -i ile input olarak avi uzantılı bir video kullanıyoruz ve bunu mpg uzantılı bir dosyaya convert ediyoruz. Başka bir örnek vermek gerekirse;

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

Bu örnekte ise, avi dosyamız ile son.wav dosyasını mix ederek mpg formatında başka bir dosyaya convert ediyoruz.

Tabi mpg oluştururken istediğiniz video encoder, audio encoder parametrelerini ekleyebilir, videonun çözünürlüğünü de değiştirebilirsiniz.

Daha fazla bilgi için : https://ffmpeg.org/ffmpeg.html

Şimdi bu örnekte ihtiyacımız olan birkaç bilgi var,

  • İnput olarak kamerayı nasıl alacağız
  • İnput olarak sesi nasıl bağlayacağız
  • Canlı yayın olarak nasıl internete çıkacağız

Öncelikle, kameraya nasıl ulaşacağımızdan bahsedelim, ffmpeg kullanarak aşağıdaki komut ile bilgisayarınızdaki cihazlara erişebilirsiniz

ffmpeg -list_devices true -f dshow -i dummy

Bu komutun çıktısı aşağıdaki gibi olacak (Benim bilgisayarım için)

Yukarda gördüğünüz gibi kamera ve ses kayıt cihazına erişmiş olduk. Şimdi bu cihazlara ait bilgileri elde edelim.

Listelemede görüldüğü üzere bilgisayarıma bağlı olan kameranın ismi USB2.0 UVC HD Webcam. Şimdi bu donanıma ait bilgileri elde etmek için aşağıdaki komutu çalıştıralım.

ffmpeg -f dshow -list_options true -i video=”USB2.0 UVC HD Webcam”

Bu komutun çıktısı da aşağıdaki gibi olacak.

Son olarak internete stream çıkmak kaldı. Bunun için bahsettiğim gibi (test etmek amaçlı) kendi bilgisayarınızda sanal makine vasıtası ile bir sunucu oluşturabilir ya da internet üzerinde sanal sunucu veren sitelerden bir sunucu alabilirsiniz.

Örneğin : https://www.cloudeos.com kullanabilirsiniz.

Stream çıkmak için, sunucunuza kurmanız gereken bir yazılım var. Bu yazılım kabaca, sizin gönderdiğiniz yayını alıp, işleyip HLS canlı yayın haline getirecek.

Bu bahsettiğim yazılım için şunu kullanabilirsiniz : https://github.com/arut/nginx-rtmp-module

Gerekli dökümantasyon zaten kendi sayfasında mevcut.

Stream’i FFmpeg ile nasıl çıkacağımzdan bahsetmenden önce başka bir örnekten bahsedelim, kameradan aldığımız görüntüyü bilgisayarımıza kaydetmek. Bunun için aşağıdaki komutu kullanabiliriz.

ffmpeg -f dshow -i video="USB2.0 UVC HD Webcam" -vf scale=1920:1080 -vcodec libx264 -r 60.97 -acodec libvo_aacenc -ac 2 -ar 44100 -ab 128 -pix_fmt yuv420p -tune zerolatency -preset ultrafast out.mp4

Kameradan aldığımız görüntüyü 1080p olarak out.mp4 dosyasına kaydediyoruz.

Şimdi kendi bilgisayarımızdan aldığımız yayını FFmpeg ile nasıl sunucuya yollayacağız ona bakalım.

ffmpeg -f dshow -i video="USB2.0 UVC HD Webcam" -vf scale=1920:1080 -vcodec libx264 -r 60.97 -acodec libvo_aacenc -ac 2 -ar 44100 -ab 128 -pix_fmt yuv420p -tune zerolatency -preset ultrafast  -f flv rtmp://<SUNUCU_IP>:1935/<STREAM_APP_ISMI>/<STREAM_ISMI>

Son olarak, görüntüyü aşağıdaki gibi görebiliriz.