I en SVOD-miljö (Subscription Video on Demand) är offline-nedladdningar en avgörande funktion som gör att användare kan titta på innehåll utan internetanslutning. Apple erbjuder via AVFoundation en
offline HLS-lösning med en demoapp (HLSCatalog) som exempel. Även om den här lösningen fungerar för många vanliga streaming-scenarier stötte vår kunds app på flera problem till följd av specifika konfigurationer av strömmar och nedladdningsmönster. I den här artikeln förklarar jag varför jag utvecklade en skräddarsydd nedladdningslösning för iOS och iPadOS som förbättrar nedladdningshastighet, ordning och robusthet, och samtidigt åtgärdar problem som påverkar användarupplevelsen och plattformskostnaderna.
Problem med Apples offline HLS-lösning
1. Hög segmentfrekvens och bandbreddsanvändning
Många strömmar använde segment på cirka 1,6 sekunder, vilket för längre filmer som
Oppenheimer kunde generera tiotusentals fragment. Denna frekventa segmentering ökade bandbreddsanvändningen och belastade resurserna avsevärt, vilket ofta ledde till ofullständiga nedladdningar och upprepade försök.
2. Oanpassade segment för ljud och video
Vissa avsnitt i biblioteket, till exempel
The Good Doctor, hade olika segmentlängder för ljud och video (t.ex. 4 sekunder för video och 3,2 sekunder för ljud). Denna avvikelse försvårade synkroniseringen och gjorde segmenthanteringen mer komplex.
3. Upprepade försök och användarfrustration
Apples lösning är utformad för att ladda ner innehåll i en hastighet om 6–10 gånger uppspelningshastigheten (en timmes film bör idealt laddas ner på 6–10 minuter). Ändå uppstod ofta ofullständiga segment som utlöste upprepade försök, vilket inte bara ökade bandbreddskostnaderna utan också frustrerade användarna. Framstegsfältet nådde ofta 99 % innan det sjönk tillbaka till 0 %, vilket skapade förvirring och missmod.
4. Oförutsägbar nedladdningsordning
Apples metod laddar ofta ner flera resurser parallellt, men utan en tydligt definierad prioritering. Därför laddades inte nödvändigtvis innehåll som valts först ner först, vilket gjorde upplevelsen ännu mer oförutsägbar.
5. Begränsad videokvalitet
För att begränsa nedladdningsproblem hade videokvaliteten medvetet sänkts (lägre upplösning och bitrate än vid onlinestreaming). Även om denna åtgärd vidtagits innan jag engagerades för att förhindra vanliga nedladdningsfel, upplevde vissa användare den offlinekvaliteten som otillfredsställande.
Skräddarsydd offline-nedladdningslösning: snabb, tillförlitlig och flexibel
För att lösa dessa problem utvecklade jag en anpassad downloader, inspirerad av ett tidigare projekt,
CloudDVR.tv (2012), som använde molnlagring för livesänd tv och VOD-innehåll. Den här nya lösningen hanterar komplexa segment effektivt, ger högre nedladdningshastigheter och minskar upprepade försök, vilket resulterar i en smidigare upplevelse.
1. Ökad nedladdningshastighet och färre upprepade försök
Den skräddarsydda nedladdaren är byggd för att utnyttja nätverkets maximala hastighet, med potentiellt ett segment var hundradels sekund. Det minskade nedladdningstiden dramatiskt – från 45 minuter till mindre än 5 minuter för en film som
Oppenheimer. Genom bättre segmenthantering minskade antalet upprepade försök, vilket i sin tur begränsar onödig dataförbrukning och kostnader, samt ger en mer tillförlitlig framstegsindikator.
2. Kontrollerad och konsekvent nedladdningsordning
Med den skräddarsydda nedladdaren laddas resurser ner exakt i den ordning de väljs av användaren, vilket eliminerar oförutsägbarhet. Därmed blir det innehåll som efterfrågas mest tillgängligt först, vilket förbättrar användarupplevelsen.
3. Framtida förbättringar av videokvalitet
Den skräddarsydda lösningen gör det dessutom möjligt att i framtiden höja videokvaliteten genom att justera segmentlängd, upplösning och bitrate. Denna flexibilitet gör att vi successivt kan höja kvaliteten på nerladdat innehåll och erbjuda en bättre tittarupplevelse.
4. Förbättrad robusthet och felhantering
Nedladdaren säkerställer att nerladdningar kan återupptas sömlöst efter avbrott, som när appen läggs i bakgrunden, kraschar eller när nätverket ändras. Denna robusthet förhindrar ofullständiga nedladdningar och ger en mer sammanhållen offline-upplevelse.
5. Hantering av lokala resurser
Med den här lösningen får utvecklare och användare full kontroll över de nerladdade resurserna. Det är möjligt att implementera anpassade policys för att undvika oavsiktlig radering och för att effektivt hantera lagringsutrymmet.
6. Starta uppspelning utan att vänta på en fullständig nedladdning
Den skräddarsydda lösningen stöder även progressiv uppspelning, vilket innebär att användare kan börja titta efter bara några sekunder, långt innan filen är helt nerladdad. Detta förbättrar tittarupplevelsen avsevärt, särskilt för längre filmer eller serier. Denna funktion är dock ännu inte aktiverad för kunden.
Resultat av implementeringen: en jämförelse
Tester avslöjade en tydlig skillnad mellan Apples metod och den skräddarsydda nedladdaren. En videodemonstration visade tydligt tidsbesparingarna vid nedladdning:
- Tidigare (Apple): En hel film som Oppenheimer tog ungefär 45 minuter på grund av låg hastighet och många upprepade försök.
- Nu (Skräddarsydd): Samma film laddas nu ner på under 5 minuter tack vare högre hastighet, färre upprepade försök och en prioriterad nedladdningsordning.
Tester visade också att den nya nedladdaren är mer pålitlig och konsekvent, med ett minimum av upprepade försök och en smidigare visning av nedladdningsförloppet för användarna.
Fördelar med den skräddarsydda offline-nedladdningslösningen
- Snabbare och mer pålitliga nerladdningar: tack vare full användning av nätverkets kapacitet och färre upprepade försök.
- Förutsägbar nedladdningsordning: innehåll nerladdas i exakt den ordning det valdes.
- Förstärkt robusthet: en tillförlitlig felhantering ger möjlighet att återuppta nerladdningar efter avbrott.
- Potential för högre kvalitet: nedladdarens flexibilitet möjliggör framtida ökningar av upplösning och bitrate.
Ytterligare användningsområden
- Digital skyltning (Digital Signage): förladdning för offlinevisning i miljöer med begränsad anslutning.
- Dynamisk annonsinbäddning: anpassade annonser via lokalt cachade manifest.
- Edge-caching: idealiskt för hybrid offline-/online-streaming med låg latens.
Denna skräddarsydda nedladdare visar hur ett målinriktat utvecklingsarbete kan möta de specifika behoven av SVOD-innehåll, erbjuda en sömlös offline-upplevelse och samtidigt tillhandahålla flexibilitet för framtida kvalitetsförbättringar. Genom att fokusera på hastighet, tillförlitlighet och användarprioriteringar ökar lösningen kundnöjdheten och utgör en stabil grund för vidare utveckling i en ständigt föränderlig streamingmarknad.