Artık insanlar internetin gelişmesi ile birçok işlemi internet üzerinden kolaylıkla yapabilmektedir. Bu işlemler banka işlemleri, kitap okumak, oyun oynamak, video izlemek gibi daha birçok örnek verebileceğimiz eğlence veya iş ile alakalı durumlarda kullanabiliriz.Artık insanlar internet üzerinden oyun videoları (yayınları), öğrenmek için eğitici videolar gibi birçok şeyi kolaylık bulup video veya canlı yayın olarak izleyebiliyor. Peki bu nasıl oluyor gibi sorulara cevap verelim.
HLS (HTTP Live Streaming) Nedir?
HLS nedir? (HTTP Live Streaming) Türkçe karşılığı ise HTTP canlı akışı anlamına gelmektedir. HLS Apple şirketi tarafından geliştirilmiş bir video protokolüdür. Bu protokol ile canlı yayınlar ve video on-demand yani talebe (isteğe) bağlı videoları set-top-box kutusuyla (bilgisayar, telefon, tablet gibi cihazlardan uydu kalitesinde video izleme anlamına gelmektedir) çalışabilen ve HTTP tabanlı yayın iletme protokolüdür.
HLS'nin amacı izlenilen videonun kesintisiz bir biçimde ilerlemesini, en iyi kaliteyi verebilmek için izlenilen videonun bit hızını videoyu izleyen kişinin ağ koşullarına göre çalıştırabilmesini hedeflemektedir.
HLS günümüzde artık çoğu internet üzerinden video ile alakalı platformlarının kullandığı en önemli video protokollerden biri haline gelmiştir.
Bunun en büyük sebebi ise günümüzde flash devrinin sona ermesi ile alakalıdır. Çünkü flash devri büyük saldırılara karşı savunmasız, HTML 5'in yaygınlaşması nedeni ile flash günümüzün çok gerisinde kalmıştır. Günümüze ayak uyduran HLS artık flash'ın yerini büyük bir ölçü de almıştır.

