Migración de HLS en Shaka Player

Descripción general

El SDK de la app receptora de transmisión web admite la reproducción de contenido mediante varios protocolos de transmisión web. Según el protocolo que se use, el SDK carga un reproductor para controlar la reproducción del contenido. En el caso de contenido HLS, se carga la biblioteca de Media Player (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. La MPL ya no recibirá actualizaciones importantes. Te recomendamos que habilites el uso del reproductor Shaka para la reproducción de contenido HLS de tu aplicación.

Beneficios de Shaka Player

Cuando se cambian los jugadores, las aplicaciones aprovechan los siguientes beneficios:

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

Cronograma

El SDK de Web Receiver pasará al uso de 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 de 2022 El SDK de app receptora de transmisión web de Google presenta API para habilitar la reproducción de contenido HLS en Shaka Player.
2 2o sem. de 2024 El SDK del receptor web de transmisión cambia el reproductor predeterminado a Shaka Player para la reproducción de contenido HLS.

Los equipos de ingeniería del SDK de receptor web están adoptando un enfoque basado en el rendimiento y solo pasarán a la siguiente fase cuando el rendimiento de Shaka Player esté al mismo nivel que el rendimiento del modelo de referencia de la 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 HLS. Esta versión también incluye una API para seleccionar de 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 acepte usar Shaka para HLS debe configurar una versión de Shaka Player de al menos 4.3.4 a fin de aprovechar las mejoras más recientes de HLS. Para habilitarlas, sigue el siguiente fragmento de código:

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 el reproductor de Shaka antes de habilitar el reproductor en su app de producción. Recomendamos que pruebes cada una de las variaciones del contenido que se enumeran a continuación:

  • Tipos de transmisión: LIVE o VOD
  • Formatos de contenedor: TS, MP4 o transmisiones básicas
  • Contenido con discontinuidades o anuncios incorporados
  • Reproducción en los siguientes tipos de dispositivos: pantallas inteligentes, llaves Chromecast, dispositivos Android TV, TVs con Chromecast integrado y bocinas inteligentes

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

Inhabilitar

El SDK de receptor web realizará la transición 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 usar la MPL para la reproducción HLS mediante la configuración manual de esta propiedad en false. Cuando se inicia CastReceiverContext, el SDK de Web Receiver volverá a cargar la MPL en lugar de Shaka Player. Consulta el siguiente ejemplo para saber cómo inhabilitar la función:

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

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

context.start(castReceiverOptions);

Cómo informar problemas

Recomendamos a nuestros socios que informen cualquier problema que encuentren cuando reproduzcan contenido de HLS. Como se mencionó, la MPL ya no recibirá actualizaciones críticas. Si se detecta algún problema con la MPL, sigue los pasos que se indican en la sección de habilitación de la guía para verificar si cambiar a Shaka Player desbloqueará el problema. Sigue los pasos que se indican a continuación si el problema persiste o si experimentas uno 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 experimenta en la rama 4.3, intenta configurarlo 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 compatible mínima y máxima, como se detalla en la documentación de referencia. Si observas que hay una regresión, informa el problema en el seguimiento de problemas 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 de Web Receiver 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 jugador. Ver más en

    la configuración y las opciones de la aplicación. Los valores predeterminados que establece el SDK de Web Receiver son los recomendados.

  3. Verifica si el problema se informó en el seguimiento de problemas de Shak Player o el seguimiento de problemas de Cast. Comenta el error y agrega cualquier 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 repite en el sitio de demostración de tu contenido, informa un error con el proyecto Shaka Player.

  5. Informa un error en la Herramienta de seguimiento de errores de Cast si tienes un problema único de Shaka Player en los extremos de transmisión.

Preguntas frecuentes

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

¿Debo migrar a Shaka Player?

Recomendamos a nuestros socios que usen contenido HLS que comiencen el proceso de migración lo antes posible. Como resultado, tu app brindará una experiencia de transmisión más sólida para los usuarios. Puedes encontrar más beneficios en la sección Beneficios de Shak Player de esta guía. Los socios deben verificar que sus apps funcionen correctamente con Shaka Player para garantizar una transición fluida. Algunas apps pueden estar en riesgo de cuando el SDK del receptor web pase a un modelo de inhabilitació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 que se espera al cambiar de jugador?

Los socios deberán probar su aplicación y contenido en un entorno de pruebas para asegurarse de que la experiencia del usuario sea similar o mejore 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 pueda reproducirse con Shaka Player. Consulta cómo validar el contenido para obtener detalles sobre los aspectos en los que debes enfocarte. Una vez validados, los socios deberán agregar la marca para habilitar su entorno de aplicación de producción y comenzar a aprovechar los beneficios que proporciona Shaka Player. A nivel general, existen cambios mínimos en el desarrollo de software y, en su mayoría, requisitos de control de calidad para que nuestros socios migren con éxito.

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

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

Mi contenido o app no funciona con Shaka Player, ¿qué sigue?

Debes informar un error con el proyecto Shaka Player o con el proyecto de transmisión (consulta Cómo informar problemas). El equipo de ingeniería del SDK de Cast supervisa activamente estas herramientas de seguimiento y trabajará contigo para resolver cualquier problema que ocurra. Cuanto antes se detecten estos problemas, más tiempo tendrán para entregar una solución.

La MPL ya no recibe actualizaciones críticas, ¿qué significa eso exactamente?

Históricamente, la MPL adoptó nuevas funciones HLS y aplicó parches a errores importantes a través de actualizaciones críticas. Ahora que la 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 HLS en MPL no se corregirán en MPL. Estos problemas deberían resolverse cambiando al Reproductor de Shaka para la reproducción. Si los problemas persisten, se debe informar un error con los problemas relevantes que se enfrentaron en el reproductor de Shaka. Los socios deben dejar de usar la MPL.

Mi contenido utiliza el protocolo Smooth Streaming, ¿cómo afecta esto a mi aplicación?

Los objetos binarios de la MPL seguirán alojados y accesibles para la aplicación receptora. Sin embargo, no se admitirán las solicitudes de funciones ni las correcciones de errores relacionadas con Smooth Streaming, ya que la especificación de Smooth Streaming no se actualizó en más de cuatro años. Recomendamos que migres tu contenido para usar el protocolo de transmisión DASH o HLS a fin de seguir recibiendo actualizaciones de rendimiento y compatibilidad con tu contenido.

Mi contenido no usa los protocolos HLS o Smooth Stream, ¿cómo afecta esto a mi aplicación?

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