Migración de HLS en Shaka Player

Descripción general

El SDK de Cast Web Receiver admite la reproducción de contenido con varios protocolos de transmisión web. Según el protocolo que se use, el SDK cargará un reproductor para controlar la reproducción del contenido. En el caso del contenido HLS, se carga la biblioteca del reproductor multimedia (MPL). En el caso del contenido DASH, se carga Shaka Player.

En el futuro, los equipos de ingeniería del SDK de Cast y Shaka Player consolidarán sus esfuerzos para aumentar la compatibilidad con la reproducción de contenido HLS en Shaka Player. MPL ya no recibirá actualizaciones esenciales. Te recomendamos que habilites el uso de Shaka Player para la reproducción de contenido HLS de tu aplicación.

Beneficios de Shaka Player

Cuando se cambia de jugador, las aplicaciones aprovechan los siguientes beneficios:

  • Sesiones de transmisión más sólidas para los usuarios, con mejoras en las fallas y la latencia del tiempo de carga
  • Adopción continua de las funciones más recientes de HLS
  • Mayor claridad en el análisis de causa raíz para los problemas de compatibilidad entre el reproductor y el contenido debido a la naturaleza de código abierto de Shaka Player.
  • La base de código del reproductor de código abierto permite a los socios contribuir al proyecto de reproductor de Shaka.
  • Una reducción significativa en el tiempo de implementación de funciones y correcciones de errores, ya que la cadencia de lanzamientos de Shaka Player es frecuente e independiente de las versiones del SDK de Web Receiver.
  • Mayor control sobre el entorno de reproducción que proporciona la API de shakaVersion
  • Mayor compatibilidad de reproducción de Google con recursos de ingeniería enfocados en la reproducción de HLS en Shaka Player, como se ve en el plan de ruta.

Cronograma

El SDK de Web Receiver pasará a usar Shaka Player como reproductor predeterminado para la reproducción de contenido HLS. Esto se hará en un enfoque por fases para guiar a los socios a través del proceso de migración.

Fase Fecha de inicio Descripción general
1 Oct '22 El SDK de receptor web de Cast presenta APIs para habilitar la reproducción de contenido HLS en Shaka Player.
2 Primer semestre de 2025 El SDK de Cast Web Receiver cambia el reproductor predeterminado a Shaka Player para la reproducción de contenido HLS.

Los equipos de ingeniería del SDK de Web Receiver adoptan un enfoque orientado al rendimiento y solo pasarán a la siguiente fase cuando el rendimiento de Shaka Player sea similar al rendimiento del modelo de referencia de MPL. Estos cambios se anunciarán en el grupo de Google cast-sdk-announcements y se actualizarán en esta guía.

Habilitar

A partir de la versión 3.0.0105 de CAF, hay una configuración a nivel de la aplicación para habilitar el uso de Shaka Player para la reproducción de HLS. Esta versión también presenta una API para seleccionar entre un rango compatible de versiones de Shaka Player para cargar. Estas marcas se proporcionan en la clase CastReceiverOptions a través de las propiedades useShakaForHls y shakaVersion, y se evalúan cuando se inicia CastReceiverContext. Cualquier aplicación que habilite Shaka para HLS debe configurar una versión de Shaka Player de al menos 4.3.4 para aprovechar las mejoras más recientes de HLS. Para habilitar esta función, sigue el fragmento de código que aparece a continuación:

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

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

context.start(castReceiverOptions);

Valida el contenido

Los socios deben validar la reproducción de su contenido en Shaka Player antes de habilitar su uso en su app de producción. Te recomendamos que pruebes cada una de las siguientes variaciones de tu contenido:

  • Tipos de transmisión: EN VIVO o VOD
  • Formatos de contenedor: TS, MP4 o transmisiones elementales
  • Contenido con discontinuidades o anuncios incorporados
  • Reproducción en los siguientes tipos de dispositivos: pantallas inteligentes, dongles de Chromecast, dispositivos Android TV, TVs con Chromecast integrado y bocinas inteligentes

Si encuentras algún error o comportamiento inesperado, informa el error. Una vez que puedas verificar que no hay fallas de reproducción críticas en tu contenido, envía los cambios a tu entorno de producción.

Inhabilitar

El SDK del receptor web cambiará a un modelo de inhabilitación para la reproducción de contenido HLS de Shaka Player según el cronograma. La propiedad useShakaForHls cambiará su valor predeterminado de false a true. En ese momento, las aplicaciones pueden optar por usar MPL para la reproducción de HLS si configuran esta propiedad en false de forma manual. Cuando se inicie CastReceiverContext, el SDK del receptor web volverá a cargar MPL en lugar de Shaka Player. Consulta el siguiente ejemplo para inhabilitar esta opción:

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

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

context.start(castReceiverOptions);

Cómo informar problemas