HLS Protokolünün Avantajları Ve Dezavantajları Nelerdir?
Avantajları
HLS protokolü tüm cihazlarda ve işletim sistemlerinde rahatça çalışabilir gibi bir özelliği vardır. Böylece kişi hangi cihazdan (telefon, tablet, televizyon, vb.) ve hangi işlerim sistemi olursa olsun (Windows, Linux, vb.) kolaylıkla istediği videoyu izleyecektir.
HLS, internet ortamında uzun süreli videolar yayımlamak için en uygun protokolüdür.
HLS flash'a göre çok daha güvenilir, saldırılara karşı savunmalı bir protokolüdür.
HLS ile videoyu izlemek isteyen kişi şifreleme ve kimlik doğrulaması (netflix'te ki hesap güvenlikleri örnek gösterilebilir) gibi izleyici güvenliğini bizlere sunar.
HLS hem canlı yayınlarda (videolarda) hem de istek üzerine videolarda izleyicinin o anki ağ kalitesine göre daha net ve pikselliği yüksek videoları uyarlanabilir. Video izlerken ağ kalitesi düşer ise anında video kalitesi de düşecektir.
İçerikler HTTP protokolü tarafından iletir, HLS için HTTP bir yardımcı ağ protokolüdür. Bu yüzden ağ türü farketmeksizin herhangi bir ağda hiçbir problem yaratmadan kolaylıkla çalışmaktadır.
HLS HTTP yardımı ile çalıştığı için RTSP (Real Time Streaming Protocol/Gerçek Zamanlı Akış Protokolü) ve RTMP (Real-Time Messaging Protocol/Gerçek Zamanlı Mesajlaşma Protokolü) protokollerine göre
bağlantı noktalarını farklı ve karmaşık bir biçimde özelleştirilmesine gerek duyulmaz.
Dezavantajları
HLS'nin çok da fazla bir dezavantajı yoktur. Tek bir sorun vardır ki o da kalitenin gecikmeden daha önemli olmasıdır. Yani bir canlı yayın izliyorsunuz, izlerken video kaliteniz oldukça iyi ama canlı yayını 5 saniye ile 1 dakika arasında gecikmeli olarak izliyorsunuz. Bu durumda HLS'nin en göze batan dezavantajıdır.

HLS'nin Bileşenleri Nelerdir?
Kodyalıcılar
Kodlayıcılar, videoyu belirli parçalara bölerek her bir kaliteye bir videoda bulunan tüm parçaları ve veri akışını kodlamak ile görevlidir.
Edge Sunucular
HLS, videoları gerekli ayarları yaptıktan sonra Edge sunucularına iletir ve bu videolar Edge sunucularında depolanır.
Kullanıcı
HLS'nin son bileşinidir, kullanıcının özelliklerine göre Edge sunucuda bulunan oynatıcılardan en uygununu bulur ve kullanıcıya iletmek ile görevlidir.

HLS'nin Çalışma Mantığı
Bu protokolde bir video direkt olarak izleyiciye sunulmaz çünkü HLS videoları kalite seviyelerine göre kodlar.
Yani bir videoda farklı kalite çeşitleri sunulması için aynı videoyu birden çok örneği olur. Standart bir videoda olan kalite seviyeleri şunlardır,
144p
240p
360p
480p
720p
Bu kalite seviyeleri standart bir videoda olan seviyelerdir. Bazı videolarda ise 4k gibi yüksek kalite seviyeleri de eklenmektedir.
Videoda bulunan kalite seviyeleri belirlendikten sonra video her 5-10 saniye civarlarında bölünür. 30 dakikalık bir videoyu düşünürsek epey fazla bir kısa video dilimleri ortaya çıkacaktır. Peki niçin böyle bir işlem oluyor derseniz,videoyu izleyen kişi 5-10 saniye videoyu ileri veya geri almak isteyebilir. Eğer fark ederseniz videoyu uzun bir süre ileri aldığınızda videonun devam etmesi uzun sürer lakin 10 saniye ileri aldığınızda kısa bir sürede video devam etmektedir lakin bu işleme ağ hızı da etki etmektedir.
Oluşturulan kısa video parçaları için oynatma listeleri oluşturulur. Bu oynatma listeleri için ise index dosyası oluşturulur. Oluşturulan index dosyası ve oynatma listeleri sonu .ts uzantılı video dilimleri haline getirilir. Bu dilimler ise videoyu bize iletecek olan Edge sunucusuna aktarılır.

Tarayıcımızda videoyu açtığımızda ise sayfada bulunan video player anında internet hızımızı, ekran çözünürlüğünü hesaplamaya başlar. Video player internet hızımızı ve ekran çözünürlüğümüzü öğrendi an bizim ekran çözünürlüğüne ve internet hızımıza göre uygun olan oynatma listesini (kaliteyi) Edge sunucusundan bize sunacaktır.

HLS çalışma mantığına görselli bir örnek
Adaptive Yayın Nedir?
Bir videoya girdiğimizi varsayalım, video player bizim ekran çözünürlüğünü ve ağ hızımızı hesapladı ve bize en uygun kaliteyi verdi. Bu kalitede izlerken ağ hızımız düşerse video player bize daha düşük kalitede bir çözünürlük ile izlememize sebep sağlayacaktır. Yani video izlerken ağ hızınızı takip etme işlemine adaptive yayın denilmektedir.

HLS sayesinde videolarımız ağ kalitemize göre belirleniyor ve ağ kalitesinin yükseldiğinde kalite artıp ağ kalitesinin azaldığında ise video kalitesinin düştüğü aslında çok önemli bir özelliktir.
Çünkü bu özellik olmasa videolarımız
bir ağ düşüşünde donup yüklenmesini bekleyebiliriz. Bu çok sinir bozucu bir durum olur. Bu ve buna benzer bir sürü özellik barındırdığı için günümüzde en iyi video protokolü Hls'dir. HLS eğer geliştirilmez ise gelecekte sonu flash olması kaçınılmaz olacaktır.