

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.

# Integrar una fuente MPEG-DASH
<a name="manifest-dash"></a>

AWS Elemental MediaTailor admite manifiestos en `.mpd` directo y de vídeo bajo demanda (VOD) que sigan las directrices del perfil dinámico DASH. MediaTailor acepta entradas de manifiestos compatibles con el DASH de varios períodos y de un solo período, y ofrece salidas de manifiestos de varios períodos que cumplen con el DASH. 

Los manifiestos de entrada deben tener lo siguiente:
+ Secuencias de eventos SCTE-35 con ajustes de información de división para `splice insert `o` time signal`. Los ajustes se pueden proporcionar en XML vacío o en binario codificado en base64. 
+ `Segment templates` con `segment timelines`. 

En el caso de los manifiestos publicados, MediaTailor requiere que las actualizaciones del servidor de origen no modifiquen lo siguiente: 
+ Horas de inicio del período, especificadas en el atributo `start`. 
+ Valores de `presentationTimeOffset` en las plantillas de segmento de las representaciones del periodo. 

Se recomienda que el anuncio tenga la misma disponibilidad y la misma `AdaptationSet` `Representation` configuración que los períodos de transmisión del contenido. AWS Elemental MediaTailor utiliza estos ajustes para transcodificar los anuncios para que coincidan con el flujo de contenido, de forma que se pueda cambiar fácilmente entre ambos.

En las siguientes secciones, se proporciona más información sobre cómo se gestionan los anuncios MediaTailor en los manifiestos de DASH.

**Topics**
+ [Marcadores de anuncios de DASH](dash-ad-markers.md)
+ [DASH y duración de disponibilidad](dash-ad-avail-duration.md)
+ [Numeración de segmentos del manifiesto de DASH](dash-manifest-segment-numbering.md)
+ [Ejemplos de DASH MPD](manifest-dash-example.md)
+ [Función de ubicación DASH](dash-location-feature.md)

# Marcadores de anuncios de DASH
<a name="dash-ad-markers"></a>

MediaTailor 

AWS Elemental MediaTailor Utiliza los marcadores de exclusión SCTE-35 para identificar los anuncios disponibles en el manifiesto de DASH mediante la siguiente lógica: 
+ **DASH de varios períodos**: MediaTailor inserta anuncios para el primero `Event` de cada uno de ellos `Period` que contenga uno o varios marcadores. `SpliceInsert` `TimeSignal` MediaTailorignora los marcadores adicionales `Event` en el. `Period`
+ **DASH de un solo período**: MediaTailor inserta anuncios `Event` en cada uno de los `Period` que contienen uno `SpliceInsert` o varios marcadores`TimeSignal`.

De forma predeterminada, AWS Elemental MediaTailor gestiona los manifiestos de DASH como manifiestos de varios períodos. Puede cambiar la configuración de manifiestos de DASH de un solo período desde su servidor de origen. Para obtener información, consulte [Crear una configuración MediaTailor de reproducción](configurations-create.md).

En las siguientes secciones se proporciona información adicional sobre el manejo de los marcadores de anuncios de DASH y se muestran los manifiestos decorados desde su origen.

## Requisitos XML del manifiesto de origen de DASH
<a name="dash-ad-markers-examples"></a>

Los marcadores de anuncios de los manifiestos de DASH del origen deben tener el formato adecuado MediaTailor para identificar las pausas publicitarias. En los siguientes temas se describen estos requisitos de formato en XML transparente.

### `SpliceInsert`en XML transparente
<a name="dash-splice-xml"></a>

