Adaptive Bitrate (ABR), kullanıcının kanal bant genişliğine bağlı olarak video kalitesini dinamik olarak değiştiren bir akış teknolojisidir. Aşamalı indirmenin aksine ABR, videoyu 2–10 saniyelik küçük parçalara böler ve anında aralarında geçiş yapar. Bitmovin Video Developer Report (2025)'e göre, akış hizmetlerinin %86'sı mobil cihazlarda sorunsuz oynatma sağlamak için ABR kullanıyor.
Önemli Noktalar
Adaptive Bitrate (ABR), bir video dosyasının farklı bitrate ve çözünürlüklerde birden çok varyantta kodlandığı ve oynatıcının gerçek zamanlı olarak uygun varyantı otomatik seçtiği bir medya içeriği akış yöntemidir. Kullanıcı, mevcut internet hızına göre arabelleğe almadan mümkün olan en yüksek kaliteyi elde eder.
Geleneksel aşamalı indirmenin aksine ABR, tüm dosyanın yüklenmesini gerektirmez — oynatıcı istenen kalitede kısa segmentler ister ve segmentler arasında başka bir bitrate geçiş yapabilir. Bu, ağ hızının sürekli değiştiği mobil uygulamalar için teknolojiyi vazgeçilmez kılar.
Uyarlanabilir akış teknolojisi ilk olarak 2006 yılında Move Networks tarafından ABC televizyon kanalının yayını için ticari olarak uygulanmıştır. 2009 yılında Apple, HTTP tabanlı ilk yaygın olarak benimsenen ABR standardı haline gelen ve iOS ekosisteminde hala baskın olan HTTP Live Streaming (HLS)'i tanıttı.
2012 yılında MPEG, belirli bir satıcıya bağlı olmayan evrensel bir ABR formatı olarak MPEG-DASH (Dynamic Adaptive Streaming over HTTP) standardını yayınladı. DASH tüm büyük platformlar tarafından desteklenmektedir ve ISO tarafından benimsenen tek ABR standardıdır.
ABR akış süreci içerik hazırlama aşamasında başlar: kaynak video, farklı bitrate'lerde — örneğin 144p, 360p, 720p, 1080p ve 4K — birden çok varyantta kodlanır. Her varyant, tipik olarak 2, 4, 6 veya 10 saniye olmak üzere eşit süreli parçalara ayrılır.
Sunucuda, mevcut varyantları, bitrate'lerini, çözünürlüklerini, kodeklerini ve segment URL'lerini tanımlayan bir bildirim dosyası oluşturulur. Oynatıcı bildirimi indirir, analiz eder ve hızlı başlangıç için en düşük bitrate'te oynatmaya başlar.
<!-- MPEG-DASH MPD manifest -->
<MPD profiles="urn:mpeg:dash:profile:isoff-live:2011">
<Period>
<AdaptationSet mimeType="video/mp4">
<Representation id="720p" bandwidth="2800000"
width="1280" height="720">
<SegmentTemplate duration="4"
media="seg_$Number$.m4s"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
Oynatma sırasında, istemci tarafındaki ABR algoritması sürekli olarak ağ koşullarını ve tampon durumunu izler. Bant genişliği düşerse, oynatıcı arabelleğe almayı önlemek için sonraki segmentleri daha düşük bir bitrate'te ister. Ağ iyileştiğinde bitrate yükselir.
Bitrate'ler arasında geçiş, segment sınırlarında gerçekleşir ve kalite değişikliklerini kullanıcı için neredeyse algılanamaz hale getirir. Modern oynatıcılar, geçişin görsel yapaylıklar olmadan gerçekleşmesi için farklı varyantlar arasında anahtar kareleri senkronize edebilir.
Üç ana ABR protokolü akış video pazarına hakimdir: Apple'dan HLS, açık standart olarak MPEG-DASH ve Microsoft'tan Smooth Streaming. Her protokol, bildirim formatını, segmentasyon yöntemini ve şifreleme mekanizmasını tanımlar.
| Protokol | Geliştirici | Bildirim | Segmentler | Şifreleme |
|---|---|---|---|---|
| HLS | Apple | .m3u8 (M3U çalma listesi) | .ts veya .fmp4 | AES-128, SAMPLE-AES |
| MPEG-DASH | ISO/MPEG | .mpd (XML) | .m4s veya .webm | CENC (Ortak Şifreleme) |
| Smooth Streaming | Microsoft | .ismc (XML, IIS) | .ismv / .isma | PlayReady (AES-128 CT) |
HLS, iOS, tvOS ve macOS'ta Safari'ye yerleşik olan en yaygın ABR protokolüdür. Bildirim formatı, ana çalma listesinin farklı bitrate ve çözünürlüklerdeki varyant akışlarına bağlantılar içerdiği genişletilmiş M3U çalma listelerine dayanır.
Her varyant, segment listesiyle birlikte kendi medya çalma listesine başvurur. HLS, eski segmentlerin kaldırıldığı ve yenilerinin geldikçe eklendiği kayan pencere mekanizması aracılığıyla canlı yayınları destekler.
MPEG-DASH, 2012 yılında ISO/IEC 23009-1 olarak kabul edilen tek ABR standardıdır. HLS'nin aksine DASH, bir XML bildirimi (MPD — Media Presentation Description) kullanır ve belirli bir kapsayıcı formatına bağlı değildir — fMP4, WebM ve diğerlerini destekler.
DASH, esnek segmentasyon sağlar: segmentler aynı akış içinde farklı sürelere sahip olabilir, bu da gecikme ve HTTP istek yükü arasındaki dengeyi optimize eder. Canlı yayınlar için DASH, SegmentTemplate desenlerini destekler.
Bitmovin testlerine (2025) göre HLS ve DASH, başlatma süresi ve bitrate geçiş sıklığında karşılaştırılabilir performans gösterir. HLS, donanım desteği sayesinde iOS'ta daha düşük gecikme sağlarken, DASH daha esnek ABR algoritması yapılandırması nedeniyle Android'de tercih edilir.
ABR'nin kalbi, sıradaki hangi varyantın isteneceğini belirleyen bitrate seçim algoritmasıdır. Üç ana algoritma ailesi vardır: verim tabanlı, tampon tabanlı ve hibrit. Her yaklaşımın güçlü yönleri ve sınırlamaları vardır.
Verim tabanlı algoritmalar, önceki segmentlerin indirme hızına göre ağ bant genişliğini tahmin eder. Algoritma, ölçülen verimin %80–90'ını aşmayan maksimum bitrate'i seçerek dalgalanmalar için bir marj bırakır.
Bu yaklaşımın dezavantajı, kısa süreli hız artışlarına karşı duyarlılığıdır. Segment indirme sırasında ağ keskin bir şekilde düşerse, verim tahmini çok düşük olur ve gereksiz yere kalite düşer.
Tampon tabanlı algoritmalar, oynatıcının tampon doluluğuna göre kararlar alır. Tampon %70'ten fazla doluysa algoritma bitrate'i artırır; tampon %20'nin altına düşerse, arabelleğe almayı önlemek için kaliteyi keskin bir şekilde düşürür.
Ana avantaj, kısa süreli ağ düşüşleri sırasında yanlış kalite düşüşünün olmamasıdır, çünkü tampon dalgalanmaları yumuşatır. Dezavantajı, sürekli bant genişliği değişikliklerine yavaş tepki vermesidir.
ExoPlayer ve AVPlayer gibi modern oynatıcılar, verim tahmini ve tampon durumunu birleştiren hibrit algoritmalar kullanır. ExoPlayer, her iki parametreyi de dikkate alan varsayılan DefaultTrackSelector ABR algoritmasını kullanır.
2024–2025 yıllarında, geçmiş verilere dayanarak gelecekteki ağ değişikliklerini tahmin eden ML tabanlı algoritmalar aktif olarak dağıtılmaktadır. Netflix, YouTube ve Twitch, bitrate seçimini optimize etmek için kendi makine öğrenimi modellerini kullanarak geçiş sayısını %30–40 oranında azaltır.
Mobil uygulamalar, hücresel ağların (4G/LTE, 5G) dengesizliği ve sınırlı cihaz işlem gücü nedeniyle ABR'ye özel talepler getirir. Oynatıcı, güç tüketimini ve veri kullanımını en aza indirirken ağ değişikliklerine hızla uyum sağlamalıdır.
OpenSignal'e (2025) göre, kentsel alanlarda ortalama 4G hızı 5 ila 50 Mbps arasında değişir ve hareket halindeyken 1 Mbps'ye düşebilir. ABR algoritmaları, bir tünele veya asansöre girerken arabelleğe almayı önlemek için 1–2 segment içinde bitrate'ler arasında geçiş yapmalıdır.
val trackSelector = DefaultTrackSelector(context).apply {
setParameters(buildUponParameters {
setMaxVideoSizeSd()
setAllowVideoMixedMimeTypeAdaptiveness(true)
setPreferredVideoRoleFlags(
roleFlags(C.ROLE_FLAG_DESCRIBES_VIDEO_AND_AUDIO)
)
})
}
val adaptiveTrackSelectionFactory =
AdaptiveTrackSelection.Factory()
val player = ExoPlayer.Builder(context)
.setTrackSelector(trackSelector)
.setMediaSourceFactory(
DashMediaSource.Factory(dataSourceFactory)
)
.build()
Mobil uygulamalar için hızlı ilk yükleme (ilk kareye kadar geçen süre 2 saniyenin altında) kritik öneme sahiptir. En düşük kullanılabilir bitrate'te oynatmaya başlamanız ve ardından tampon doldukça kaliteyi artırmanız — start-low-and-rise stratejisi — önerilir.
Güç tüketimi de önemlidir: donanım hızlandırmalı kod çözme tüm bitrate'ler için kullanılmalıdır. Eski cihazlarda yüksek bitrate'lerin (1080p ve üzeri) yazılımla kodunun çözülmesi aşırı ısınmaya ve kısıtlamaya neden olabilir.
Temel ABR kalite metrikleri: bitrate geçiş sayısı, ilk kareye kadar geçen süre (TTFF) ve toplam izleme süresine göre geçiş oranı. QoE (Kalite Deneyimi) endeksi, bitrate, geçiş cezası ve arabelleğe alma cezasının ağırlıklı toplamı olarak hesaplanır.
ABR izleme için oynatıcıdan analiz toplanması önerilir: mevcut bitrate, tampon boyutu, bant genişliği, geçiş sayısı ve türleri. Bu veriler, içerik sağlayıcıların mevcut bitrate kümesini optimize etmesine ve belirli kitleleri için segmentasyonu yapılandırmasına yardımcı olur.
Sıkça Sorulan Sorular
Adaptive Bitrate (ABR), ağ koşullarına göre video kalitesini dinamik olarak değiştiren bir akış teknolojisidir. Oynatıcı videoyu segmentlere ayırır ve her biri için en uygun bitrate'i seçerek mobil cihazlarda arabelleğe almadan sorunsuz oynatma sağlar.
HLS, M3U çalma listeleri ve taşıma akışları (.ts) kullanan bir Apple protokolüdür. MPEG-DASH, XML bildirimi (.mpd) ve esnek segment formatlarına sahip açık bir ISO standardıdır. HLS iOS'ta en iyi çalışırken, DASH Android ve web'de daha iyidir.
ABR, arabelleğe almayı ortadan kaldırarak algılanan kaliteyi artırır: ağ kötüleştiğinde video geçici olarak çözünürlüğü düşürebilir ancak durmaz. Kullanıcılar, sürekli arabelleğe alan kesintili 4K yerine akıcı 720p videoyu tercih eder.
ExoPlayer, ağ bant genişliğini ve tampon doluluğunu dikkate alan hibrit bir algoritma olan DefaultTrackSelector'u kullanır. AdaptiveTrackSelection.Factory ile özelleştirme yapılabilen verim tabanlı ve tampon tabanlı stratejiler de mevcuttur.
Segment süresi uyum sıklığını belirler: kısa segmentler (2 saniye) ağ değişikliklerine daha hızlı tepki verir ancak daha fazla HTTP isteği oluşturur. 4–6 saniyelik segmentler, uyum hızı ve yük arasında denge kurarak mobil cihazlar için idealdir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun