Tasas de bits adaptables (ABR) para la calidad de vídeo

Los flujos HLS y DASH proporcionan diferentes codificaciones de velocidad de bits (perfiles) para el mismo breve estallido de vídeo. TVSDK puede seleccionar el nivel de calidad para cada ráfaga en función del ancho de banda disponible.

TVSDK supervisa constantemente la velocidad de bits para garantizar que el contenido se reproduce a la velocidad de bits óptima para la conexión de red actual.

Puede establecer la directiva de conmutación de velocidad de bits adaptable (ABR) y las tasas de bits inicial, mínima y máxima para un flujo de velocidad de bits múltiple (MBR). TVSDK cambia automáticamente a la velocidad de bits que proporciona la mejor experiencia de reproducción en la configuración especificada.

Tasa de bits inicial

Velocidad de bits de reproducción deseada (en bits por segundo) para el primer segmento. Cuando se inicia la reproducción, se utiliza el perfil más cercano, que es igual o bueno que la velocidad de bits inicial, para el primer segmento.

Si se define una velocidad de bits mínima y la velocidad de bits inicial es inferior a la tasa mínima, TVSDK selecciona el perfil con la tasa de bits más baja por encima de la tasa de bits mínima. Si la tasa inicial es superior a la tasa máxima, TVSDK selecciona la tasa más alta por debajo de la tasa máxima.

Si la velocidad de bits inicial es cero o indefinida, la velocidad de bits inicial viene determinada por la directiva ABR.

ABRInitialBitRate devuelve un valor entero que representa el perfil byte por segundo.

Tasa de bits mínima

La velocidad de bits más baja permitida a la que puede cambiar el ABR. El cambio de ABR ignora los perfiles con una velocidad de bits inferior a esta velocidad de bits.

ABRMinBitRate devuelve un valor entero que representa el perfil bits por segundo.

Velocidad de bits máxima

La velocidad de bits máxima permitida a la que el ABR puede cambiar. El cambio de ABR ignora los perfiles con una velocidad de bits superior a esta velocidad de bits.

ABRMaxBitRate devuelve un valor entero que representa el perfil bits por segundo.

Política de conmutación ABR La reproducción cambia gradualmente al perfil de velocidad de bits más alta cuando es posible. Puede establecer la directiva para el cambio ABR, que determina la rapidez con la que el TVSDK cambia entre perfiles. El valor predeterminado es MODERATE_POLICY .

Cuando TVSDK decide cambiar a una velocidad de bits más alta, el reproductor selecciona el perfil de velocidad de bits ideal al que cambiar en función de la política ABR actual:

  • CONSERVATIVE_POLICY : Cambia al perfil con la siguiente velocidad de bits más alta cuando el ancho de banda es un 50% superior a la velocidad de bits actual.
  • MODERATE_POLICY : Cambia al siguiente perfil de velocidad de bits más alta cuando el ancho de banda es un 20% más alto que la velocidad de bits actual.
  • AGGRESSIVE_POLICY : Cambia inmediatamente al perfil de velocidad de bits más alto cuando el ancho de banda es superior a la velocidad de bits actual.

Si la velocidad de bits inicial es cero o no se especifica, pero se especifica una política, la reproducción comienza con el perfil de velocidad de bits más bajo para conservadores, el perfil más cercano a la tasa de bits media de perfiles disponibles para moderados y el perfil de velocidad de bits más alto para usuarios agresivos.

La directiva funciona en las restricciones de las tasas de bits mínimas y máximas, si se especifican estas tasas.

ABRPolicy devuelve la configuración actual de la enumeración ABRControlParameters: CONSERVATIVE_POLICY, MODERATE_POLICY o AGGRESSIVE_POLICY.

Tenga en cuenta la siguiente información:

  • El mecanismo de conmutación por error de TVSDK podría anular su configuración, ya que TVSDK prefiere una experiencia de reproducción continua en lugar de cumplir estrictamente con los parámetros de control.
  • Cuando cambia la velocidad de bits, TVSDK envía ProfileEvent.PROFILE_CHANGED.
  • Puede cambiar la configuración de ABR en cualquier momento y el reproductor cambia para utilizar el perfil que coincida más con la configuración más reciente.

