23 Mayıs 2016 Pazartesi

Adaptive Bitrate Streaming



Her geçen gün gelişen internet altyapıları her kullanıcıya ne kadar muhteşem bir bağlantısı ve hızı olduğunu hissettirse de detaylara inildikçe aslında bu kadar iyimser olmanın yanlışlığı fark ediliyor. Kullanıcılar her ne kadar bağlantı hızları konusunda kendilerinden emin olsalar da video streaming hizmetinin sürekli ve kesintisiz bir bağlantı ihtiyacı olduğunu çoğu zaman bilmemekteler. Bu sebeple Buffering(Yükleniyor) ekranı gördüklerinde genel olarak yoğun bir tepki gösteriyorlar. 

Tabi ki yayının teslimi aşamasında “Buffering” ekranını görmek sadece kullanıcı tarafında yaşanan sorunlar değil, sağlayıcının da yaşayabileceği sorunları kapsayabilir. Streaming işlem sürecinde yayını sağlayan sunucuların Upload, izleme yapanların da Download gücü önemli faktördür. Bu kapsamda iki tarafın da networklerinde yaşayabilecekleri daralmalar veya kısa vadeli sorunlar anında yayının kesilmemesi için yapılacak bir hamleye ihtiyaç duyuluyordu. Streaming teknolojilerinin atası sayılabilecek RTP ve RTSP protokolleri ile bunu yapmak mümkün değildi. Daha sonrasında RTMP ile ilk adaptive bitrate streaming başlasa da beklenilen performansı gösterememişti. Fakat günümüzde Streamerların çok büyük bölümünün kullandığı HTTP Protokolü ile beraber artık adaptive bitrate streaming için uygun ortam hazır hale gelmişti. 

Bu aşamada özetle kullanıcıların internet hızını ve CPU gücünü ölçerek uygun cihaz ve bağlantı için en iyi performanslı videonun ulaştırılmasına Adaptive Bitrate Streaming işlemi denilmektedir. ABR için tek source’dan birden fazla bitrate’te çıktı alabilecek bir encoder’a ihtiyaç duyulmaktadır. Bu encoderlar aynı kaynaktan farklı bitratelerde fakat chunk yapısı ve sayısı aynı videolar üretmektedir.
İşleyiş olarak genel yapı şu şekilde işlemektedir. Client yapılan ayarlamaya göre CDN sunucudan 2 ile 10 chunk arasında değişen bir dosya downloadı yapmaya başlar. İlk chunkın(genel olarak en düşük bitrate belirlenir) download süresine göre 2. Chunk ya daha üst bitrateten ya da bağlantı en düşük bitrate için uygunsa aynı bitrate’ten indirilmeye devam eder. Bu yapı videonun son chunkına kadar işlemeye devam eder ve bağlantı hızındaki değişikliğe göre adaptasyon sağlanır.

ABR teknolojisinde en popüler ve öne çıkan Apple'ın HLS'iyle Microsoft'un Smooth Streaming'idir. Yakın zamanda popülerliği git gide yükselen DASH ise gelecekte HLS ve SS'in tahtına şimdiden en güçlü aday olarak gözüküyor. 

OTT ile Uzun Arayı Kapatma Çabaları

Basketbol eski işim, seyahat de hobim olduğuna göre artık burada biraz da 3 yıla yakın süredir mesai harcadığım OTT ve CDN dünyasıyla ilgili en azından birçok kişinin adaptasyon sürecini hızlandırabileceğini düşündüğüm paylaşımlarla yazılarıma geri dönüyorum.

Öncelikle paylaşacağım bilgilerin konu başlıkları bağlamında tüm ayrıntıları barındıramayacağı ve çok büyük ve bilinmeyenleri daha fazla olan bu dünyada sizlerin tüm ihtiyaçlarını karşılama ihtimalinin düşük olduğunu belirtmem gerekiyor. Konulara bakış açımın Teknik bir Proje Yöneticisi kapsamında olacağı için bu işin yazılım ve sistem kısmında uzmanlaşmış kişileri pek de tatmin etmeyebilir.

OTT ve CDN Dünyası çok fazla değişken, sınırsız sayıda terminoloji ve yine aynı sayıda protokollere sahip. Yani özetle bu dünyanın tamamı hakkında uzmanlaşabilmek oldukça zor fakat belli alanlarında iyi olabilmek bile çok önemli bilgi birikimi ve saha deneyimi gerektiriyor.

Bu sebeple genel bilgilerden ziyade öncelikle aşağıdaki başlıklar hakkında olabildiğince kısa sürede araştırmalarımı ve deneyimlerimi sizlerle paylaşmak istiyorum.

•         Adaptive Bitrate Streaming Nedir? 
•         HLS
•         SS
•         DASH
•         Encoding
•         Codec Nedir? H.264 ve H.265 arasındaki farklar.


•         Trancoding
•         Transmuxing
•         MPEG 2
•         MPEG 2-TS
•         MPEG 4
•         Encryption
•         DRM
•         Caching