Filtrado de manifiestos - AWS Elemental MediaPackage

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Filtrado de manifiestos

Con el filtrado de manifiestos, AWS Elemental MediaPackage genera dinámicamente manifiestos de cliente basados en parámetros especificados en una consulta anexada a la solicitud de reproducción. Esto le permite hacer cosas como restringir el acceso del espectador a contenido HEVC 4k premium o establecer como destino tipos de dispositivos e intervalos de frecuencia de muestreo de audio específicos, todo ello desde un único punto de conexión. Anteriormente, había que configurar varios puntos finales para lograr este comportamiento. MediaPackage ahora proporciona una forma rentable de producir de forma dinámica diferentes manifiestos de cliente en el mismo punto final.

Trabajar con filtros de manifiesto

Cuando se utiliza un filtro de manifiesto, el manifiesto resultante incluye solo las secuencias de audio y vídeo que coinciden con las características especificadas en la consulta. Si no se utiliza ningún filtro de manifiesto, todas las secuencias adquiridas están presentes en la secuencia de salida del punto de enlace. La única excepción es cuando establece filtros de secuencia para el punto de enlace, como la velocidad de bits mínima del vídeo. En ese caso, el filtro de manifiesto se aplica después del filtro de secuencia, lo que podría sesgar el resultado y, por lo tanto, no se recomienda.

El filtrado de manifiestos se puede utilizar en todos los tipos de puntos finales compatibles con MediaPackage:

  • Apple HLS

  • DASH-ISO

  • Microsoft Smooth Streaming

  • CMAF

Para utilizar el filtrado de manifiestos, añada parámetros de aws.manifestfilter consulta a su solicitud de reproducción a MediaPackage. MediaPackage evalúa la consulta y publica un manifiesto de cliente en función de esos parámetros de consulta. Las consultas de manifiesto no distinguen entre mayúsculas y minúsculas y pueden tener hasta 1024 caracteres de longitud. Si la consulta tiene un formato incorrecto, o si no hay secuencias que coincidan con los parámetros de la consulta, MediaPackage devuelve un manifiesto incompleto o vacío. Para obtener información sobre la sintaxis de la consulta, consulte la sección siguiente.

nota

Si utiliza puntos de conexión de Apple HLS o CMAF, se aplican condiciones especiales. Para obtener información sobre estas condiciones, consulte Condiciones especiales para los manifiestos HLS y CMAF.

Sintaxis de la consulta

El parámetro de consulta base es aws.manifestfilter, seguido de pares de nombre y valor de parámetros opcionales. Para crear la consulta, añádala ?aws.manifestfilter= al final de la URL del MediaPackage punto final, seguida de los nombres y valores de los parámetros. Para obtener una lista de todos los parámetros disponibles, consulte Parámetros de consulta de filtro de manifiesto.

Una consulta de filtro de Apple HLS tendrá el siguiente aspecto:

https://example-mediapackage-endpoint.mediapackage.us-west-2.amazonaws.com/out/v1/examplemediapackage/index.m3u8?aws.manifestfilter=audio_sample_rate:0-44100;video_bitrate:0-2147483647;video_codec:h265;audio_language:fr,en-US,de

La sintaxis de la consulta se muestra en la tabla siguiente.

Componente de la cadena de consulta Descripción
? Carácter restringido que indica el comienzo de una consulta.
aws.manifestfilter= La consulta base, seguida de parámetros formados por pares de nombre y valor. Para obtener una lista de todos los parámetros disponibles, consulte Parámetros de consulta de filtro de manifiesto.
: Se utiliza para asociar el nombre del parámetro con un valor. Por ejemplo, parameter_name:value.
; Separa los parámetros de una consulta que contiene varios parámetros. Por ejemplo, parameter1_name:value;parameter2_name:minValue-maxValue.
, Separa una lista de valores. Por ejemplo, parameter_name:value1,value2,value3. Los valores separados por comas en una lista implican una relación OR.
- Se utiliza para definir el intervalo de valores mínimo y máximo de un parámetro. Por ejemplo, audio_sample_rate:0-44100. Cuando se utiliza un valor numérico en un intervalo, este se incluye en la definición del intervalo. Esto significa que las secuencias deben ser mayores o iguales al valor mínimo y menores o iguales al valor máximo. En los intervalos, los valores mínimo y máximo son obligatorios. Los valores de intervalo admitidos son 0 - 2147483647.
nota

Si utilizas Amazon CloudFront como CDN, es posible que tengas que configurar configuraciones adicionales. Para obtener más información, consulte Configurar los comportamientos de la caché para todos los puntos de enlace.

Parámetros de consulta de filtro de manifiesto

MediaPackage admite los siguientes parámetros de consulta.

Categoría Name Descripción Ejemplo
Audio audio_bitrate
  • La velocidad de bits de audio en bits por segundo.

  • Valores aceptados: dos enteros agregados con un guión que definen un intervalo inclusivo. Los valores de intervalo admitidos son 0 - 2147483647.

