Empaquetado dinámico en Media Services v3
Advertencia
Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.
Azure Media Services proporciona funcionalidades integradas de empaquetado y de servidor de origen para entregar contenido en los formatos de protocolo de streaming HLS y MPEG DASH. En AMS, el punto de conexión de streaming actúa como el servidor de "origen" que envía contenido con formato HLS y DASH a los reproductores cliente que admiten el streaming con velocidad de bits adaptable mediante estos formatos populares. El punto de conexión de streaming también admite muchas características, como el empaquetado dinámico Just-In-Time con o sin protección de contenido, para llegar a todos los dispositivos principales (como dispositivos iOS y Android).
Actualmente, la mayoría de los exploradores y dispositivos móviles del mercado admiten y entienden los protocolos de streaming HLS o DASH. Por ejemplo, iOS requiere que los flujos se entreguen en formato HTTP Live Streaming (HLS), mientras que los dispositivos Android admiten HLS y MPEG DASH en determinados modelos (o bien mediante el uso del reproductor de nivel de aplicación Exoplayer para dispositivos Android).
En Media Services, un punto de conexión de streaming (origen) representa un empaquetado dinámico (Just-In-Time) y el servicio de origen que puede entregar directamente el contenido en directo y a petición a una aplicación de reproducción de cliente. Usa uno de los protocolos de streaming de multimedia comunes que se mencionan en la sección siguiente. El empaquetado dinámico es una característica incluida en todos los puntos de conexión de streaming.
Las ventajas del empaquetado Just-In-Time son las siguientes:
- Puede almacenar todos los archivos en formato de archivo MP4 estándar.
- No es necesario almacenar varias copias de formatos HLS y DASH empaquetados estáticos en Blob Storage, lo que reduce la cantidad de contenido de vídeo almacenado y reduce los costos de almacenamiento.
- Puede aprovechar al instante las nuevas actualizaciones de protocolo y los cambios en las especificaciones sin necesidad de volver a empaquetar el contenido estático en el catálogo.
- Puede entregar contenido con o sin cifrado y DRM con los mismos archivos MP4 en el almacenamiento.
- Puede filtrar o modificar dinámicamente los manifiestos con filtros globales o filtros de nivel de recurso simples para quitar pistas, resoluciones e idiomas específicos, o bien para proporcionar clips más cortos de momentos destacados de los mismos archivos MP4 sin volver a codificar ni a representar el contenido.
Para preparar los archivos de origen para su entrega
Para aprovechar el empaquetado dinámico, codifique el archivo intermedio (origen) en un conjunto de archivos MP4 de velocidad de bits única o múltiple (medios base ISO 14496-12). Los archivos de vídeo codificados y los archivos de configuración de streaming se ubicarán en un recurso de salida. A partir de este conjunto de archivos, puede usar el empaquetado dinámico para entregar vídeo a través de los protocolos multimedia de streaming.
Normalmente, se usa el codificador estándar de Azure Media Services para generar este contenido mediante los valores preestablecidos de codificación en función del contenido o los valores preestablecidos de velocidad de bits adaptable. Ambos generan un conjunto de archivos MP4 listos para el streaming y el empaquetado dinámico.
Como alternativa, puede optar por codificar mediante un servicio externo, un entorno local o en sus propias máquinas virtuales o aplicaciones de funciones sin servidor. El contenido codificado externamente se puede cargar en un recurso para streaming siempre que cumpla los requisitos de codificación para los formatos de streaming con velocidad de bits adaptable. Hay disponible un proyecto de ejemplo de la carga de un MP4 codificado previamente para streaming en los ejemplos del SDK de .NET. Consulte este ejemplo de transmisión de archivos MP4 existentes.
El empaquetado dinámico de Azure Media Services solo admite archivos de audio y vídeo en formato de contenedor MP4. Los archivos de audio deben estar codificados en un contenedor de MP4 también cuando se usen otros códecs, como Dolby.
Hacer que los vídeos estén disponibles para streaming
Para que los vídeos del recurso codificado estén disponibles para los clientes para su reproducción, publique el recurso mediante un localizador de streaming y compile las direcciones URL de streaming HLS y DASH adecuadas. Al cambiar el protocolo usado en la consulta de formato url, el servicio entregará el manifiesto de streaming adecuado (HLS, MPEG DASH).
Como resultado, solo tendrá que almacenar los archivos y pagar por ellos en un único formato de almacenamiento (MP4), y Media Services generará y proporcionará los manifiestos HLS o DASH adecuados en función de las solicitudes de los reproductores de los clientes.
Si tiene previsto proteger el contenido mediante el cifrado dinámico de Media Services, consulte Protocolos de streaming y tipos de cifrado.
Entrega de HLS
Empaquetado dinámico de HLS
El cliente de streaming puede especificar los siguientes formatos de HLS. Se recomienda usar el formato CMAF para garantizar la compatibilidad con los reproductores y dispositivos iOS más recientes. En el caso de los dispositivos heredados, los formatos v4 y v3 están disponibles cambiando simplemente la cadena de consulta de formato.
Protocolo | Cadena de formato | Ejemplo |
---|---|---|
HLS CMAF | format=m3u8-cmaf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf) |
HLS V4 | format=m3u8-aapl | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl) |
HLS V3 | format=m3u8-aapl-v3 | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-aapl-v3) |
Nota
Las instrucciones anteriores de Apple recomendaban que la reserva para las redes con un ancho de banda reducido sirviera para proporcionar un flujo de solo audio. En la actualidad, el codificador de Media Services genera automáticamente una pista de solo audio. Las instrucciones de Apple ahora indican que la pista de solo audio no debe incluirse, especialmente para la distribución de Apple TV. Con el fin de evitar que el reproductor tenga como valor predeterminado una pista de solo audio, se recomienda usar la etiqueta "audio-only=false" en la URL que quita la copia de solo audio en HLS, o simplemente usar HLS-V3. Por ejemplo, http://host/locator/asset.ism/manifest(format=m3u8-aapl,audio-only=false)
.
Relación de empaquetado de HLS para VoD
Para controlar la relación de empaquetado del contenido de VoD para los formatos HLS más antiguos, puede configurar la etiqueta de metadatos fragmentsPerHLSSegment en el archivo .ism para controlar la relación de empaquetado predeterminada de 3:1 para los segmentos de TS entregados desde manifiestos de formato HLS más antiguos (v3 y v4). Este cambio en la configuración requiere modificar directamente el archivo .ism en el almacenamiento para ajustar la relación de empaquetado.
En el siguiente ejemplo de manifiesto de servidor .ism, fragmentsPerHLSSegment está establecido en 1.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="formats" content="mp4" />
<meta name="fragmentsPerHLSSegment" content="1"/>
</head>
<body>
<switch>
...
</switch>
</body>
</smil>
Entrega de DASH
Empaquetado dinámico de DASH
El cliente de streaming puede especificar los siguientes formatos MPEG-DASH:
Protocolo | Cadena de formato | Ejemplo |
---|---|---|
MPEG-DASH CMAF | format=mpd-time-cmaf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf) |
MPEG-DASH CSF (heredado) | format=mpd-time-csf | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-csf) |
Entrega de manifiestos de Smooth Streaming
Empaquetado dinámico de Smooth Streaming
El cliente de streaming puede especificar los siguientes formatos de Smooth Streaming:
Protocolo | Notas y ejemplos |
---|---|
Smooth Streaming | https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest |
Smooth Streaming 2.0 (manifiesto heredado) | De forma predeterminada el formato de manifiesto Smooth Streaming contiene la etiqueta de repetición (r-tag). Sin embargo, algunos reproductores no admiten r-tag . Los clientes con estos reproductores pueden utilizar un formato que deshabilite la etiqueta r-tag:https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=fmp4-v20) |
Nota
Smooth Streaming requiere que haya audio y vídeo en el streaming.
Flujo de trabajo de streaming a petición
En los pasos siguientes se muestra un flujo de trabajo común de streaming de Media Services en el que se usa el empaquetado dinámico junto con el codificador estándar en Azure Media Services.
Cargue un archivo de entrada, como por ejemplo MP4, QuickTime/MOV, o cualquier otro formato de archivo compatible. Este archivo también se conoce como archivo de origen o intermedio. Para la lista de formatos admitidos, consulte Códecs y formatos de Standard Encoder.
Codifique el archivo intermedio en un conjunto de archivos MP4 de velocidad de bits adaptable H.264/AAC.
Si ya ha codificado los archivos y solo quiere copiar y transmitir los archivos, use: CopyVideo API y CopyAudio API. Como resultado, se creará un archivo MP4 con un manifiesto de streaming (archivo .ism).
Además, puede generar los archivos .ism y .ismc en un archivo precodificado, siempre que esté codificado con la configuración adecuada para el streaming con velocidad de bits adaptable (esta suele consistir en grupos de imágenes [GOP] de dos segundos, distancias de fotogramas clave de dos segundos como mínimo y máximo, y codificación en modo de velocidad de bits constante [CBR]).
Consulte el ejemplo de transmisión de archivos MP4 existentes del SDK de .NET para obtener más información sobre cómo generar los archivos .ism (manifiesto de servidor) y .ismc (manifiestos de cliente) para el streaming desde archivos MP4 existentes y precodificados.
Publicar el recurso de salida que contiene el conjunto de MP4 de velocidad de bits adaptable. Publicar mediante la creación de un localizador de streaming.
Generar direcciones URL que tienen como destino diferentes formatos (HLS, MPEG-DASH y Smooth Streaming). El punto de conexión de streaming se encarga de atender el manifiesto correcto y las solicitudes de todos estos formatos.
La ruta de acceso de descarga aparece en la imagen anterior solo para mostrarle que puede descargar un archivo MP4 directamente a través del punto de conexión de streaming (origen) (debe especificar la directiva de streaming descargable en el localizador de streaming).
El empaquetador dinámico no está modificando el archivo. Opcionalmente puede usar las API de Azure Blob Storage para acceder a un MP4 directamente para la descarga progresiva si desea omitir las características del punto de conexión de streaming (origen).
Codificación en archivos MP4s de velocidad de bits adaptable
Los artículos siguientes muestran ejemplos de cómo codificar un vídeo con Media Services:
- Codificación en función del contenido.
- Ejemplos de código para codificar con el codificador estándar mediante .NET.
Consulte la lista de códecs y formatos de entrada compatibles con el codificador estándar.
Flujo de trabajo de streaming en vivo
Un evento en directo se puede establecer en una codificación de paso a través (un codificador en directo local envía una secuencia de velocidad de bits múltiple) o en una codificación en directo (un codificador en directo local envía una secuencia de velocidad de bits única).
Este es un flujo de trabajo común para el streaming en vivo con el empaquetado dinámico:
- Cree un evento en directo.
- Obtenga la dirección URL de ingesta y configure el codificador local a fin de usar la dirección URL para enviar la fuente de contribución.
- Obtenga la dirección URL de versión preliminar y úsela para verificar que la entrada del codificador se está recibiendo.
- Cree un recurso nuevo.
- Cree una salida en directo y use el nombre del recurso que ha creado.
La salida en directo archivará la secuencia en el recurso. - Cree un localizador de streaming con los tipos de directiva de streaming integrados.
Si va a cifrar el contenido, consulte Introducción a la protección de contenido. - Enumere las rutas de acceso en el localizador de streaming para recuperar las direcciones URL que se van a usar.
- Obtenga el nombre de host del punto de conexión de streaming desde el que quiere realizar el streaming.
- Generar direcciones URL que tienen como destino diferentes formatos (HLS, MPEG-DASH y Smooth Streaming). El punto de conexión de streaming se encarga de atender el manifiesto correcto y las solicitudes de los diferentes formatos.
Para más información acerca del streaming en vivo en Media Services v3, consulte Introducción al streaming en vivo.
Códecs de vídeo compatibles con el empaquetado dinámico
El empaquetado dinámico admite archivos de vídeo que estén en el formato de archivo del contenedor de MP4 y que contengan vídeo que esté codificado con H.264 (MPEG-4 AVC o AVC1) o H.265 (HEVC, hev1 o hvc1).
Nota
Se han probado resoluciones de hasta 4K y velocidades de fotogramas de hasta 60 fotogramas por segundo con el empaquetado dinámico.
Códecs de audio compatibles con el empaquetado dinámico
El empaquetado dinámico también admite archivos de audio que estén almacenado en el formato del contenedor de archivos MP4 que contengan flujo de audio codificado con uno de los siguientes códecs:
AAC (AAC-LC, HE-AAC v1 o HE-AAC v2).
Dolby Digital Plus (Enhanced AC-3 o E-AC3). El audio codificado se debe almacenar en el formato del contenedor de MP4 para que funcione con el empaquetado dinámico.
Dolby Atmos
El streaming de contenido Dolby Atmos es compatible con estándares como el protocolo MPEG-DASH con formato de streaming común (CSF) o formato de aplicación multimedia común (CMAF) MP4 fragmentado, y mediante HTTP Live Streaming (HLS) con CMAF.
DTS
Los códecs de DTS admitidos por los formatos de empaquetado DASH-CSF, DASH-CMAF, HLS-M2TS y HLS-CMAF son:- DTS Digital Surround (dtsc)
- DTS-HD alta resolución y DTS HD Master Audio (dtsh)
- DTS Express (dtse)
- DTS-HD Lossless (sin núcleo) (dtsl)
El empaquetado dinámico admite varias pistas de audio con DASH o HLS (versión 4 o posterior) para recursos de streaming que tienen varias pistas de audio con varios códecs y lenguajes.
En todos los códecs de audio anteriores, el audio codificado se debe almacenar en el formato del contenedor de MP4 para que funcione con el empaquetado dinámico. El servicio no admite formatos de archivo de flujo elemental sin procesar en Blob Storage (por ejemplo, los formatos .dts y .ac3 no se aceptarían)
Para el empaquetado de audio solo se admiten los archivos con las extensiones .mp4 o .mp4a.
Limitaciones
Limitación de iOS en el audio AAC 5.1
Los dispositivos Apple iOS no admiten el códec de audio versión 5.1 de AAC. Se debe codificar el audio multicanal mediante los códecs Dolby Digital o Dolby Digital Plus.
Para obtener información detallada, consulte la especificación de creación de HLS para dispositivos Apple.
Nota
Media Services no admite la codificación de Dolby digital, Dolby Digital Plus ni Dolby Digital Plus con formatos de audio multicanal de Dolby Atmos.
Dolby Digital audio
El empaquetado dinámico de Media Services no admite actualmente archivos que contienen audio de Dolby Digital (AC3) (ya que se considera un códec heredado por Dolby).
Manifiestos
En el empaquetado dinámico de Media Services, los manifiestos de cliente de streaming para HLS, MPEG-DASH y Smooth Streaming se generan dinámicamente basándose en la consulta de formato de la dirección URL.
Un archivo de manifiesto incluye metadatos de streaming como: el tipo de pista (audio, vídeo o texto), el nombre de la pista, la hora inicial y final, la velocidad de bits (calidades), los idiomas de pista, la ventana de presentación (ventana deslizante de duración fija), el códec de vídeo (FourCC). También indica al reproductor que recupere el siguiente fragmento ofreciendo información acerca de los próximos fragmentos de vídeo reproducibles que están disponibles y su ubicación. Los fragmentos (o segmentos) son "fragmentos" reales de un contenido de vídeo.
Ejemplos
HLS
Este es un ejemplo de un archivo de manifiesto HLS, también llamado lista de reproducción maestra HLS:
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="aac_eng_2_128041_2_1",LANGUAGE="eng",DEFAULT=YES,AUTOSELECT=YES,URI="QualityLevels(128041)/Manifest(aac_eng_2_128041_2_1,format=m3u8-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=536608,RESOLUTION=320x180,CODECS="avc1.64000d,mp4a.40.2",AUDIO="audio"
QualityLevels(381048)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=536608,RESOLUTION=320x180,CODECS="avc1.64000d",URI="QualityLevels(381048)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=884544,RESOLUTION=480x270,CODECS="avc1.640015,mp4a.40.2",AUDIO="audio"
QualityLevels(721495)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=884544,RESOLUTION=480x270,CODECS="avc1.640015",URI="QualityLevels(721495)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=1327398,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio"
QualityLevels(1154816)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1327398,RESOLUTION=640x360,CODECS="avc1.64001e",URI="QualityLevels(1154816)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=2413312,RESOLUTION=960x540,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio"
QualityLevels(2217354)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=2413312,RESOLUTION=960x540,CODECS="avc1.64001f",URI="QualityLevels(2217354)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=3805760,RESOLUTION=1280x720,CODECS="avc1.640020,mp4a.40.2",AUDIO="audio"
QualityLevels(3579827)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=3805760,RESOLUTION=1280x720,CODECS="avc1.640020",URI="QualityLevels(3579827)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=139017,CODECS="mp4a.40.2",AUDIO="audio"
QualityLevels(128041)/Manifest(aac_eng_2_128041_2_1,format=m3u8-aapl)
MPEG-DASH
Este es un ejemplo de un archivo de manifiesto MPEG-DASH, también llamado descripción de presentación multimedia (MPD) MPEG-DASH:
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT1M10.315S" minBufferTime="PT7S">
<Period>
<AdaptationSet id="1" group="5" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="audio" mimeType="audio/mp4" codecs="mp4a.40.2" lang="en">
<SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_128041_2_1=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(aac_eng_2_128041_2_1=i,format=mpd-time-csf)">
<SegmentTimeline>
<S d="60160000" r="10" />
<S d="41386666" />
</SegmentTimeline>
</SegmentTemplate>
<Representation id="5_A_aac_eng_2_128041_2_1_1" bandwidth="128041" audioSamplingRate="48000" />
</AdaptationSet>
<AdaptationSet id="2" group="1" profiles="ccff" bitstreamSwitching="false" segmentAlignment="true" contentType="video" mimeType="video/mp4" codecs="avc1.640020" maxWidth="1280" maxHeight="720" startWithSAP="1">
<SegmentTemplate timescale="10000000" media="QualityLevels($Bandwidth$)/Fragments(video=$Time$,format=mpd-time-csf)" initialization="QualityLevels($Bandwidth$)/Fragments(video=i,format=mpd-time-csf)">
<SegmentTimeline>
<S d="60060000" r="10" />
<S d="42375666" />
</SegmentTimeline>
</SegmentTemplate>
<Representation id="1_V_video_1" bandwidth="3579827" width="1280" height="720" />
<Representation id="1_V_video_2" bandwidth="2217354" codecs="avc1.64001F" width="960" height="540" />
<Representation id="1_V_video_3" bandwidth="1154816" codecs="avc1.64001E" width="640" height="360" />
<Representation id="1_V_video_4" bandwidth="721495" codecs="avc1.640015" width="480" height="270" />
<Representation id="1_V_video_5" bandwidth="381048" codecs="avc1.64000D" width="320" height="180" />
</AdaptationSet>
</Period>
</MPD>
Smooth Streaming
Este es un ejemplo de un archivo de manifiesto de Smooth Streaming:
<?xml version="1.0" encoding="UTF-8"?>
<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" Duration="703146666" TimeScale="10000000">
<StreamIndex Chunks="12" Type="audio" Url="QualityLevels({bitrate})/Fragments(aac_eng_2_128041_2_1={start time})" QualityLevels="1" Language="eng" Name="aac_eng_2_128041_2_1">
<QualityLevel AudioTag="255" Index="0" BitsPerSample="16" Bitrate="128041" FourCC="AACL" CodecPrivateData="1190" Channels="2" PacketSize="4" SamplingRate="48000" />
<c t="0" d="60160000" r="11" />
<c d="41386666" />
</StreamIndex>
<StreamIndex Chunks="12" Type="video" Url="QualityLevels({bitrate})/Fragments(video={start time})" QualityLevels="5">
<QualityLevel Index="0" Bitrate="3579827" FourCC="H264" MaxWidth="1280" MaxHeight="720" CodecPrivateData="0000000167640020ACD9405005BB011000003E90000EA600F18319600000000168EBECB22C" />
<QualityLevel Index="1" Bitrate="2217354" FourCC="H264" MaxWidth="960" MaxHeight="540" CodecPrivateData="000000016764001FACD940F0117EF01100000303E90000EA600F1831960000000168EBECB22C" />
<QualityLevel Index="2" Bitrate="1154816" FourCC="H264" MaxWidth="640" MaxHeight="360" CodecPrivateData="000000016764001EACD940A02FF9701100000303E90000EA600F162D960000000168EBECB22C" />
<QualityLevel Index="3" Bitrate="721495" FourCC="H264" MaxWidth="480" MaxHeight="270" CodecPrivateData="0000000167640015ACD941E08FEB011000003E90000EA600F162D9600000000168EBECB22C" />
<QualityLevel Index="4" Bitrate="381048" FourCC="H264" MaxWidth="320" MaxHeight="180" CodecPrivateData="000000016764000DACD941419F9F011000003E90000EA600F14299600000000168EBECB22C" />
<c t="0" d="60060000" r="11" />
<c d="42375666" />
</StreamIndex>
</SmoothStreamingMedia>
Asignación de nombres a pistas del manifiesto
Si se especifica un nombre de pista de audio en el archivo .ism, Media Services agrega un elemento Label
dentro de un objeto AdaptationSet
para especificar la información de textura de la pista de audio específica. Ejemplo del manifiesto DASH de salida:
<AdaptationSet codecs="mp4a.40.2" contentType="audio" lang="en" mimeType="audio/mp4" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
<Label>audio_track_name</Label>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
<Representation audioSamplingRate="48000" bandwidth="131152" id="German_Forest_Short_Poem_english-en-68s-2-lc-128000bps_seg">
<BaseURL>German_Forest_Short_Poem_english-en-68s-2-lc-128000bps_seg.mp4</BaseURL>
</Representation>
</AdaptationSet>
El reproductor puede usar el elemento Label
para mostrar en su interfaz de usuario.
Señalización de pistas de descripción de audio
Puede agregar una pista de narración al vídeo que ayude a los clientes con problemas visuales a seguir la grabación de vídeo escuchando la narración. Es preciso anotar las pistas de audio como descripciones de audio en el manifiesto. Para ello, agregue los parámetros "accessibility" y "role" al archivo .ism. Debe establecer estos parámetros correctamente para señalizar las pistas de audio como descripciones de audio. Por ejemplo, agregue <param name="accessibility" value="description" />
y <param name="role" value="alternate"
al archivo .ism para una pista de audio específica.
Manifiesto de Smooth Streaming
Si está reproduciendo un flujo de Smooth Streaming, el manifiesto llevaría valores en los atributos Accessibility
y Role
para esa pista de audio. Por ejemplo, Role="alternate" Accessibility="description"
se agregaría en el elemento StreamIndex
para indicar que es una descripción de audio.
Manifiesto DASH
En el caso del manifiesto DASH, se agregarían los dos elementos siguientes para indicar la descripción del audio:
<Accessibility schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="alternate"/>
Lista de reproducción de HLS
En el caso de HLS v7, y las versiones superiores(format=m3u8-cmaf)
, su lista de reproducción llevaría AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video"
cuando se señale la pista de la descripción de audio.
Filtrado de manifiestos dinámicos
Para controlar el número de pistas, formatos, velocidades de bits y ventanas de tiempo de presentación que se envían a los reproductores, puede usar el filtro dinámico con el empaquetador dinámico de Media Services. Para más información, consulte Manifiestos de un filtrado previo con el empaquetador dinámico.
Cifrado dinámico para DRM
Puede usar el cifrado dinámico para cifrar de forma dinámica el contenido en directo o a petición con AES-128 o cualquiera de los tres principales sistemas de administración de derechos digitales (DRM): Microsoft PlayReady, Google Widevine y Apple FairPlay. Media Services también proporciona un servicio para entregar claves AES y licencias de DRM a clientes autorizados. Para más información, consulte Cifrado dinámico.
Nota
Widevine es un servicio que ofrece Google Inc. y que está sujeto a los términos del servicio y la directiva de privacidad de Google, Inc.
Obtener ayuda y soporte técnico
Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes:
- PREGUNTAS Y RESPUESTAS
-
Stack Overflow. Etiquete preguntas con
azure-media-services
. - @MSFTAzureMedia o use @AzureSupport para solicitar soporte técnico.
- Abra una incidencia de soporte técnico a través del Azure Portal.