Testflight 6.4.0(58)
Dans un environnement SVOD (Subscription Video on Demand), les téléchargements hors ligne sont une fonctionnalité cruciale pour les utilisateurs souhaitant profiter de contenu sans connexion Internet. Apple propose, via AVFoundation, une
solution HLS hors ligne, accompagnée d’une application de démonstration (HLSCatalog) pour en illustrer l’utilisation. Bien que cette solution convienne à de nombreux cas de streaming standard, l’application de notre client a rencontré plusieurs problèmes en raison de configurations spécifiques des flux et de schémas de téléchargement. Cet article explique pourquoi j’ai développé une solution de téléchargement personnalisée pour iOS et iPadOS, améliorant la vitesse, l’ordre et la résilience des téléchargements, tout en résolvant des problèmes qui affectaient l’expérience utilisateur et les coûts de la plateforme.
Défis avec la Solution HLS Hors Ligne d’Apple
1. Fréquence Élevée de Segments et Consommation de Bande Passante
De nombreux flux utilisaient des segments d’environ 1,6 seconde, générant des dizaines de milliers de fragments pour les longs métrages comme
Oppenheimer. Cette segmentation très fréquente augmentait la consommation de bande passante et sollicitait fortement les ressources, provoquant souvent des téléchargements incomplets et des réessais répétés.
2. Désalignement des Segments Audio et Vidéo
Certains épisodes de la bibliothèque, comme
The Good Doctor, présentaient des durées de segment différentes pour l’audio et la vidéo (par exemple, 4 secondes pour la vidéo contre 3,2 secondes pour l’audio). Ce désalignement compliquait la synchronisation et rendait la gestion des segments plus délicate.
3. Boucles de Réessai et Frustration Utilisateur
La solution d’Apple est conçue pour télécharger à un débit de 6 à 10 fois la vitesse de lecture réelle (un film d’une heure se télécharge idéalement en 6 à 10 minutes). Toutefois, ce système rencontrait souvent des problèmes de segments incomplets, déclenchant des boucles de réessai qui augmentaient non seulement les coûts de bande passante, mais aussi la frustration des utilisateurs. Les barres de progression pouvaient atteindre 99 % avant de retomber à 0 %, générant une expérience confuse et décourageante.
4. Ordre de Téléchargement Imprévisible
La méthode d’Apple télécharge souvent plusieurs ressources en parallèle, mais sans logique de priorité clairement définie. Ainsi, le contenu sélectionné en premier n’était pas nécessairement téléchargé en premier, ce qui ajoutait à l’imprévisibilité de l’expérience.
5. Qualité Vidéo Limitée
Pour réduire les problèmes de téléchargement, la qualité vidéo avait été délibérément abaissée (résolution et bitrate inférieurs au streaming en ligne). Bien que cette mesure ait été adoptée avant mon implication afin de limiter les échecs de téléchargement, elle laissait certains utilisateurs déçus par la qualité hors ligne.
Solution de Téléchargement Personnalisée : Rapide, Fiable et Évolutive
Pour remédier à ces problèmes, j’ai développé un téléchargeur personnalisé inspiré d’un projet antérieur,
CloudDVR.tv, qui exploitait un stockage cloud pour la TV en direct et la VOD. Cette nouvelle solution gère efficacement la complexité des segments, offre de meilleures vitesses de téléchargement et diminue les réessais, pour une expérience fluide.
1. Vitesse de Téléchargement Accrue et Moins de Réessais
Le téléchargeur personnalisé est conçu pour atteindre la vitesse maximale autorisée par le réseau, avec un segment potentiellement téléchargé toutes les 1/100e de seconde. Cela a permis de réduire drastiquement le temps de téléchargement : pour
Oppenheimer, on passe de 45 minutes à moins de 5 minutes. En améliorant la gestion des segments, les réessais se font plus rares, limitant les coûts de bande passante et offrant un suivi de progression plus fiable.
2. Ordre de Téléchargement Contrôlé
Avec le téléchargeur personnalisé, les ressources sont téléchargées dans l’exact ordre sélectionné par l’utilisateur, éliminant l’imprévisibilité. Ainsi, le contenu le plus attendu est disponible en premier, améliorant la satisfaction utilisateur.
3. Améliorations Futures de la Qualité Vidéo
La solution personnalisée ouvre la possibilité d’augmenter la qualité vidéo à l’avenir, en ajustant la longueur des segments, la résolution et le bitrate. Cette flexibilité permettra d’accroître progressivement la qualité du contenu hors ligne, pour une expérience de visionnage de meilleure fidélité.
4. Résilience et Gestion des Erreurs
Le téléchargeur est conçu pour reprendre automatiquement le téléchargement après une interruption (mise en arrière-plan, crash de l’app, changement de réseau, etc.). Cette robustesse évite les téléchargements inachevés et améliore la cohérence de l’expérience hors ligne.
5. Gestion Personnalisée des Ressources
Grâce à cette solution, l’application peut contrôler précisément les téléchargements stockés en local. Il est possible d’implémenter des politiques personnalisées pour éviter les suppressions inopinées et gérer l’espace de stockage de manière optimale.
6. Lecture Avant la Fin du Téléchargement
Le téléchargeur gère également la lecture progressive, permettant aux utilisateurs de commencer à regarder un contenu au bout de quelques secondes seulement, bien avant que l’asset ne soit complètement téléchargé. Cela améliore considérablement l’expérience, notamment pour les contenus longs ou les séries, même si cette fonctionnalité n’est pas encore activée chez le client.
Résultats de l’Implémentation : Comparaison
Lors des tests, la différence entre l’approche d’Apple et le téléchargeur personnalisé est évidente. Une comparaison vidéo montre clairement le gain de temps au téléchargement :
- Avant (Apple) : Un film complet comme Oppenheimer nécessitait environ 45 minutes pour se télécharger, à cause des vitesses limitées et des réessais fréquents.
- Après (Personnalisé) : Le même film se télécharge désormais en moins de 5 minutes, grâce à une vitesse accrue, des réessais moins nombreux et un ordre de téléchargement priorisé.
Ces tests ont montré que le nouveau téléchargeur offre davantage de fiabilité et de cohérence, avec un minimum de réessais et un suivi de progression plus fluide pour l’utilisateur.
Avantages de la Solution Personnalisée
- Téléchargements plus rapides et plus fiables : en utilisant toute la bande passante disponible et en réduisant le nombre de réessais.
- Ordre de téléchargement prévisible : le contenu est téléchargé dans l’ordre exact où il a été sélectionné.
- Résilience renforcée : la gestion robuste des erreurs permet la reprise du téléchargement après un incident.
- Amélioration potentielle de la qualité : la flexibilité du téléchargeur ouvre la voie à une meilleure résolution et un meilleur bitrate.
Applications Plus Larges de la Technologie
- Affichage Dynamique : pré-chargement pour une lecture hors ligne dans des lieux à connectivité réduite.
- Insertion Publicitaire Dynamique : personnalisation des publicités via des manifestes locaux stockés en cache.
- Cache en Périphérie : idéal pour un streaming hybride hors ligne/en ligne à faible latence.
Ce téléchargeur personnalisé illustre comment un développement ciblé peut répondre aux besoins spécifiques des contenus SVOD, en offrant une expérience hors ligne fluide et la flexibilité nécessaire pour s’adapter à de futures améliorations de qualité. En privilégiant la vitesse, la fiabilité et les priorités de l’utilisateur, la solution renforce la satisfaction et jette les bases d’évolutions futures dans le paysage du streaming en pleine mutation.