In een SVOD-omgeving (Subscription Video on Demand) zijn offline-downloads een essentiële functie, zodat gebruikers content kunnen bekijken zonder internetverbinding. Apple biedt via AVFoundation een
offline HLS-oplossing met een demo-app (HLSCatalog) ter illustratie. Hoewel deze oplossing geschikt is voor veel standaard streaming-scenario’s, ondervond de app van onze klant verschillende problemen door specifieke configuraties van de streams en downloadpatronen. In dit artikel leg ik uit waarom ik voor iOS en iPadOS een aangepaste downloadoplossing heb ontwikkeld die downloads sneller, volgordelijker en veerkrachtiger maakt, en tegelijk problemen aanpakt die de gebruikerservaring en de platformkosten beïnvloeden.
Problemen met Apples offline HLS-oplossing
1. Hoge segmentfrequentie en bandbreedteverbruik
Veel streams gebruikten segmenten van ongeveer 1,6 seconden, wat bij langere films zoals
Oppenheimer leidde tot tienduizenden fragmenten. Deze zeer frequente segmentatie verhoogde het bandbreedteverbruik en belastte de middelen aanzienlijk, wat vaak resulteerde in onvolledige downloads en herhaalde pogingen.
2. Niet-uitgelijnde audio- en videosegmenten
Sommige afleveringen in de bibliotheek, zoals
The Good Doctor, hadden verschillende segmentduren voor audio en video (bijvoorbeeld 4 seconden voor video en 3,2 seconden voor audio). Deze misalignment bemoeilijkte de synchronisatie en maakte segmentbeheer complexer.
3. Herhaalde pogingen en gebruikersfrustratie
De oplossing van Apple is ontworpen om content te downloaden met 6- tot 10-voudige afspeelsnelheid (een film van een uur zou idealiter in 6-10 minuten moeten worden gedownload). Toch kwamen er vaak onvolledige segmenten voor die leidden tot herhaalde pogingen, waardoor niet alleen de bandbreedtekosten stegen, maar ook de frustratie van gebruikers. De voortgangsbalk bereikte vaak 99% en sprong vervolgens terug naar 0%, wat verwarring en ontmoediging veroorzaakte.
4. Onvoorspelbare downloadvolgorde
De methode van Apple downloadt vaak meerdere bronnen parallel, maar zonder duidelijke prioriteitslogica. Hierdoor werd content die als eerste was geselecteerd niet noodzakelijk als eerste gedownload, wat de ervaring nog onvoorspelbaarder maakte.
5. Beperkte videokwaliteit
Om downloadproblemen te beperken, was de videokwaliteit bewust verlaagd (lagere resolutie en bitrate dan bij online streaming). Hoewel deze maatregel was genomen voordat ik betrokken raakte om veelvoorkomende downloadproblemen te voorkomen, voelden sommige gebruikers zich teleurgesteld over de offline beeldkwaliteit.
Aangepaste offline-downloadoplossing: snel, betrouwbaar en flexibel
Om deze problemen te verhelpen, heb ik een aangepaste downloader ontwikkeld, geïnspireerd op een eerder project,
CloudDVR.tv (2012), dat gebruikmaakte van cloudopslag voor live tv en VOD-content. Deze nieuwe oplossing beheert complexe segmentstructuren doeltreffend, biedt hogere downloadsnelheden en vermindert herhaalde pogingen voor een soepelere ervaring.
1. Hogere downloadsnelheid en minder herhaalde pogingen
De aangepaste downloader is ontworpen om de hoogst mogelijke snelheid van het netwerk te benutten, met potentieel één segment per 1/100 seconde. Dit verkortte de downloadtijd aanzienlijk — van 45 minuten naar minder dan 5 minuten voor een film als
Oppenheimer. Door beter segmentbeheer worden herhaalde pogingen verminderd, wat overbodig dataverbruik en kosten drukt, en zorgt voor een betrouwbaardere voortgangsbalk.
2. Gecontroleerde en consistente downloadvolgorde
Met de aangepaste downloader worden de bronnen in exact de volgorde gedownload waarin de gebruiker ze selecteert, waardoor onvoorspelbaarheid wordt geëlimineerd. Hierdoor is de meest gevraagde content het eerst beschikbaar, wat de gebruikerservaring verbetert.
3. Toekomstige verbeteringen van de videokwaliteit
De aangepaste oplossing biedt bovendien de mogelijkheid om in de nabije toekomst de videokwaliteit te verhogen, door de segmentlengte, resolutie en bitrate aan te passen. Deze flexibiliteit stelt ons in staat de offlinekwaliteit geleidelijk te verbeteren, voor een betere kijkervaring.
4. Verbeterde veerkracht en foutafhandeling
De downloader zorgt ervoor dat downloads na onderbrekingen, zoals het naar de achtergrond gaan van de app, crashes of netwerkwisselingen, naadloos worden hervat. Deze robuustheid voorkomt onvolledige downloads en zorgt voor een consistenter offlinegebruik.
5. Beheersbare opslag van middelen
Met deze oplossing hebben ontwikkelaars en gebruikers volledige controle over de gedownloade bronnen. Het is mogelijk om aangepaste beleidsregels in te stellen om ongewilde verwijderingen te voorkomen en het opslaggebruik efficiënt te beheren.
6. Afspelen starten zonder volledige download af te wachten
De aangepaste oplossing ondersteunt progressief afspelen, zodat gebruikers al na enkele seconden kunnen beginnen met kijken, ruim voordat het volledige bestand is binnengehaald. Dit verbetert de kijkervaring aanzienlijk, vooral bij langere of seriële content, hoewel deze functie bij de klant nog niet is geactiveerd.
Resultaten van de implementatie: vergelijking
Tests toonden een duidelijk verschil tussen Apples aanpak en de aangepaste downloader. Een videovergelijking liet duidelijk zien hoe de downloadtijd verschilde:
- Voorheen (Apple): Een complete film als Oppenheimer kostte ongeveer 45 minuten, vanwege lagere snelheden en veel herhaalde pogingen.
- Nu (Aangepast): Dezelfde film wordt nu in minder dan 5 minuten gedownload, dankzij hogere snelheden, minder herhalingen en een prioritaire downloadvolgorde.
De tests lieten zien dat de nieuwe downloader betrouwbaarder en consistenter is, met een minimaal aantal herhalingen en een soepelere voortgangsindicatie voor de gebruiker.
Voordelen van de aangepaste offline-downloadoplossing
- Snellere, betrouwbaardere downloads: door de volledige netwerksnelheid te gebruiken en het aantal herhalingen te beperken.
- Voorspelbare downloadvolgorde: content wordt gedownload in de exacte volgorde waarin deze is geselecteerd.
- Verbeterde veerkracht: een robuuste foutverwerking zorgt voor hervatting vanaf het laatste punt na onderbrekingen.
- Potentieel voor hogere kwaliteit: de flexibiliteit van onze aangepaste downloader maakt toekomstige upgrades in resolutie en bitrate mogelijk.
Verdere toepassingsmogelijkheden
- Digitale borden (Digital Signage): vooraf cachen voor offline weergave op locaties met beperkte connectiviteit.
- Dynamische advertentie-invoeging: gepersonaliseerde advertenties via lokaal opgeslagen manifesten.
- Edge-caching: ideaal voor hybride offline-/online-streaming met lage latentie.
Deze aangepaste downloader laat zien hoe gerichte ontwikkeling kan voldoen aan de specifieke behoeften van SVOD-content, met een naadloze offline-ervaring en de flexibiliteit om toekomstige kwaliteitsverbeteringen door te voeren. Door de nadruk te leggen op snelheid, betrouwbaarheid en gebruikersvoorkeuren verbetert de oplossing de tevredenheid en legt zij een solide basis voor verdere ontwikkelingen in een voortdurend veranderend streaminglandschap.