HLS lors de la migration des joueurs Shaka

Présentation

Le SDK Cast Web Receiver permet de lire des contenus à l'aide de plusieurs protocoles de streaming Web. En fonction du protocole utilisé, le SDK charge un lecteur pour gérer la lecture du contenu. Dans le cas du contenu HLS, la bibliothèque Media Player (MPL) est chargée. Dans le cas d'un contenu DASH, Shaka Player est chargé.

À l'avenir, les équipes d'ingénieurs du SDK Cast et de Shaka Player vont unir leurs efforts pour améliorer la prise en charge de la lecture de contenu HLS sur Shaka Player. MPL ne recevra plus de mises à jour critiques. Nous vous recommandons d'activer Shaka Player pour la lecture du contenu HLS de votre application.

Avantages de Shaka Player

En changeant de lecteur, les applications bénéficient des avantages suivants :

  • Sessions de streaming plus robustes pour les utilisateurs, avec des améliorations en termes d'échecs de temps de chargement et de latence.
  • Adoption continue des dernières fonctionnalités HLS.
  • Plus de clarté dans l'analyse des causes profondes pour les problèmes de compatibilité entre le lecteur et le contenu en raison de la nature Open Source de Shaka Player.
  • La base de code du lecteur Open Source permet aux partenaires de contribuer au projet Shaka Player.
  • Réduction significative du temps nécessaire pour déployer les fonctionnalités et les corrections de bugs en production, car la cadence de publication de Shaka Player est fréquente et indépendante de celle du SDK Web Receiver.
  • Un contrôle plus précis de l'environnement de lecture fourni par l'API shakaVersion.
  • Assistance de lecture améliorée de Google avec des ressources d'ingénierie axées sur la lecture HLS sur Shaka Player, comme indiqué dans la feuille de route.

Chronologie

Le SDK Web Receiver utilisera désormais Shaka Player comme lecteur par défaut pour la lecture de contenu HLS. Cette migration se fera par étapes pour guider les partenaires tout au long du processus.

Phase Date de début Présentation
1 Oct. 2022 Le SDK Récepteur Web Cast introduit des API pour activer la lecture de contenu HLS sur Shaka Player.
2 Nov 25 Le SDK Cast Web Receiver remplace le lecteur par défaut par Shaka Player pour la lecture de contenu HLS.

Les équipes d'ingénierie du SDK Web Receiver adoptent une approche axée sur les performances et ne passeront à la phase suivante que lorsque les performances de Shaka Player seront équivalentes à celles de référence de MPL. Ces modifications seront annoncées dans le groupe Google cast-sdk-announcements et mises à jour dans ce guide.

Activer

À partir de la version 3.0.0105 de CAF, il existe une configuration au niveau de l'application pour activer l'utilisation de Shaka Player pour la lecture HLS. Cette version introduit également une API permettant de sélectionner une version de Shaka Player à charger parmi une plage de versions compatibles. Ces indicateurs sont fournis dans la classe CastReceiverOptions via les propriétés useShakaForHls et shakaVersion, et sont évalués lorsque le CastReceiverContext est démarré. Toute application qui choisit d'utiliser Shaka pour HLS doit définir une version de Shaka Player d'au moins 4.15.12 pour profiter des dernières améliorations apportées à HLS. Pour activer cette fonctionnalité, utilisez l'extrait de code ci-dessous :

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;

context.start(castReceiverOptions);

Valider le contenu

Les partenaires doivent valider la lecture de leur contenu sur Shaka Player avant d'activer l'utilisation de Shaka Player dans leur application de production. Nous vous recommandons de tester chacune des variantes de votre contenu listées ci-dessous :

  • Types de flux : LIVE ou VOD
  • Formats de conteneur : TS, MP4 ou flux élémentaires
  • Contenu avec des discontinuités ou des annonces intégrées
  • Lecture sur les types d'appareils suivants : écrans connectés, dongles Google Cast, appareils Android TV, téléviseurs avec Google Cast, enceintes connectées

Si vous rencontrez des erreurs ou un comportement inattendu, signalez un bug. Une fois que vous avez vérifié qu'il n'y a pas d'échecs de lecture critiques dans votre contenu, transférez les modifications vers votre environnement de production.

Désactiver

Le SDK Web Receiver passera à un modèle de désactivation pour la lecture de contenu HLS Shaka Player, conformément au calendrier. La valeur par défaut de la propriété useShakaForHls passera de false à true. À ce moment-là, les applications peuvent choisir d'utiliser MPL pour la lecture HLS en définissant manuellement cette propriété sur false. Lorsque CastReceiverContext est démarré, le SDK Web Receiver revient au chargement de MPL au lieu de Shaka Player. Consultez l'exemple ci-dessous pour savoir comment désactiver cette fonctionnalité :

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = false;

context.start(castReceiverOptions);

Signaler des problèmes