`SpliceInsert`los marcadores de anuncios en XML transparente deben contener lo siguiente:
+ `EventStream`debe tener el siguiente atributo: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`debe contener `scte35:SpliceInfoSection` 
+ `scte35:SpliceInfoSection`debe aguantar `scte35:SpliceInsert` 
+ `scte35:SpliceInsert`debe tener el siguiente atributo: `outOfNetworkIndicator="true"`

**Example `SpliceInsert`en XML**  
En el siguiente ejemplo, los marcadores SCTE obligatorios aparecen en negrita.   

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="1350000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
        <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="1350000"/>
        </scte35:SpliceInsert>
      </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

### `TimeSignal`en XML transparente
<a name="dash-signal-xml"></a>

`TimeSignal`los marcadores de anuncios en XML transparente deben contener lo siguiente:
+ `EventStream`debe tener el siguiente atributo: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`debe contener `scte35:SpliceInfoSection`
+ `scte35:SpliceInfoSection`debe aguantar `scte35:TimeSignal`
+ `scte35:SpliceInfoSection`también debe sostener `scte35:SegmentationDescriptor`
+ `scte35:SegmentationDescriptor`debe tener el siguiente atributo, donde el valor es válido[Números recortados](#dash-signal-xml-values): `segmentationTypeId="xx"`
+ `scte35:SegmentationDescriptor`debe mantener `scte35:SegmentationUpid` 
<a name="dash-signal-xml-values"></a>
**Números recortados**  
Los siguientes son los números de corte admitidos para el. `segmentationTypeId`


| Mensaje de segmentación | Valor de segmentationTypeId | Valor hexadecimal | 
| --- | --- | --- | 
| Fin del anuncio del distribuidor | 51 | 0x51 | 
| Inicio del anuncio del distribuidor | 50 | 0x32 | 
| Se acabó la oportunidad de colocación de distribuidores | 55 | 0x37 | 
| Comienza la oportunidad de colocación de distribuidores | 54 | 0x36 | 
| Pausa final | 35 | 0x23 | 
| Fin del anuncio del proveedor | 49 | 0x31 | 
| Inicio del anuncio del proveedor | 48 | 0x30 | 
| Fin de la oportunidad de colocación de proveedores | 57 | 0x39 | 
| Inicio de la oportunidad de colocación superpuesta de proveedores | 56 | 0x38 | 
| Se acabó la oportunidad de colocación de proveedores | 53 | 0x35 | 
| Comienza la oportunidad de colocación de proveedores | 52 | 0x34 | 
| Comience el descanso | 34 | 0x22 | 

**Example `TimeSignal`en XML**  
En el siguiente ejemplo, los marcadores SCTE obligatorios aparecen en negrita.   

```
<Period start="PT346530.250S" id="178443" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
         </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1414668" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
            <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
            <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

## Manifiesto de origen DASH: requisitos binarios codificados en base64
<a name="dash-base64"></a>

Los marcadores de anuncios de los manifiestos de DASH del origen deben tener el formato adecuado MediaTailor para identificar las pausas publicitarias. En los siguientes temas se describen estos requisitos de formato en formato binario codificado en base64.

`TimeSignal`Tanto los marcadores como los `SpliceInsert` anuncios de los manifiestos codificados en base64 deben contener lo siguiente:
+ `EventStream`debe tener el siguiente atributo: `urn:scte:scte35:2014:xml+bin`
+ `Event`debe contener `scte35:Signal`
+ `scte35:Signal`debe contener un `scte35:Binary` binario codificado en base64. 

El binario decodificado debe incluir la misma información que la necesaria para borrar los marcadores de anuncios XML. `splice_info_section`
+ El tipo de comando debe ser uno o `splice_insert()` `time_signal()`
+ La configuración adicional debe cumplir con la descrita en [`TimeSignal`en XML transparente](#dash-signal-xml) y[`SpliceInsert`en XML transparente](#dash-splice-xml).

 Los binarios descodificados deben proporcionar una `splice_info_section` con el mismo conjunto de información de igual modo que proporcionaría el XML vacío en un elemento `scte35:SpliceInfoSection`. El tipo de comando debe ser `splice_insert()` o `time_signal()`, y la configuración adicional deben cumplir con los tipos descritos anteriormente para la distribución de XML vacío. 

En el siguiente ejemplo se muestra esta opción con los marcadores necesarios en negrita.

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
    <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
      <Event presentationTime="1541436240" duration="24" id="29">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</scte35:Binary>
        </scte35:Signal>
      </Event>
      <Event presentationTime="1541436360" duration="24" id="30">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</scte35:Binary>
        </scte35:Signal>
      </Event>
  .
  .
  .
</Period>
```

A continuación se presenta el binario descodificado para el primer evento enumerado en el ejemplo anterior. La configuración de `splice_command_type` es 5, lo que indica `splice_insert`. 

```
{
        "table_id": 252,
        "section_syntax_indicator": false,
        "private_indicator": false,
        "section_length": 33,
        "protocol_version": 0,
        "encrypted_packet": false,
        "encryption_algorithm": 0,
        "pts_adjustment": 0,
        "cw_index": 0,
        "tier": "0xFFF",
        "splice_command_length": 16,
        "splice_command_type": 5,
        "splice_command": {
          "splice_event_id": 448,
          "splice_event_cancel_indicator": false,
          "out_of_network_indicator": true,
          "program_splice_flag": true,
          "duration_flag": true,
          "splice_immediate_flag": false,
          "utc_splice_time": {
            "time_specified_flag": false,
            "pts_time": null
          },
          "component_count": 0,
          "components": null,
          "break_duration": {
            "auto_return": false,
            "duration": {
              "pts_time": 2160000,
              "wall_clock_seconds": 24.0,
              "wall_clock_time": "00:00:24:00000"
            }
          },
          "unique_program_id": 49152,
          "avail_num": 0,
          "avails_expected": 0
        },
        "splice_descriptor_loop_length": 0,
        "splice_descriptors": null,
        "Scte35Exception": {
          "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
          "error_messages": [],
          "table_id": 252,
          "splice_command_type": 5
        }
      }
```

# DASH y duración de disponibilidad
<a name="dash-ad-avail-duration"></a>

Durante la reproducción, cuando AWS Elemental MediaTailor detecta que un anuncio está disponible, este sustituye una parte o la totalidad del anuncio por anuncios. MediaTailor comienza a sustituir el anuncio al principio de la disponibilidad del anuncio e incluye los siguientes anuncios: 
+ Si el anuncio disponible especifica una duración, MediaTailor incluye tantos anuncios como quepan dentro del límite de duración, sin sobrescribir el contenido siguiente. 
+ Si no se indica una duración, se MediaTailor incluyen los anuncios hasta el final del periodo de disponibilidad del anuncio. Para manifiestos de varios períodos, este es el final del período. En el caso de los manifiestos de un solo período, este es el final del evento. MediaTailor no reproduce anuncios después del final del anuncio disponible y, cuando llega al final, trunca el anuncio actual en lugar de sobrescribir el contenido siguiente. 

**¿Cómo AWS Elemental MediaTailor busca la duración de disponibilidad del anuncio**  
AWS Elemental MediaTailor busca una configuración de duración en el siguiente orden: 

1. `Event` `duration`

1. En el caso de inserciones de división, la `scte35:BreakDuration` `duration`

1. En el caso de la señal de tiempo, la `scte35:SegmentationDescriptor` `segmentationDuration`

Si AWS Elemental MediaTailor no encuentra ninguno de estos ajustes, gestiona la inclusión de anuncios sin duración. 

En el siguiente ejemplo se muestra un `Event` que incluye una `duration`.

```
  <Period start="PT444806.040S" id="123586" duration="PT15.000S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event duration="1350000">
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
                  <scte35:BreakDuration autoReturn="true" duration="1350000"/>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
              ...
```

En el siguiente ejemplo se muestra un espacio publicitario para el que no se ha especificado ninguna duración. El `Event` no tiene `duration` y el elemento `scte35:SpliceInsert` no contiene ningún elemento secundario `scte35:BreakDuration`.

```
  <Period start="PT444836.720S" id="123597" duration="PT12.280S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event>
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531856" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5675385600"/></scte35:Program>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
            ...
```

# Numeración de segmentos del manifiesto de DASH
<a name="dash-manifest-segment-numbering"></a>

MediaTailor admite los segmentos multimedia `<SegmentTemplate>` que se definen mediante `<SegmentTimeline>` y el `media` atributo. Puede especificar la lista de segmentos multimedia en el atributo `media` utilizando el identificador `$Number$` o el identificador `$Time$`.

 En el siguiente ejemplo se muestra una `SegmentTemplate` con una configuración de atributo `media` que utiliza el identificador `$Number$`.

```
        <SegmentTemplate initialization="index_subtitles_4_0_init.mp4?m=1532451703" media="index_subtitles_4_0_$Number$.mp4?m=1532451703" presentationTimeOffset="1062336677920" startNumber="2349899" timescale="90000">
                <SegmentTimeline>
                  <S d="540540" r="2" t="1062338840080"/>
                  <S d="69069" t="1062340461700"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

 En el siguiente ejemplo se muestra una `SegmentTemplate` con una configuración de atributo `media` que utiliza el identificador `$Time$`.

```
        <SegmentTemplate initialization="asset_720p_8000K_9_init.mp4" media="asset_720p_8000K_9_$Time$.mp4" startNumber="1" timescale="90000">
                <SegmentTimeline>
                  <S d="180000" r="2" t="0"/>
                  <S d="147000" t="540000"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

# Ejemplos de DASH MPD
<a name="manifest-dash-example"></a>

En las siguientes secciones se proporcionan ejemplos de DASH originados MPDs y personalizados MPDs. Entender estos ejemplos puede ayudarte a configurar y solucionar problemas de tus MediaTailor flujos de trabajo.

Para obtener información sobre cómo se aplican los parámetros de consulta a los manifiestos y segmentos de DASH, consulte[MediaTailor Inicialización de sesión implícita de DASH](manifest-query-parameters-dash-implicit-session-initialization.md).

## Comprensión de la estructura MPD de DASH
<a name="dash-mpd-overview"></a>

La transmisión dinámica adaptativa a través de HTTP (DASH) utiliza un manifiesto de descripción de presentación multimedia (MPD) para ofrecer contenido en streaming. El MPD es un documento XML que describe la estructura y la disponibilidad del contenido multimedia.

MPD (descripción de la presentación multimedia)  
El MPD es el archivo de manifiesto principal de la transmisión de DASH que describe la estructura y la disponibilidad del contenido multimedia. Contiene información sobre los períodos, los conjuntos de adaptaciones, las representaciones y los segmentos que componen el contenido de streaming.  
Este tipo de manifiesto también se conoce con otros nombres en varios contextos, como manifiesto de DASH, MPD de DASH, manifiesto maestro (en comparación con HLS) o manifiesto de presentación.  
En MediaTailor los flujos de trabajo, el MPD es el punto de entrada para las solicitudes de reproducción y es donde comienza la personalización de los anuncios.

Periodo  
Un período es una sección temporal de una presentación de DASH. Cada período contiene uno o más conjuntos de adaptaciones y representa un período de tiempo dedicado a los medios de comunicación. En los flujos de trabajo de inserción de anuncios, normalmente se utilizan períodos separados para delimitar entre el contenido y los anuncios.  
En MediaTailor los flujos de trabajo, los períodos se utilizan para separar el contenido principal del contenido del anuncio, y cada anuncio suele estar representado por su propio período.

AdaptationSet  
Y AdaptationSet agrupa un conjunto de versiones codificadas intercambiables de uno o varios componentes del contenido multimedia. Por ejemplo, uno AdaptationSet puede contener varios niveles de calidad de vídeo, mientras que otro puede contener varias opciones de idioma de audio.  
En MediaTailor los flujos de trabajo, AdaptationSets se conservan durante la inserción del anuncio para mantener la coherencia de los tipos de medios entre el contenido y los anuncios.

Representación  
Una representación es una versión codificada específica del contenido multimedia dentro de un AdaptationSet. Por lo general, cada representación difiere en la velocidad de bits, la resolución u otros parámetros de codificación, lo que permite a los clientes seleccionar la versión más adecuada en función de las condiciones de la red y las capacidades del dispositivo.  
En MediaTailor los flujos de trabajo, las representaciones de los períodos publicitarios se ajustan lo más posible a las representaciones de los períodos de contenido para garantizar una experiencia de visualización fluida.

Para obtener información más detallada sobre los tipos de manifiestos de DASH, consulte[Tipos de manifiestos de DASH](dash-manifest-types.md).

Para obtener información sobre la estructura y la configuración de los manifiestos de DASH AWS Elemental MediaPackage, consulte la sección de la Guía del MediaPackage usuario sobre la descripción general de DASH.

## Ejemplos de MPD de DASH en vivo
<a name="dash-manifest-live-examples"></a>

Esta sección proporciona ejemplos de DASH MPDs en vivo. Cada ejemplo muestra un MPD tal como se recibió del servidor de origen y, después, MediaTailor se personalizó el MPD con anuncios.

### Ejemplo de empalme e inserto de DASH MPD
<a name="dash-manifest-splice-insert-example"></a>

**Ejemplo de MPD de origen DASH para un inserto de empalme**  
El siguiente ejemplo de un MPD muestra la disponibilidad de un anuncio en un manifiesto recibido por DASH desde el origen del contenido. En este ejemplo, se usa el `SpliceInsert` marcador para indicar la disponibilidad de un anuncio.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="9450000"/>
        </scte35:SpliceInsert>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001">
        <SegmentTimeline>
          <S t="16633452289" d="96256" r="3"/>
          <S t="16633837313" d="95232"/>
          <S t="16633932545" d="96256" r="4"/>
          <S t="16634413825" d="95232"/>
          <S t="16634509057" d="96256" r="5"/>
          <S t="16635086593" d="95232"/>
          <S t="16635181825" d="96256" r="4"/>
          <S t="16635663105" d="95232"/>
          <S t="16635758337" d="96256" r="5"/>
          <S t="16636335873" d="71680"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

En este ejemplo de MPD de origen:
+ El `<EventStream>` elemento contiene marcadores SCTE-35 que indican y están disponibles
+ El `<scte35:SpliceInsert>` elemento proporciona detalles sobre la disponibilidad del anuncio
+ El `<scte35:BreakDuration>` elemento especifica la duración de la pausa publicitaria
+ Los `<AdaptationSet>` elementos definen las transmisiones de vídeo y audio disponibles

**Ejemplo de MPD personalizado de DASH para empalme**  
AWS Elemental MediaTailor personaliza el anuncio disponible con especificaciones publicitarias. Las personalizaciones reflejan los datos del visor que se reciben del reproductor y las campañas publicitarias que se encuentran actualmente en curso. 

En el siguiente ejemplo, se muestra la disponibilidad de un anuncio después AWS Elemental MediaTailor de personalizarlo. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
    <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280">
      <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

En este ejemplo de MPD personalizado:
+ MediaTailor ha creado un nuevo período para el contenido del anuncio
+ El `<BaseURL>` elemento apunta a la ubicación del contenido del anuncio
+ Los `<AdaptationSet>` elementos mantienen una estructura similar a la del contenido
+ Los `<Representation>` elementos proporcionan diferentes niveles de calidad para el contenido del anuncio

### Ejemplo de señal horaria DASH MPD
<a name="dash-manifest-time-signal-example"></a>

**Ejemplo de MPD de origen DASH para señal horaria**  
El siguiente ejemplo de un MPD muestra la disponibilidad de un anuncio en un manifiesto recibido por DASH desde el origen del contenido. En este ejemplo, se usa el `TimeSignal` marcador para indicar la disponibilidad de un anuncio.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="7835775000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

En este ejemplo de MPD de origen:
+ El `<scte35:TimeSignal>` elemento se usa en lugar de `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>`Proporciona información adicional sobre la disponibilidad del anuncio

**Ejemplo de MPD personalizado de DASH para señal horaria**  
AWS Elemental MediaTailor personaliza el anuncio disponible con especificaciones publicitarias. Las personalizaciones reflejan los datos del visor que se reciben del reproductor y las campañas publicitarias que se encuentran actualmente en curso. 

En el siguiente ejemplo, se muestra la disponibilidad de un anuncio después AWS Elemental MediaTailor de personalizarlo. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

El MPD personalizado para la señal horaria es similar al de la inserción de empalmes, ya que MediaTailor crea un nuevo período para el contenido del anuncio.

## Ejemplos de MPD de VOD DASH
<a name="dash-manifest-vod-examples"></a>

En esta sección se proporcionan ejemplos de DASH de vídeo bajo demanda (VOD). MPDs En cada ejemplo se muestra un MPD tal como se recibió del servidor de origen y, después, MediaTailor se personalizó el MPD con anuncios.

Los VOD DASH MPDs siguen la misma estructura que en directo MPDs, pero normalmente tienen un `type="static"` atributo en el elemento MPD y pueden contener varios períodos para distintos segmentos de contenido.

Para ver ejemplos de VOD DASH MPDs, consulte la MediaTailor documentación sobre. [Marcadores de anuncios de DASH](dash-ad-markers.md)

## Diferencias clave en la personalización MPDs
<a name="dash-manifest-key-differences"></a>

Cuando MediaTailor personaliza DASH MPDs, introduce varios cambios importantes:

Manejo de períodos  
+ Se crean nuevos períodos para el contenido de los anuncios
+ Las horas de inicio de los períodos se ajustan para mantener la continuidad del cronograma
+ EventStream los elementos con marcadores SCTE-35 se procesan y eliminan

AdaptationSet y manejo de representaciones  
+ AdaptationSets en los anuncios, los períodos se crean para que coincidan con el contenido AdaptationSets
+ Las representaciones se crean para diferentes niveles de calidad del contenido del anuncio
+ SegmentTemplate los elementos se actualizan para apuntar al contenido del anuncio

Entender estos cambios puede ayudarte a solucionar problemas en tus MediaTailor flujos de trabajo y a garantizar una configuración adecuada de la CDN y el reproductor.

## Temas relacionados
<a name="dash-manifest-related-topics"></a>

Para obtener más información sobre DASH MPDs MediaTailor, consulte los siguientes temas:
+ [Tipos de manifiestos de DASH](dash-manifest-types.md)- Explicación detallada de los tipos de manifiestos de DASH
+ [Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md)- Información sobre el uso de una CDN con MediaTailor
+ [Cómo funciona MediaTailor la inserción de anuncios](what-is-flow.md)- Descripción general de cómo funciona la inserción de MediaTailor anuncios
+ Para obtener información completa sobre la estructura y MediaPackage configuración de los manifiestos de DASH, consulta la sección de la Guía del MediaPackage usuario sobre la descripción general de DASH.

# Función de ubicación DASH
<a name="dash-location-feature"></a>

En esta sección se proporciona información acerca de la característica de ubicación de DASH, que está habilitada de forma predeterminada en AWS Elemental MediaTailor. Lea esta sección si crea reglas de enrutamiento de la red de entrega de contenido (CDN) para acceder a los MediaTailor manifiestos. Léala también si utiliza informes del lado del servidor con reproductores que no admiten redireccionamientos HTTP persistentes.

**¿Qué es la característica de ubicación?**  
La característica de ubicación permite a los reproductores que no admiten redireccionamientos HTTP "sticky" proporcionar un comportamiento "sticky" en sus solicitudes de actualización de manifiestos. 

AWS Elemental MediaTailor utiliza la inicialización sin sesión y requiere un comportamiento de redireccionamiento HTTP continuo por parte de sus reproductores. Con los informes del lado del servidor, cuando el jugador solicita una actualización del manifiesto a MediaTailor, el servicio emite una redirección temporal 302 para dirigir al jugador a un punto final para ver el manifiesto personalizado. MediaTailor incluye un identificador de sesión en la respuesta, como parámetro de consulta. El objetivo es que el reproductor siga la URL durante toda la sesión, pero los reproductores que no admiten redireccionamientos HTTP persistentes eliminan el redireccionamiento y vuelven a la dirección URL original. Cuando un jugador vuelve a la URL original, MediaTailor crea una nueva sesión para cada nueva solicitud en lugar de quedarse con la sesión original. Esto puede provocar que se dañe el manifiesto. 

La especificación DASH proporciona una solución a este problema en la función de ubicación, que está habilitada de forma predeterminada en AWS Elemental MediaTailor las configuraciones. Cuando esta función está habilitada, MediaTailor coloca la URL absoluta en la `<Location>` etiqueta del manifiesto. Los reproductores que no admiten redireccionamientos HTTP "sticky" pueden utilizar la dirección URL proporcionada en `<Location>` para solicitar actualizaciones al manifiesto. 

**¿Tengo que deshabilitar la característica de ubicación en mi configuración?**  
La característica de ubicación invalida todas las reglas de direccionamiento de CDN configuradas para acceder a los manifiestos de AWS Elemental MediaTailor , por lo que es posible que tenga que deshabilitarla. La característica de ubicación no afecta al almacenamiento en caché de CDN de segmentos de contenido o anuncios. 

Busque su caso de uso en la lista siguiente para determinar si necesita deshabilitar la característica de ubicación para su configuración y cómo administrarla:
+ Si no dispone de reglas de direccionamiento de CDN para acceder a los manifiestos de AWS Elemental MediaTailor , deje la configuración de ubicación habilitada. 
+ De lo contrario, utilice las reglas siguientes:
  + Si no utiliza informes del lado del servidor o si todos los reproductores admiten redireccionamientos HTTP "sticky", deshabilite la característica de ubicación. Para obtener información sobre cómo hacer esto en la consola, consulte [Crear una configuración MediaTailor de reproducción](configurations-create.md).
  + De lo contrario, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/).

**¿Tengo que utilizar la característica de ubicación?**  
Debe utilizar la función de ubicación para los jugadores que no admitan redireccionamientos HTTP fijos. Utilice la dirección URL proporcionada en la etiqueta `<Location>` para todas las solicitudes de actualización del manifiesto. 

**Ejemplo**  
Ejemplo URLs y `<Location>` etiqueta de ejemplo.
+   
**Example Ejemplo: dirección URL de solicitud inicial**  

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd
  ```
+   
**Example Ejemplo: respuesta de redireccionamiento 302**  

  ```
  /v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6
  ```
+   
**Example Ejemplo: etiqueta de ubicación en un manifiesto**  

  ```
  <Location>https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6</Location>
  ```