Alentamos a nuestros socios a informar cualquier problema que encuentren cuando reproduzcan contenido HLS. Como se mencionó, MPL ya no recibirá actualizaciones esenciales. Si tienes algún problema con MPL, sigue los pasos que se indican en la sección Habilitación de la guía para verificar si cambiar a Shaka Player solucionará el problema. Sigue los pasos que se indican a continuación si el problema persiste o si tienes un problema diferente cuando cambias de jugador.

  1. Intenta configurar shakaVersion en una versión de rama diferente para resolver el problema. Por ejemplo, si el problema se produce en la rama 4.3, intenta establecerlo en la versión más reciente de las versiones 4.2.x o 3.3.x. Consulta las notas de la versión de Shaka Player para encontrar las versiones con las actualizaciones más relevantes. Ten en cuenta que la API de shakaVersion tiene una versión mínima y máxima compatibles, como se detalla en la documentación de referencia. Si observas que hay una regresión, informa el problema en el seguimiento de errores de Shaka Player.
  2. Intenta cambiar los parámetros de configuración del reproductor. Shaka Player se puede configurar a través del objeto PlayerConfiguration. El SDK del receptor web define un conjunto de valores predeterminados y permite que las aplicaciones modifiquen esta configuración a través de la propiedad shakaConfig en el objeto PlaybackConfig. Esto se evalúa durante el tiempo de carga cuando se crea la instancia del reproductor. Ver más en

    configuración y opciones de la aplicación. Los valores predeterminados que establece el SDK del receptor web son los valores recomendados.

  3. Comprueba si el problema se informó en el seguimiento de errores de Shaka Player o en el seguimiento de errores de Cast. Haz un comentario sobre el error y agrega información relevante si también describe tu problema.

  4. Prueba tu contenido en el sitio de demostración de Shaka Player. Si descubres que el problema se reproduce en el sitio de demostración de tu contenido, informa un error en el proyecto de Shaka Player.

  5. Informa un error en el Seguimiento de problemas de Cast si tienes un problema único de Shaka Player en los extremos de Cast.

Preguntas frecuentes

Cambiar de jugador puede generar muchas preguntas. A continuación, encontrarás las respuestas a las preguntas más frecuentes para ayudarte a guiarte en el proceso de migración.

¿Debo migrar a Shaka Player?

Recomendamos a nuestros socios que usan contenido HLS que comiencen el proceso de migración lo antes posible. Como resultado, tu app proporcionará una experiencia de transmisión más sólida a los usuarios. Se describen más beneficios en la sección Beneficios de Shaka Player de esta guía. Los socios deben verificar que sus apps funcionen correctamente con Shaka Player para garantizar una transición fluida. Es posible que algunas apps estén en riesgo cuando el SDK del receptor web realice la transición a un modelo sin solicitud de aceptación si los socios no verifican con anticipación que su contenido se reproduzca correctamente en Shaka Player.

¿Cuál es el nivel de esfuerzo esperado cuando se cambia de jugador?

Los socios deberán probar su aplicación y contenido en un entorno de prueba para garantizar que la experiencia del usuario sea similar o mejorada en comparación con HLS. Para ello, los socios deberán habilitar la función en un entorno interno y probar exhaustivamente que su contenido se pueda reproducir con Shaka Player. Consulta Cómo validar el contenido para obtener detalles sobre los aspectos en los que debes enfocarte. Una vez que se validen, los socios deberán agregar la marca para habilitarla en su entorno de aplicación de producción para comenzar a aprovechar los beneficios que ofrece Shaka Player. En un nivel alto, hay cambios mínimos en el desarrollo de software y, en su mayoría, requisitos de QA para que nuestros socios migren correctamente.

Mi aplicación pronto usará HLS para transmitir contenido. ¿Qué debo hacer?

Las integraciones nuevas deben habilitar el uso de Shaka Player para la reproducción. Tu aplicación será más compatible a largo plazo y también aprovechará las nuevas funciones de HLS y las mejoras de rendimiento. Si tu integración nueva tiene problemas, informa un error lo antes posible para darle al equipo de ingeniería tiempo suficiente para resolverlo. Si tu aplicación tiene una fecha límite ajustada, incluye esa información en el informe de errores, así como el impacto, para priorizar según corresponda. Nuestro equipo de ingeniería trabajará para proporcionar una solución que brinde una asistencia adecuada a tus usuarios.

Mi contenido o app no funciona con Shaka Player. ¿Qué hago ahora?

Debes informar un error en el proyecto de Shaka Player o en el proyecto de Cast (consulta Cómo informar problemas). El equipo de Ingeniería del SDK de Cast supervisa de forma activa estos dispositivos de rastreo y trabajará contigo para resolver cualquier problema que tengas. Cuanto antes se detecten estos problemas, más tiempo tendrán para corregirlos.

MPL ya no recibe actualizaciones críticas. ¿Qué significa exactamente eso?

Históricamente, MPL adoptó nuevas funciones de HLS y corrigió errores importantes a través de actualizaciones críticas. Ahora que MPL ya no las recibirá, no se agregarán nuevas funciones de HLS al reproductor. Del mismo modo, los problemas informados para la reproducción de HLS en MPL no se corregirán en MPL. Estos problemas deberían resolverse si cambias al reproductor Shaka para la reproducción. Si los problemas persisten, se debe informar un error con los problemas relevantes que se enfrentan en Shaka Player. Los socios deben dejar de usar MPL.

Mi contenido usa el protocolo Smooth Streaming. ¿Cómo afecta esto a mi aplicación?

Los objetos binarios de MPL seguirán alojados y tu aplicación receptora podrá acceder a ellos. Sin embargo, no se admitirán las solicitudes de funciones ni las correcciones de errores relacionadas con la transmisión fluida, ya que la especificación de transmisión fluida no se actualizó hace más de cuatro años. Te recomendamos que migres tu contenido para usar el protocolo de transmisión DASH o HLS y seguir recibiendo actualizaciones de rendimiento y asistencia para tu contenido.

Mi contenido no usa los protocolos HLS ni Smooth Stream. ¿Cómo afecta esto a mi solicitud?

Si tu biblioteca de contenido no usa ninguno de esos protocolos de transmisión, la migración no te afectará. No se requieren cambios en tu aplicación.