stream.mpd?aws.manifestfilter=audio_bitrate:0-2147483647
Audio audio_channels
  • El número de canales de audio.

  • Valores aceptados: dos enteros agregados con un guión que definen un intervalo inclusivo. Los valores de intervalo admitidos son 1 - 32767.

stream.mpd?aws.manifestfilter=audio_channels:1-8
Audio audio_codec
  • Tipo de códec de audio.

  • Valores aceptados: AACL, AACH, AC-3 y EC-3. Debe incluir - en AC-3 y EC-3.

    Los valores no distinguen entre mayúsculas y minúsculas.

stream.mpd?aws.manifestfilter=audio_codec:AACL,AC-3
Audio audio_language
  • Idiomas de audio o códigos funcionales obtenidos del acceso directo al codificador.

  • Valores aceptados: cadenas arbitrarias, como códigos de idioma ISO-639-1 de dos o cuatro caracteres. Debe usar las mismas cadenas de idioma que se han definido para el codificador.

    Los valores no distinguen entre mayúsculas y minúsculas.

stream.mpd?aws.manifestfilter=audio_language:fr,en-US,de
Audio audio_sample_rate
  • Frecuencia de muestreo de audio en Hz.

  • Valores aceptados: dos enteros agregados con un guión que definen un intervalo inclusivo. Los valores de intervalo admitidos son 0 - 2147483647.

stream.mpd?aws.manifestfilter=audio_sample_rate:0-44100
Subtítulo subtitle_language
  • Idiomas de subtítulos o códigos funcionales obtenidos del acceso directo al codificador.

  • Valores aceptados: cadenas arbitrarias, como códigos de idioma ISO-639-1 de dos o cuatro caracteres. Debe usar las mismas cadenas de idioma que se han definido para el codificador.

    Los valores no distinguen entre mayúsculas y minúsculas.

stream.mpd?aws.manifestfilter=subtitle_language:en-US, hi
Vídeo trickplay_height
  • La altura de la imagen de la reproducción engañosa en píxeles. Esto se aplica tanto al solo iframe como a las reproducciones engañosas basadas en imágenes.

    nota

    Si utiliza este parámetro con reproducción engañosa de solo iframe, trickplay_height y video_height deberían tener valores similares. Si los valores no son los mismos, es posible que las pistas de solo iframe se eliminen del manifiesto.

  • El trickplay_height filtro se aplica antes de la creación de mosaicos para DASH en VOD.

  • Valores aceptados: dos enteros agregados con un guión que definen un intervalo inclusivo. Los valores de intervalo admitidos son 1 - 2147483647.

stream.mpd?aws.manifestfilter=trickplay_height:200-1200
Vídeo trickplay_type
  • El tipo de pista de reproducción engañosa. Puede filtrar las pistas de reproducción engañosa por iframe o imagen o usar el valor none para filtrar todas las pistas de reproducción engañosa (tanto de iframe como de imagen).

  • Valores aceptados: iframe, image y none.

    Los valores no distinguen entre mayúsculas y minúsculas.

stream.mpd?aws.manifestfilter=trickplay_type:iframe
Vídeo video_bitrate
  • Velocidad de bits del video en bits por segundo.

    nota

    Si utiliza este parámetro, le recomendamos que utilice solo el parámetro de filtro video_bitrate para establecer la velocidad de bits del vídeo. No establezcas tampoco la velocidad de bits de vídeo mínima y máxima a través de la MediaPackage consola o. AWS CLI El filtro video_bitrate se aplica a la configuración de velocidad de bits del vídeo creada en el punto de enlace. Si utiliza el parámetro y establece la velocidad de bits en la consola o la AWS CLI, es posible que el resultado esté sesgado.

  • Valores aceptados: dos enteros agregados con un guión que definen un intervalo inclusivo. Los valores de intervalo admitidos son 0 - 2147483647.

  • nota

    No puede usar este parámetro con secuencias de reproducción engañosa.

stream.mpd?aws.manifestfilter=video_bitrate:0-2147483647
Vídeo video_codec
  • Tipo de códec del video.

  • Valores aceptados: H264, H265.

    Los valores no distinguen entre mayúsculas y minúsculas.

stream.mpd?aws.manifestfilter=video_codec:h264
Vídeo video_dynamic_range
  • Intervalo dinámico del video.

  • Valores aceptados: hdr10, hlg y sdr.

    Los valores no distinguen entre mayúsculas y minúsculas.

stream.mpd?aws.manifestfilter=video_dynamic_range:hdr10
Vídeo video_framerate
  • Intervalo de velocidad de fotogramas del video en formato NTSC.

  • Valores aceptados: dos números floating point (coma flotante) agregados con un guión que defina un intervalo inclusivo. Cada número puede tener hasta tres valores fraccionarios opcionales. Por ejemplo, 29.97 o 29.764. Los valores de intervalo admitidos son 1 - 999.999.

