Published on

Yapay Zeka ile Video Kodlamayı Geliştirme - Bölüm 2/6

Bu yazı serimizde yapay zeka ile video kodlamayı nasıl geliştirebileceğimiz hakkında konuşmaya devam ediyoruz. Bu yazıda Internet üzerinden video aktarımının altın anahtarı HTTP video streaming hakkkında bir tanıtım yapıyoruz.


Miftah-ı Kenz: Adaptif HTTP Video Aktarımı

Bir önceki yazımızda videonun ne olduğu, boyutunu düşürmenin neden elzem olduğu, ve bu işlemin video kodlama ile nasıl yapıldığı hakkında konuştuk. Şimdi de videonun, bizim telefonlarımıza, bilgisayarlarımıza, televizyonlarımıza, vs. nasıl aktarıldığını merak ediyor olabilirsiniz. Onun cevabını da bu yazıda bulmaya çalışalım.

Videoyu bir sunucudan bir kullanıcıya göndermenin en düz yolu videoyu anam babam indirmek, yani video dosyasının tamamını tek seferde kullanıcıya göndermektir. Bunu ayarlaması da gayet kolay zaten, bildiğimiz dosya aktarımının aynısı. Fakat bu yöntemin bariz kusurları var ki bu kusurlar video aktarımını günlük hayatta bu şekilde yapmamızın önüne geçiyor. İlk olarak, videonun tamamı cihazımıza aktarılmadan videoyu oynatmamız mümkün olmuyor.

Düşünsenize YouTube'da bir video görüyorsunuz, uzun da bir video ama kapak resmi ve başlığı ilginizi çekiyor. İzlemek için tıklıyorsunuz ve 30-35 dakika videonun inmesini bekliyorsunuz. Sonra bildirim geliyor ve YouTube diyor ki videonuz indirildi artık izleyebilirsiniz. Açıyorsunuz videoyu, 10 saniye izliyorsunuz ve beğenmeyip kapatıyorsunuz. N'oldu şimdi? O kadar zamanın boşa gitmesi bir yana, indirdiğiniz o kadar veri de çöp oldu. Hem zaman hem veri israfı. Veri demişken, eğer bir videoyu indirme yoluyla izlerseniz videonun tamamının cihazınızda depolanması için yer ayırmanız gerekir ki bu da ikinci temel sorun. O yüzden videoyu direkt indirmek, aktarımı için ideal bir yöntem değil hele ki günümüzün hızlı video tüketim trendine hiç uygun değil. Nedir o zaman bunun alternatifi?

El-Cevap video aktarımı. Bu yöntemde, video segment adı verilen ve genellikle 2 ile 4 saniye uzunluğunda olan ufak bölümlere ayrılır ve sunucuda bu şekilde depolanır. Video izleme isteği geldiği zaman, videonun ilk segmenti kullanıcıya gönderilir ki bu tüm videoya nazaran çok çok küçük bir boyuttadır. Kullanıcı ilk segmenti aldığı zaman segment tüketilir, cihazda depolanmaz, ve hemen video oynatımına başlanır. Eğer kullanıcı videoyu izlemeye devam etmek istiyorsa, bir sonraki segment için istek gönderir, segment gönderilir, tüketilir ve izlenilir, bu şekilde devam edilir. Bu yüzdendidr ki video aktarımı çok daha hızlı bir şekilde başlayabilir, kullanıcıda herhangi bir yer kaplamaz ve israf olunan zaman ve veri miktarı neredeyse sıfırdır.

Teknik detayına gelecek olursak bu sürecin temeli Hyper-text-transfer-protocol (HTTP) üzerine kuruludur. HTTP, Internetin üzerine bina edildiği temel bir protokoldür ve Internet üzerinden mesajların nasıl şekillenidirilmesi ve gönderilmesi gerektiğini belirtir. Ziyaret ettiğiniz tüm web siteleri HTTP ile aktarılıyor diyelim ve önemini bir daha belirtelim.

Adaptif HTTP Video Aktarımı (HTTP Adaptive Streaming) - tercümesi zayıf oldu - Internet üzerinden video aktarmanın altın anahtarı diyebiliriz. Kullanılmadığı takdirde Internetten video izlemenin pek de keyfi olmazdı dersek abartmış olmayız.

İlk adım olarak sunucudaki videoları hazırlamamız gerekiyor. Burada tek bir videoyu alıp, segmentlere bölüp depolarsak normalde işimizi görmüş olurdu aktarım açısından. Ancak, buradaki ikinci ve asıl önemli nokta adaptif olması. Yani kullanıcıya seçenek özgürlüğü sunmamız gerekiyor. Gerekiyor ki kullanıcı mevcut durumuna göre en müsait videoyu isteyebilsin. Bunu sağlamak için de her videoyu farklı kalitelerde hazırlıyoruz (kodluyoruz), ufak segmentlere bölüyoruz ve sunucuda depoluyoruz.

video

Denklemin öteki tarafında ise kullanıcımız var. Bu kullanıcıya lokantada sipariş veren birisi olarak düşünebilirsiniz. Lokantaya girdiğiniz zaman menüdeki seçeneklerin çokluğundan kafanız karışabilir, isimlerine ve görsellerine bakıp hepsinden sipariş verip yemek isteyebilirsiniz. Ama hayal dünyasından çıktığınız vakit gerçek hayatın kısıtlamaları çerçevesinde (cebinizdeki para, karnınızın açlığı, alerjileriniz, canınızın ne çektiği, vs.) bir sipariş verirsiniz. Bu kısıtlamalar değiştiğinde, misal cebinizdeki para arttığı zaman, siparişinizi değiştirip farklı kalitedeki yiyeceklerin tadını çıkarabilirsiniz.

Benzer olarak, dijital dünyada da, bir kullanıcı sunucudan bir video isteyeceği zaman mevcut bağlantısının ve cihaz durumunun getirdiği kısıtlamaları göz önünde bulundurmak zorundadır. İstek göndereceği zaman Internet bağlantısının durumuna (internet hızı, ping, vs.) ve cihazın özelliklerine (ekran çözünürlüğü, renk derinliği, vs.) göre en uygun segment için istek gönderir.


Adaptif HTTP Video Aktarımı hakkında kısa bir tanıtım yaptık ve artık videonun nasıl hazırlanıp nasıl gönderildiği hakkında bir fikir sahibiyiz. Artık video kodlamayı alet-i âlâ olan yapay zeka ile nasıl geliştirebiliriz sorusunu sorabiliriz.