Ürünlere dön

Fiyola: Kısa Video OTT Platformu

Dikey kısa formata kurulmuş bir OTT platformu: içerik yönetimi, kodlama, dağıtım ve native oynatma. Mevcut bir yayıncının, sıfırdan streaming altyapısı kurmadan mobil öncelikli kitleye ulaşması için.

MicroFrame tabanlı Medya ve Eğlence
Native .NET FFmpeg Mobil Streaming

Sorun

Yatay yayın platformları, bugün kısa formatlı dikey dizi ve drama izleyen genç, mobil öncelikli kitleyi henüz yeterince karşılayamıyor. Bu kitleye ulaşmak için en avantajlı konumdaki içerik platformlarında abone tabanı da katalog da zaten var; eksik olan dikey formatta bir ürün. Bunun streaming hattını sıfırdan kurmak ise yıllara yayılan bir yan yol demek.

Yaklaşımımız

Dikey ürün, bağımsız bir uygulama olarak değil, köklü bir platformun devralabileceği bir altyapı olarak kurgulandı. İçerik alımı, dikey formata göre optimize edilmiş kodlama, CDN dağıtımı ve native oynatmayı kapsayan uçtan uca kendi hattını taşıyor; abone yönetimi ve SSO tarafında ise mevcut sisteme bağlanıyor. Mimari, içerik stratejisi ilerleyen dönemde gerektirirse yatay formatta tam kapsamlı bir VOD platformuna açılabilecek şekilde tasarlandı.

Platform ne yapıyor?

Durum: geliştirmede, henüz canlı değil.

Fiyola, dikey formatta kısa video ile dizi ve drama içeriği üzerine kurulmuş bir OTT platformu. Mevcut yatay platformların henüz yeterince karşılayamadığı mobil öncelikli kitleyi hedefliyor; köklü bir içerik platformuna bu kitleye ulaşmak için dikey bir kanal sunuyor.

Platform, halihazırda kurulu yayın altyapılarıyla entegre çalışacak biçimde tasarlandı: birleşik abone yönetimi ve SSO sayesinde mevcut içerik ekosistemini bölmek yerine genişletiyor. İçerik yönetimi, kodlama, dağıtım ve oynatmayı kapsayan streaming hattı platformla birlikte geliyor; yani ölçekli biçimde devreye alınmadan önce ayrıca geliştirilmesi gerekmiyor.

Yetenekler

Fiyola MicroFrame üzerinde geliştirildi, henüz yayında değil. Aşağıdaki liste kurulduğu yetenekleri anlatır.

  • Birleşik abone yönetimi — mevcut içerik ekosistemiyle SSO entegrasyonu
  • Genç izleyiciye yönelik dikey kanal — onu benimseyen platforma yeni bir gelir kalemi açmak için tasarlandı
  • Benimsenmeye hazır streaming altyapısı — sıfırdan kurmak yerine
  • Yatay formata açılma esnekliği — sonraki platform ve katalog büyümesi için
  • Uçtan uca streaming hattı — içerik alımı, adaptif bitrate kodlama, CDN dağıtımı, oynatma
  • Native iOS ve Android uygulamaları — dikey oynatma için geliştirilmiş özel video oynatıcı

Nasıl inşa edildi?

  • Dikey oynatma için ayarlanmış özel oynatıcıya sahip native mobil uygulamalar
  • İçerik yönetimi ve kullanıcı API’leri için .NET backend mikroservisler
  • Dikey format için FFmpeg tabanlı adaptif bitrate kodlama hattı
  • Düşük başlangıç gecikmesi için tasarlanmış CDN destekli dağıtım
  • DRM korumalı çevrimdışı indirme

Aşağıdaki bölümler mimariyi ve arkasındaki gerekçeyi, tasarlandığı hâliyle anlatıyor.

Dikey, döndürülmüş bir kodlama merdiveni değil, başka bir merdiven

Dikey bir rendition merdiveni, yatay bir merdivenin yan çevrilmiş hâli olamıyor. Aynı algılanan kalite için piksel bütçesi farklı dağılıyor; 16:9 merdiveninin üst basamakları, dikey tutulan bir telefonun hiç göstermediği bir genişliğe bitrate harcıyor. Alt basamak ise uzun formattakinden çok daha belirleyici, çünkü zayıf bir mobil bağlantıdaki izleyicinin fiilen aldığı şey o. Merdiven bu yüzden en baştan dikey kaynağa göre tanımlanıyor.

Yanındaki takas ise segment uzunluğu: kısa segmentler daha hızlı başlatma ve ağ değiştiğinde daha çabuk uyum sağlıyor, karşılığında katalog genelinde daha fazla istek ve segment başına daha fazla ek yük getiriyor. Kısa format bu kararı kısa uca doğru çekiyor — film uzunluğunda bir VOD servisinin vardığı yerin tam tersi.

Kısa formatta belirleyici metrik başlatma süresi