Nous encourageons nos partenaires à signaler tout problème qu'ils rencontrent lors de la lecture de contenu HLS. Comme indiqué, MPL ne recevra plus de mises à jour critiques. Si vous rencontrez des problèmes avec MPL, suivez les étapes de la section S'inscrire du guide pour vérifier si le passage à Shaka Player résoudra votre problème. Suivez les étapes ci-dessous si le problème persiste ou si vous en rencontrez un autre lorsque vous changez de lecteur.

  1. Essayez de définir shakaVersion sur une autre version de branche pour résoudre le problème. Par exemple, si le problème se produit sur la branche 4.15, essayez de le définir sur la dernière version dans une autre branche. Consultez les notes de version de Shaka Player pour trouver les versions contenant les mises à jour les plus pertinentes. Notez que l'API shakaVersion a une version minimale et maximale compatible, comme indiqué dans la documentation de référence. Si vous constatez une régression, signalez le problème dans l'outil de suivi des problèmes de Shaka Player.
  2. Essayez de modifier les paramètres de configuration du lecteur. Shaka Player est configurable via l'objet PlayerConfiguration. Le SDK Web Receiver définit un ensemble de valeurs par défaut et permet aux applications de modifier cette configuration via la propriété shakaConfig dans l'objet PlaybackConfig. Cette valeur est évaluée lors du temps de chargement, lorsque l'instance du lecteur est créée. Pour en savoir plus, consultez Configuration et options des applications. Les valeurs par défaut définies par le SDK Web Receiver sont les valeurs recommandées.
  3. Vérifiez si le problème a été signalé dans l'outil de suivi des problèmes Shaka Player ou dans l'outil de suivi des problèmes Cast. Commentez le bug et ajoutez toute information pertinente s'il décrit également votre problème.
  4. Testez votre contenu sur le site de démonstration Shaka Player. Si vous constatez que le problème se reproduit sur le site de démonstration de votre contenu, signalez-le au projet Shaka Player.
  5. Signalez un bug dans l'outil de suivi des problèmes Cast si vous rencontrez un problème spécifique à Shaka Player sur les points de terminaison Cast.

Questions fréquentes

Changer de lecteur peut soulever de nombreuses questions. Vous trouverez ci-dessous les réponses aux questions les plus fréquentes pour vous guider tout au long du processus de migration.

Dois-je migrer vers Shaka Player ?

Nous encourageons nos partenaires qui utilisent du contenu HLS à commencer le processus de migration dès que possible. Votre application offrira ainsi une expérience de streaming plus robuste à vos utilisateurs. D'autres avantages sont décrits dans la section Avantages de Shaka Player de ce guide. Les partenaires doivent vérifier que leurs applications fonctionnent correctement avec Shaka Player pour assurer une transition fluide. Certaines applications peuvent être à risque lorsque le SDK Web Receiver passe à un modèle de désactivation si les partenaires ne vérifient pas à l'avance que leur contenu est lu correctement sur Shaka Player.

Quel est le niveau d'effort attendu lors du changement de joueurs ?

Les partenaires devront tester leur application et leur contenu dans un environnement de test pour s'assurer que l'expérience utilisateur est similaire ou améliorée par rapport à HLS. Pour ce faire, les partenaires devront activer la fonctionnalité dans un environnement interne et tester minutieusement la lecture de leur contenu à l'aide de Shaka Player. Pour en savoir plus sur les aspects de votre contenu sur lesquels vous devez vous concentrer, consultez Valider le contenu. Une fois validés, les partenaires devront ajouter le flag pour activer les avantages fournis par Shaka Player dans leur environnement d'application de production. En général, les modifications apportées au développement logiciel sont minimes. La migration réussie dépend principalement des exigences de QA pour nos partenaires.

Mon application utilisera bientôt HLS pour diffuser du contenu. Que dois-je faire ?

Les nouvelles intégrations doivent activer Shaka Player pour la lecture. Votre application sera mieux prise en charge à long terme et profitera également des nouvelles fonctionnalités HLS et des améliorations de performances. Si votre nouvelle intégration rencontre des problèmes, signalez un bug dès que possible pour donner à l'équipe d'ingénierie suffisamment de temps pour résoudre le problème. Si votre application a une échéance serrée, incluez cette information dans le rapport de bug, ainsi que l'impact, pour que nous puissions le traiter en priorité. Notre équipe d'ingénieurs s'efforcera de trouver une solution pour aider vos utilisateurs de manière adéquate.

Mon contenu ou mon application ne fonctionnent pas avec Shaka Player. Que faire ?

Vous devez signaler un bug au projet Shaka Player ou Cast (voir Signaler des problèmes). L'équipe d'ingénieurs du SDK Cast surveille activement ces trackers et vous aidera à résoudre les problèmes rencontrés. Plus ces problèmes sont détectés tôt, plus les développeurs auront de temps pour les résoudre.

MPL ne reçoit plus de mises à jour critiques. Qu'est-ce que cela signifie exactement ?

Historiquement, MPL a adopté de nouvelles fonctionnalités HLS et corrigé des bugs majeurs grâce à des mises à jour critiques. Étant donné que le MPL ne les recevra plus, aucune nouvelle fonctionnalité HLS ne sera ajoutée au lecteur. De même, les problèmes signalés concernant la lecture HLS sur MPL ne seront pas résolus dans MPL. Ces problèmes devraient être résolus en passant à Shaka Player pour la lecture. Si les problèmes persistent, un bug doit être signalé avec les problèmes rencontrés sur Shaka Player. Les partenaires doivent cesser d'utiliser MPL.

Mon contenu utilise le protocole Smooth Streaming. Quel est l'impact sur mon application ?

Les binaires MPL seront toujours hébergés et accessibles à votre application réceptrice. Toutefois, les demandes de fonctionnalités et les corrections de bugs liés à Smooth Streaming ne seront pas prises en charge, car la spécification Smooth Streaming n'a pas été mise à jour depuis plus de quatre ans. Nous vous recommandons de migrer votre contenu pour utiliser le protocole de streaming DASH ou HLS afin de continuer à recevoir des informations sur les performances et une assistance pour votre contenu.

Mon contenu n'utilise pas les protocoles HLS ni Smooth Stream. Quel impact cela a-t-il sur mon application ?

Si votre bibliothèque de contenu n'utilise aucun de ces protocoles de streaming, la migration n'aura aucune incidence sur vous. Aucune modification n'est requise dans votre application.