İnternet hızınıza göre otomatik kalite ayarı
İnternetiniz yavaşladığında şarkının takılmaması için akıllı bir sistem kurduk. Bağlantı hızınıza göre ses kalitesi otomatik olarak ayarlanır.
Yavaş internet için. Temel ses kalitesi.
Standart kalite. Çoğu kullanıcı için ideal.
Premium kalite. En iyi deneyim.
Her segment indirilirken hız hesaplanır.
Önden yüklenen saniyeler takip edilir.
Takılma olmadan en yüksek kalite sunulur.
(Uyarlanabilir Bit Hızı)
İnternet hızına göre otomatik kalite ayarı.
Arabanın vitesi gibi: Yokuşta düşük, düzlükte yüksek
(Ön Bellek)
Dinlemeden önce yüklenen ses verisi.
Su deposu gibi: Kesinti olsa bile dayanır
Adaptive bitrate streaming aktifken arka planda şu işlemler gerçekleşir:
HLS.js her segment indirildikten sonra indirme süresini ve dosya boyutunu hesaplar. Bu verilerden anlık bant genişliği (bandwidth) hesaplanır. Son 3-5 segmentin ortalaması alınır.
bandwidth = segmentSize / downloadTime; avgBandwidth = movingAverage(lastN)
Hesaplanan bant genişliğine göre uygun kalite seviyesi seçilir. 64kbps için 100kbps+, 128kbps için 200kbps+, 256kbps için 400kbps+ bant genişliği gerekir. Güvenlik marjı eklenir.
hls.nextLevel = findBestLevel(bandwidth * 0.8) // %80 güvenlik marjı
Kalite değiştiğinde kesinti olmaz. Mevcut segment bitmeden yeni kalitedeki sonraki segment hazırlanır. Buffer yönetimi sayesinde geçiş kullanıcı tarafından fark edilmez.
hls.config.abrEwmaSlowHalfLifeSeconds = 6; // Yavaş geçiş
Minimum 10 saniyelik buffer tutulur. Buffer azaldığında kalite düşürülür, yükseldiğinde artırılır. Bu sayede takılma önlenir ama gereksiz düşük kalite de kullanılmaz.
hls.config.maxBufferLength = 30; hls.config.maxMaxBufferLength = 60;
Network Information API ile bağlantı tipi (4G/WiFi/3G) algılanır. WiFi'da agresif kalite artışı, mobil veride dikkatli geçiş yapılır. Bağlantı kesilirse en düşük kaliteye geçilir.
navigator.connection.effectiveType // '4g', '3g', 'slow-2g'
Akıllı Kalite Ayarı
kbps
3G, 4G, WiFi - fark etmez!