Uzun formatta bir saniyelik başlatma gecikmesi bir saatlik izlemeye yayılıyor. İzleyicinin birkaç saniyede bir kaydırdığı bir akışta ise başlatma gecikmesi doğrudan deneyimin kendisi — oturum başına bir kez değil, her içerikte yeniden ödeniyor. Bu yüzden oynatıcı, mevcut içerik oynarken sonraki içerikleri önden çekip tamponlayacak biçimde tasarlandı; kaydırma, cihazda zaten duran veriyle karşılanıyor.

Bu bedavaya gelen bir kazanç değil, bir bütçe kararı: önden çekme, izleyicinin veri kotasını ve cihazın bant genişliğini hiç izlenmeyebilecek içeriğe harcıyor. Dolayısıyla önden çekme derinliği sınırlı tutuluyor ve izleyicinin geçtiği içeriklere ait devam eden indirmeler tamamlanmaya bırakılmak yerine iptal ediliyor.

Neden native ve neden özel oynatıcı

Kaydırmayla ilerleyen dikey bir akışın bağlı olduğu üç şey ancak native tarafta düzgün elde ediliyor: platformun donanım çözücüleri, tamponlama ve önden çekme davranışı üzerinde hassas kontrol ve platformun DRM yığını. Sonuncusu tek başına belirleyici — iOS ile Android’in DRM sistemleri birbirinin yerine geçmiyor ve içerik lisanslıysa ikisi de tercih değil. Genel amaçlı gömülü bir oynatıcı, önden çekme stratejisinin dayandığı tampon kontrolünden vazgeçmek demek; oynatıcının hazır alınmak yerine özel geliştirilmesinin sebebi bu.

DRM backend’e de uzanıyor. Çevrimdışı indirme, oynatma lisansından ayrı ve kendi ömrü olan kalıcı bir lisans demek ve ikisinin de abonenin güncel erişim hakkına bağlı olması gerekiyor. Erişimin fiilen zorlandığı yer lisans verme adımı: bir CDN adresi bir konumdur, erişim kontrolü değil. Bu yüzden erişim hakkı, istemcinin bir dosyaya ulaşabilmiş olmasından çıkarsanmak yerine lisans talebinde sunucu tarafında çözümleniyor.

Kendi abone tabanını kurmak yerine mevcut olanı devralmak

Platform, yerleşik yayıncının SSO’su üzerinden kimlik doğruluyor ve erişim hakkını oradan okuyor. Bundan çıkan tasarım kısıtı bilinçli: dikey ürün, kimin abone olduğu ve neye hakkı bulunduğu konusunda ikinci bir doğru kaynağa dönüşmemeli. Dolayısıyla abone kimliği ve erişim hakkı dışarıda kalıyor; platform yalnızca içerik, oynatma ve etkileşim verisini sahipleniyor.

Sınır tam da buraya çekildi ki devralma bir abone göçü gerektirmesin — böyle bir göç işin en büyük ve en riskli parçası olurdu ve ürüne hiçbir şey katmayan parçası da o.

İçerik alımı bir iş çizgesi, kodlama ise pahalı düğüm

Hat şu sırayla işliyor: içerik alımı, rendition başına dağılan kodlama, paketleme, manifest üretimi ve CDN yayını. Her adım, varlığa ve ilgili rendition’a bağlı yeniden denenebilir bir iş; böylece hata alan bir rendition, tüm varlığın yeniden kodlanmasını tetiklemek yerine tek başına yeniden çalıştırılıyor. Bunun önemi, zamanın ve işlem maliyetinin tam olarak orada olmasından geliyor.

Kodlama yükü doğası gereği ani: bir katalog girişi tepe noktası yaratıyor, aradaki durağan hâl ise neredeyse sıfır. Bu yüzden kodlama katmanı API katmanından ayrıldı ve bağımsız ölçekleniyor; kodlama kapasitesi bu eğriyi takip ederken istek karşılayan yol buna göre boyutlandırılmak zorunda kalmıyor.

Paketleme birden fazla çıktı üretiyor, çünkü iki mobil platformun oynatıcıları ve DRM sistemleri farklı segmentli formatlar bekliyor. Bu bir tercih değil ekosistemin gerçeği ve hatta soğurulmuş durumda; ne içerik modeli ne de uygulamalar bunu taşımak zorunda kalıyor.

Yatay kapıyı açık tutan şey, dikeyi varsaymamak

Dikey, şemaya gömülmüş bir özellik değil; ilk profil. En-boy oranı, rendition merdiveni ve oynatıcı yerleşimi varlığın ve dağıtım profilinin öznitelikleri. Dolayısıyla ileride yatay VOD’a açılmak bir içerik modelini taşımak değil bir profil eklemek oluyor — platformun iddia ettiği esnekliğin somut karşılığı bu ve ilk günde doğru olan bir varsayımı koda gömmeme disiplini dışında bir maliyeti yok.

Başlamaya hazır mısınız?

Projenize başlamaya hazır mısınız?

Fikirlerinizi hayata geçirmek için size nasıl yardımcı olabileceğimizi konuşalım.