Por ejemplo, si un flujo tiene los siguientes perfiles:

  • 1: 300000
  • 2: 700000
  • 3: 1500000
  • 4: 2400000
  • 5: 400000

Si especifica un intervalo de 300000 a 2000000, TVSDK solo tiene en cuenta los perfiles 1, 2 y 3. Esto permite que las aplicaciones se ajusten a diversas condiciones de red, como el cambio de wi-fi a 3G o a varios dispositivos, como un teléfono, una tableta o un equipo de escritorio.

Para establecer los parámetros de control ABR, realice una de las siguientes acciones:

  • Utilice la clase de ayuda ABRControlParameterBuilder para establecer cualquier subconjunto de los parámetros (funciona en ABRControlParameter entre bastidores)

  • Establezca los parámetros en la clase ABRControlParameter.

Configurar tasas de bits adaptables mediante ABRControlParametersBuilder

El uso de la clase de ayuda ABRControlParametersBuilder es la forma más sencilla y eficaz de establecer los parámetros ABR.

  • El constructor ABRControlParametersBuilder establece todos los parámetros ABR en valores predeterminados en el objeto ABRControlParameters subyacente.

  • Puede restablecer parámetros ABR individuales durante el tiempo de ejecución, siempre y cuando mantenga una referencia a la misma instancia ABRControlParametersBuilder.

Esta clase también incluye el método de ayuda toABRControlParameters(). Utilice este método para obtener una instancia de ABRControlParameters y configurarla en la propiedad mediaPlayer.ABRControlParameters. Esto hace que la configuración entre en vigor en el reproductor.

  1. Cree una instancia de la clase de ayuda ABRControlParametersBuilder y establezca los parámetros en Media Player.

    NOTA

    Por ejemplo, en el siguiente ejemplo se inicializan todos los parámetros a los valores predeterminados y, a continuación, se establece únicamente la política en conservador y se restringe la velocidad máxima de bits a 100000:

    var abrBuilder:ABRControlParametersBuilder =
       new ABRControlParametersBuilder();
    abrBuilder.policy = ABRControlParameters.CONSERVATIVE_POLICY;
    abrBuilder.maxBitRate = 1000000;
    mediaPlayer.abrControlParameters =
       abrBuilder.toABRControlParameters();
    
  2. Modifique los parámetros ABR individuales en tiempo de ejecución.

    Para modificar parámetros individuales y dejar el resto de parámetros tal cual:

    // If later you want to reset the max bit rate to 2000000 
    abrBuilder.maxBitRate = 2000000; 
    mediaPlayer.abrControlParameters =  
      abrBuilder.toABRControlParameters();
    

    Para conservar la configuración anterior, debe mantener una referencia a la misma instancia ABRControlParametersBuilder que creó en el paso 1.

Configurar las tasas de bits adaptables mediante ABRControlParameters

Puede establecer valores de control de ABR solo con ABRControlParameters, pero puede construir uno nuevo en cualquier momento.

Esta capacidad para establecer parámetros ABR era compatible antes de la existencia de la clase ABRControlParametersBuilder, pero esta capacidad sigue siendo efectiva para configurar parámetros ABR en el momento de la construcción. Sin embargo, para cambiar parámetros individuales después de la construcción, debe utilizar la clase ABRControlParametersBuilder.

Las siguientes condiciones se aplican a ABRControlParameters:

  • Debe proporcionar valores para todos los parámetros en el momento de la construcción.
  • No se pueden cambiar valores individuales después del tiempo de construcción.
  • Si los parámetros especificados están fuera del rango permitido, se genera un ArgumentError.
  1. Decida las tasas de bits iniciales, mínimas y máximas.

  2. Determine la política ABR:

    • CONSERVATIVE_POLICY
    • MODERATE_POLICY
    • AGGRESSIVE_POLICY
  3. Establezca los valores de parámetro ABR en el constructor ABRControlParameters y asígnelos al Reproductor de medios.

    mediaPlayer.abrControlParameters = new ABRControlParameters( 
        ABRControlParameters.CONSERVATIVE_POLICY, 
        0, // Initial bit rate 
        0, // Minimum bit rate 
        1000000 // Maximum bit rate 
    );
    

En esta página