In un ambiente SVOD (Subscription Video on Demand), i download offline sono una funzionalità fondamentale per consentire agli utenti di usufruire dei contenuti senza connessione a Internet. Apple offre, tramite AVFoundation, una
soluzione HLS offline con un’app dimostrativa (HLSCatalog) a scopo illustrativo. Sebbene questa soluzione sia adatta a molti scenari di streaming standard, l’app del nostro cliente ha incontrato diversi problemi legati a configurazioni specifiche dei flussi e a schemi di download. In questo articolo spiego perché ho sviluppato, per iOS e iPadOS, una soluzione di download personalizzata che migliora velocità, ordine e resilienza dei download, risolvendo al contempo problemi che influiscono sull’esperienza utente e sui costi della piattaforma.
Problemi riscontrati con la soluzione HLS offline di Apple
1. Frequenza elevata di segmenti e consumo di larghezza di banda
Molti flussi utilizzavano segmenti di circa 1,6 secondi, generando decine di migliaia di segmenti per film lunghi come
Oppenheimer. Questa frammentazione molto frequente aumentava il consumo di larghezza di banda e gravava notevolmente sulle risorse, causando spesso download incompleti e continui tentativi di ripetizione.
2. Disallineamento tra segmenti audio e video
Alcuni episodi nella libreria, come
The Good Doctor, presentavano durate diverse per l’audio e il video (ad esempio, 4 secondi per il video contro 3,2 secondi per l’audio). Questo disallineamento complicava la sincronizzazione e rendeva più complessa la gestione dei segmenti.
3. Tentativi ripetuti e frustrazione degli utenti
La soluzione di Apple è pensata per scaricare i contenuti a una velocità di 6-10 volte superiore a quella di riproduzione (un film di un’ora dovrebbe idealmente scaricarsi in 6-10 minuti). Tuttavia, si verificavano frequentemente segmenti incompleti che innescavano tentativi di ripetizione, aumentando non solo i costi di larghezza di banda ma anche la frustrazione degli utenti. La barra di avanzamento spesso raggiungeva il 99% per poi tornare allo 0%, creando confusione e scoraggiamento.
4. Ordine di download imprevedibile
Il metodo di Apple esegue spesso il download di più risorse in parallelo, senza una priorità chiaramente definita. Di conseguenza, i contenuti selezionati per primi non venivano necessariamente scaricati per primi, rendendo l’esperienza ancora più imprevedibile.
5. Qualità video limitata
Per mitigare i problemi di download, la qualità video era stata volutamente ridotta (risoluzione e bitrate inferiori rispetto allo streaming online). Sebbene questa misura fosse stata adottata prima del mio coinvolgimento per ridurre al minimo i guasti di download, alcuni utenti erano insoddisfatti della qualità offline.
Soluzione di download offline personalizzata: veloce, affidabile e flessibile
Per affrontare questi problemi, ho sviluppato un downloader personalizzato ispirato a un progetto precedente,
CloudDVR.tv (2012), che sfruttava lo storage cloud per la TV in diretta e i contenuti VOD. Questa nuova soluzione gestisce in modo efficiente la complessità dei segmenti, offre velocità di download più elevate e riduce i tentativi di ripetizione, garantendo un’esperienza più fluida.
1. Maggiore velocità di download e meno tentativi ripetuti
Il downloader personalizzato è progettato per scaricare alla massima velocità consentita dalla rete, arrivando potenzialmente a un segmento ogni 1/100 di secondo. Ciò ha permesso di ridurre drasticamente i tempi di download: per
Oppenheimer, si è passati da 45 minuti a meno di 5 minuti. Migliorando la gestione dei segmenti, i tentativi di ripetizione sono diminuiti, contenendo la ridondanza e i costi di larghezza di banda, oltre a offrire un tracciamento più lineare dell’avanzamento.
2. Ordine di download controllato e coerente
Con il downloader personalizzato, le risorse vengono scaricate nell’ordine esatto in cui l’utente le seleziona, eliminando l’imprevedibilità. In questo modo, i contenuti più richiesti sono disponibili per primi, aumentando la soddisfazione dell’utente.
3. Futuri miglioramenti della qualità video
La soluzione personalizzata consente anche di migliorare la qualità video in futuro, regolando la lunghezza dei segmenti, la risoluzione e il bitrate. Questa flessibilità permette di aumentare gradualmente la qualità dei contenuti scaricati, offrendo un’esperienza di visione di livello superiore.
4. Maggiore resilienza e gestione degli errori
Il downloader garantisce che i download riprendano automaticamente dopo un’interruzione (messa in background, crash dell’app o cambio di rete). Questa robustezza evita download incompleti e rende più coerente l’esperienza offline.
5. Gestione personalizzata delle risorse
Grazie a questa soluzione, l’applicazione può controllare in modo preciso i download archiviati localmente. È possibile implementare politiche personalizzate per evitare eliminazioni accidentali e gestire lo spazio di archiviazione in modo efficiente.
6. Avviare la riproduzione senza attendere il download completo
Il downloader personalizzato supporta la riproduzione progressiva, consentendo agli utenti di iniziare a guardare i contenuti dopo pochi secondi, ancor prima che il file sia scaricato interamente. Questa funzione migliora in modo significativo l’esperienza di visione, soprattutto per contenuti lunghi o seriali, sebbene non sia ancora stata abilitata per il cliente.
Risultati dell’implementazione: confronto
I test hanno evidenziato una chiara differenza tra l’approccio di Apple e il downloader personalizzato. Un confronto video mostra la diversità nei tempi di download:
- Prima (Apple): Un film completo come Oppenheimer richiedeva circa 45 minuti a causa di velocità ridotte e tentativi di ripetizione frequenti.
- Ora (Personalizzato): Lo stesso film viene scaricato in meno di 5 minuti, grazie a una velocità più elevata, meno tentativi e un ordine di scaricamento prioritario.
I test hanno mostrato che il nuovo downloader offre maggiore affidabilità e coerenza, con tentativi ridotti al minimo e un tracciamento dell’avanzamento più fluido per l’utente.
Vantaggi della soluzione di download offline personalizzata
- Download più rapidi e affidabili: sfruttando tutta la larghezza di banda disponibile e riducendo i tentativi di ripetizione.
- Ordine di download prevedibile: i contenuti vengono scaricati nell’ordine esatto in cui sono stati selezionati.
- Maggiore resilienza: una gestione robusta degli errori consente di riprendere il download dal punto di interruzione dopo problemi di rete o dell’app.
- Potenziale per qualità superiore: la flessibilità del downloader personalizzato consente di aumentare risoluzione e bitrate in futuro.
Altri possibili utilizzi della tecnologia
- Digital Signage: pre-caricamento per la riproduzione offline in luoghi con connettività limitata.
- Inserimento dinamico di annunci: annunci pubblicitari personalizzati tramite manifest locali memorizzati in cache.
- Edge Caching: ideale per una soluzione di streaming ibrida offline/online a bassa latenza.
Questo downloader personalizzato dimostra come uno sviluppo mirato possa soddisfare le esigenze specifiche dei contenuti SVOD, offrendo un’esperienza offline fluida e la flessibilità per possibili miglioramenti futuri della qualità. Puntando su velocità, affidabilità e priorità dell’utente, la soluzione aumenta la soddisfazione e getta le basi per futuri sviluppi in un panorama dello streaming in continua evoluzione.