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 carga un reproductor para controlar la reproducción del contenido. En el caso del contenido HLS, se carga la biblioteca de Media Player (MPL). En el caso del contenido DASH, Shaka Player se carga.

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

Al cambiar de reproductor, las aplicaciones aprovechan los siguientes beneficios:

  • Sesiones de transmisión más sólidas para los usuarios, con mejoras en las fallas de tiempo de carga y la latencia
  • Adopción continua de las funciones más recientes de HLS
  • Mayor claridad en el análisis de la 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 que los socios contribuyan al proyecto de Shaka Player
  • Reducción significativa del tiempo de producción de funciones y correcciones de errores , ya que la cadencia de lanzamiento de Shaka Player es frecuente e independiente de los lanzamientos del SDK de Web Receiver
  • Mayor control sobre el entorno de reproducción que proporciona la shakaVersion API.
  • 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 trabajo.

Cronograma

El SDK de Web Receiver hará la transición para usar Shaka Player como el reproductor predeterminado para la reproducción de contenido HLS. Esto se hará de forma gradual para guiar a los socios en el proceso de migración.

Fase Fecha de inicio Descripción general
1 Octubre de 2022 El SDK de Cast Web Receiver introdujo APIs para habilitar la reproducción de contenido HLS en Shaka Player.
2 18 de mayo de 2026 El SDK de Cast Web Receiver cambió el reproductor predeterminado a Shaka Player para la reproducción de contenido HLS.

Los equipos de ingeniería del SDK de Web Receiver adoptarán un enfoque basado en el rendimiento y solo pasarán a la siguiente fase cuando el rendimiento de Shaka Player esté a la par con el rendimiento 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 introduce una API para seleccionar entre un rango admitido de versiones de Shaka Player para cargar. Estas marcas se proporcionan en la CastReceiverOptions clase a través de las useShakaForHls y shakaVersion propiedades, y se evalúan cuando se inicia CastReceiverContext. Cualquier aplicación que habilite Shaka para HLS debe establecer una versión de Shaka Player de al menos 4.15.53 para aprovechar las mejoras más recientes de HLS. Para habilitar, 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 Shaka Player antes de habilitar el uso de Shaka Player en su app de producción. Te recomendamos que pruebes cada una de las variaciones de tu contenido que se indican a continuación:

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

Si encuentras errores o comportamientos inesperados, informa un 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 de Web Receiver hará 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 optar por usar MPL para la reproducción de HLS si configuran manualmente esta propiedad como false. Cuando se inicie CastReceiverContext, el SDK de Web Receiver volverá a cargar MPL en lugar de Shaka Player. Consulta el siguiente ejemplo para inhabilitar:

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 de la Habilitar sección de la guía para verificar si cambiar a Shaka Player desbloqueará tu problema. Sigue los pasos que se indican a continuación si el problema persiste o si encuentras un problema diferente cuando cambias de reproductor.

  1. Intenta configurar el shakaVersion en una versión de rama diferente para resolver el problema. Por ejemplo, si el problema se produce en la rama 4.15, intenta configurarlo en la versión más reciente de otra rama. Consulta las notas de la versión de Shaka Player para encontrar versiones con las actualizaciones más relevantes. Ten en cuenta que la shakaVersion API tiene una versión mínima y máxima admitida, 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 PlayerConfiguration objeto. 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 reproductor. Consulta más información en configuración y opciones de la aplicación. Los valores predeterminados establecidos por el SDK de Web Receiver 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. 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 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 Issue Tracker de Cast si tienes un problema exclusivo de Shaka Player en los endpoints de Cast.

Preguntas frecuentes

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

¿Debo migrar a Shaka Player?

Alentamos a nuestros socios que usan contenido HLS a que comiencen el proceso de migración lo antes posible. Como resultado, tu app proporcionará una experiencia de transmisión más sólida para tus 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 sin problemas. Algunas apps pueden estar en riesgo cuando el SDK de Web Receiver haga la transición a un modelo de inhabilitación si los socios no verifican que su contenido se reproduzca correctamente en Shaka Player con anticipación.

¿Cuál es el nivel de esfuerzo esperado cuando se cambian los reproductores?

Los socios deberán probar su aplicación y contenido en un entorno de prueba para asegurarse de que la experiencia del usuario sea similar o mejor en comparación con HLS. Para ello, los socios deberán habilitar la función en un entorno interno y probar minuciosamente que su contenido se pueda reproducir con Shaka Player. Consulta la validación de contenido para obtener detalles sobre los aspectos de tu contenido en los que debes enfocarte. Una vez validados, los socios deberán agregar la marca para habilitar en su entorno de aplicación de producción para comenzar a aprovechar los beneficios que proporciona Shaka Player. En un nivel superior, 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 nuevas integraciones deben habilitar el uso de Shaka Player 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 de rendimiento. Si tu nueva integración tiene problemas, informa un error lo antes posible para darle al equipo de ingeniería suficiente tiempo 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 para priorizarla en consecuencia. Nuestro equipo de ingeniería trabajará para proporcionar una solución que admita adecuadamente 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 Informar problemas). El equipo de ingeniería del SDK de Cast supervisa activamente estos seguimientos y trabajará contigo para resolver cualquier problema que tengas. Cuanto antes se detecten estos problemas, más tiempo tendrán para entregar una solución.

MPL ya no recibe actualizaciones esenciales. ¿Qué significa exactamente?

Históricamente, MPL adoptó nuevas funciones de HLS y corrigió errores importantes a través de actualizaciones esenciales. Ahora que MPL ya no los recibirá, no se agregarán funciones nuevas de HLS al reproductor. Del mismo modo, no se corregirán los problemas informados para la reproducción de HLS en MPL. Estos problemas se deben resolver cambiando a Shaka Player 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 de Smooth Streaming. ¿Cómo afecta esto a mi aplicación?

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

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

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