stream.mpd?aws.manifestfilter=video_framerate:23.976-30
Vídeo video_height
  • La altura del vídeo en píxeles.

    nota

    Si utiliza este parámetro con reproducción engañosa de solo iframe, trickplay_height y video_height deberían tener valores similares. Si los valores no son los mismos, es posible que las pistas de solo iframe se eliminen del manifiesto.

  • Valores aceptados: dos enteros agregados con un guión que definen un intervalo inclusivo. Los valores de intervalo admitidos son 1 - 32767.

stream.mpd?aws.manifestfilter=video_height:720-1080

Ejemplos de filtrado de manifiestos

A continuación se incluyen ejemplos de filtrado de manifiestos.

ejemplo 1: Establecer como destino un reproductor compatible con AVC y una frecuencia de muestreo de audio de 44,1 k

El espectador reproduce contenido en un dispositivo que solo admite AVC y una frecuencia de muestreo de audio de 44,1 k. Establece video_codec y audio_sample_rate para filtrar las secuencias que no cumplen estos requisitos.

?aws.manifestfilter=audio_sample_rate:0-44100;video_codec:h264

ejemplo 2: Restringir contenido de HEVC 4k

La secuencia de HEVC 4k es de 15 Mbps y todas las demás secuencias son inferiores a 9 Mbps. Para excluir la secuencia 4k del conjunto de secuencias, establece un umbral de 9 000 000 bits por segundo para filtrar la velocidad de bits más alta.

?aws.manifestfilter=video_bitrate:0-9000000

ejemplo 3: Incluir vídeo entre 23,976 y 30 fotogramas por segundo

Para incluir solo vídeo dentro de un intervalo determinado de velocidad de fotogramas, utilice video_framerate. Este parámetro acepta números floating-point (coma flotante) con hasta tres valores decimales opcionales.

?aws.manifestfilter=video_framerate:23.976-30

Condiciones especiales para los manifiestos HLS y CMAF

Si utiliza manifiestos HLS o CMAF, se aplican estas condiciones especiales.

  • Para los manifiestos HLS, es absolutamente recomendable que utilice grupos de representación de audio para evitar eliminar las secuencias de vídeo que se multiplexan con las secuencias de audio filtradas. Para obtener más información acerca de los grupos de representación, consulte Referencia de grupos de representación en AWS Elemental MediaPackage.

  • En los manifiestos HLS y CMAF, la frecuencia de muestreo de audio no se indica, por lo que no es fácil comprobar visualmente los manifiestos originales o filtrados para esta configuración. Para verificar la frecuencia de muestreo de audio, compruebe la frecuencia de muestreo de audio en el nivel del codificador y en el nivel de salida.

  • En los manifiestos HLS y CMAF, el atributo BANDWIDTH de una variante asocia el ancho de banda de la pista de audio con la pista de vídeo, ya sea multiplexada con la pista de vídeo, o si se trata de una pista de reproducción de audio, mediante referencia a través de la pista de vídeo. Por lo tanto, no puede inspeccionar visualmente los manifiestos originales y filtrados para confirmar que el filtro video_bitrate ha funcionado. Para verificar el filtro, compruebe la velocidad de bits del video en el nivel del codificador y el nivel de salida.

  • Para los manifiestos HLS y CMAF, los parámetros de solicitud anexados a listas de reproducción o segmentos de velocidad de bits generan un error HTTP 400.

Condiciones de error

Las condiciones de error comunes se indican en la tabla siguiente.

Condición de error Ejemplo Código de estado HTTP
No se encuentra un parámetro de la lista y no forma parte de una lista restringida ?aws.manifestfilter=audio_language:dahlia 200
Solo las secuencias de subtítulos están presentes en la secuencia ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 200
Parámetro de filtro duplicado ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=audio_sample_rate:0-48000 400
Parámetro no válido ?aws.manifestfilter=donut_type:rhododendron 400
Parámetro de intervalo no válido ?aws.manifestfilter=audio_sample_rate:300-0 400
Valor de intervalo no válido (superior a INT_MAX) ?aws.manifestfilter=audio_sample_rate:0-2147483648 400
Cadena de consulta con formato incorrecto ?aws.manifestfilter=audio_sample_rate:is:0-44100 400
La cadena del parámetro tiene más de 1024 caracteres ?aws.manifestfilter=audio_language:abcdef.... 400
Parámetros de consulta en un manifiesto de velocidad de bits HLS o CMAF index_1.m3u8?aws.manifestfilter=video_codec:h264 400
Parámetros de consulta en una solicitud de segmento ..._1.[ts|mp4|vtt..]?aws.manifestfilter=video_codec:h264 400
Parámetro de consulta repetido ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=video_bitrate:0-1 400
La aplicación del filtro da como resultado un manifiesto vacío (el contenido no tiene secuencias que cumplan las condiciones definidas en la cadena de consulta) ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 400