

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Formato del modello di segmento manifesto DASH
<a name="segtemp-format"></a>

La possibilità di selezionare il formato del modello di segmento DASH è disponibile solo con flussi di lavoro attivi. AWS Elemental MediaPackage

Le seguenti sezioni descrivono in che modo modificare l'oggetto `SegmentTemplate` nei manifest DASH per meglio soddisfare i requisiti del dispositivo di riproduzione.

**Topics**
+ [Attributo `media` in `SegmentTemplate`](segtemp-format-media.md)
+ [Attributo `duration` nel `SegmentTemplate`](segtemp-format-duration.md)

# Attributo `media` in `SegmentTemplate`
<a name="segtemp-format-media"></a>

L'attributo `media` nelle proprietà `SegmentTemplate` definisce l'URL a cui i dispositivi di riproduzione inviano le richieste di segmenti. Per impostazione predefinita, questo URL utilizza una `$Number$` variabile per identificare il segmento specifico richiesto. Quando un dispositivo di riproduzione richiede il segmento, esso sostituisce la variabile con l'identificativo numerico del segmento. Per il primo segmento nella rappresentazione, sostituire l'identificativo con il valore `startNumber` delle proprietà `SegmentTemplate`. Ogni ulteriore segmento aumenta di uno.

Alcuni lettori invece gestiscono meglio i segmenti quando sono identificati dal timestamp per indicare quando è disponibile la riproduzione. Per supportare questo caso d'uso, MediaPackage utilizza la variabile `$Time$` anziché `$Number$` nell'URL dell'attributo `media`. Quando un dispositivo di riproduzione richiede il segmento, esso sostituisce la variabile con l'orario di inizio della disponibilità del segmento. Questo orario di inizio è identificato dal valore `t` delle proprietà del segmento (`S`) nell'oggetto `SegmentTimeline`. Per un esempio, consulta [Come funziona](#how-stemp-works).

## Come funziona la `$Time$` variabile
<a name="how-stemp-works"></a>

Abilita la variabile `$Time$` tramite l'impostazione **Segment template format (Formato modello segmento)** sull'endpoint DASH, come descritto in [Creazione di un endpoint DASH](endpoints-dash.md). AWS Elemental MediaPackage richiede le seguenti operazioni:

1.  Quando MediaPackage genera il manifesto DASH, utilizza la `$Time$` variabile nel `media` valore dell'`SegmentTemplate`oggetto, come mostrato nell'esempio seguente:  
**Example**  

   ```
   <SegmentTemplate timescale="30" media="index_video_1_0_$Time$.mp4?m=1122792372" initialization="index_video_1_0_init.mp4?m=1122792372" startNumber="2937928">
   ```

1. Quando un dispositivo di riproduzione richiede segmenti, utilizza l'URL definito nell'`media`attributo e sostituisce la variabile con l'ora di inizio della disponibilità del segmento richiesto.
**Importante**  
Il valore che sostituisce la variabile deve essere un valore `t` esatto di un segmento. Se la richiesta usa un timestamp arbitrario, MediaPackage non ricerca il segmento più vicino.  
**Example**  

   Di seguito è riportato un esempio di un modello di segmento da una rappresentazione. Utilizza la variabile `$Time$`:

   ```
   <SegmentTemplate timescale="30000" media="155_video_1_2_$Time$.mp4?m=1545421124" initialization="155_video_1_2_init.mp4?m=1545421124" startNumber="710">
     <SegmentTimeline>
          <S t="255197799" d="360360" r="8"/>
          <S t="258441039" d="334334"/>
     </SegmentTimeline>
   </SegmentTemplate>
   ```

   L'URL di richiesta del primo segmento è **155\$1video\$11\$12\$1*255197799*.mp4**. Con una durata di 360360, la successiva richiesta di segmento è **155\$1video\$11\$12\$1*255558159*.mp4** e così via fino al nono segmento. 

   La richiesta del segmento finale è **155\$1video\$11\$12\$1*258441039*.mp4**.

# Attributo `duration` nel `SegmentTemplate`
<a name="segtemp-format-duration"></a>

In un manifest DASH predefinito, `SegmentTemplate` contiene un `SegmentTimeline`. La timeline descrive tutti i segmenti in `Representation`, inclusi la durata e l'ora di avvio. Con gli eventi dal vivo, AWS Elemental MediaPackage aggiunge segmenti alla timeline man mano che li riceve dal codificatore. Per essere a conoscenza dei nuovi segmenti disponibili, il dispositivo di riproduzione deve richiedere regolarmente un manifesto aggiornato a. MediaPackage

Se tutti i segmenti di una rappresentazione hanno la stessa durata, potete contribuire a ridurre la latenza e abbreviare il manifesto abilitando MediaPackage la rimozione degli oggetti. `SegmentTimeline` Al loro posto, MediaPackage aggiunge un `duration` attributo alle proprietà. `SegmentTemplate` Il dispositivo di riproduzione calcola quando i segmenti sono disponibili utilizzando `duration` e `startNumber`. Poiché il dispositivo di riproduzione non deve basarsi su un manifest aggiornato per essere a conoscenza dei segmenti, non deve richiedere costantemente aggiornamenti per mantenere la riproduzione. Per informazioni sul funzionamento dell'attributo `duration`, consulta le seguenti sezioni.

**Argomenti**
+ [Come funziona l'`duration`attributo](#how-stemp-dur-works)
+ [`duration`Attributo con manifesti DASH compattati](#stemp-dur-combos)

## Come funziona l'`duration`attributo
<a name="how-stemp-dur-works"></a>

Abilita l'attributo `$duration$` tramite l'impostazione **Segment template format (Formato segmento modello)** sull'endpoint DASH, come descritto in [Creazione di un endpoint DASH](endpoints-dash.md). Di seguito viene descritto cosa accade con il manifest: 

1. Quando AWS Elemental MediaPackage genera il manifesto DASH, aggiunge l'`duration`attributo all'`SegmentTemplate`oggetto, come mostrato nell'esempio seguente:  
**Example**  

   ```
   <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1535562908" initialization="index_video_1_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/>
   ```

   Una sequenza temporale di segmento e singole descrizioni del segmento non sono incluse nel modello di segmento.
**Importante**  
Tranne che per il segmento finale, il numero di segmenti non deve deviare più del 50% rispetto al valore della durata. Con una durata di 90000, i segmenti devono essere compresi tra 45000 e 135000 (da 1,5 a 4,5 secondi con una scala temporale di 30000).   
**Example**  

   Di seguito è riportato un esempio di un set di adattamento che usa `duration` nel modello di segmento:

   ```
   <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
     <Representation id="1" width="852" height="480" frameRate="30/1" bandwidth="1200000" codecs="avc1.4D401F">
       <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1535562908" initialization="index_video_1_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/>
     </Representation>
     <Representation id="2" width="640" height="360" frameRate="30/1" bandwidth="800000" codecs="avc1.4D401E">
       <SegmentTemplate timescale="30000" media="index_video_3_0_$Number$.mp4?m=1535562908" initialization="index_video_3_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/>
     </Representation>
     <Representation id="3" width="320" height="240" frameRate="30/1" bandwidth="499968" codecs="avc1.4D400D">
       <SegmentTemplate timescale="30000" media="index_video_5_0_$Number$.mp4?m=1535562908" initialization="index_video_5_0_init.mp4?m=1535562908" startNumber="175032" duration="90000" presentationTimeOffset="62061"/>
     </Representation>
   </AdaptationSet>
   ```

1. Il dispositivo di riproduzione richiede i segmenti utilizzando l'URL definito nell'attributo. `media` Nell'URL, sostituisce la variabile `$Number$` con il numero del segmento, a partire dal valore del `startNumber` nel `SegmentTemplate` per il primo segmento.

1. Se il dispositivo di riproduzione deve determinare il segmento più recente, usa questa formula:

   ((wall clock time - `availabilityStartTime` ) / (`duration` / `timescale` )) \$1 `startNumber`  
**Example**  

   Un dispositivo di riproduzione calcola il segmento più recente con i seguenti valori:
   + Ora dell'orologio da parete dal dispositivo di riproduzione: 2018-11-16T 19:18:30 Z
   + `availabilityStartTime`- Attributo dell'`MPD`oggetto del manifesto: 2018-11-16T 19:08:30 Z
   + `duration`- Attributo dell'`SegmentTemplate`oggetto del manifesto: 90000
   + `timescale`- Attributo tratto da`SegmentTemplate`: 30000
   + `startNumber`- Attributo tratto dal`SegmentTemplate`: 175032

   Il calcolo utilizzato è ((2018-11-16T19:18:30Z - 2018-11-16T19:08:30Z) / (90000/30000)) \$1 175032

   Questo calcolo diventa quindi (Tempo trascorso di 600 secondi)/(Durate dei segmenti di 3 secondi) = 200 segmenti trascorsi. L'aggiunta di tali segmenti al segmento iniziale 175032 rende il segmento più recente 175232.

## `duration`Limitazioni degli attributi
<a name="stemp-limitations"></a>

Per garantire una riproduzione corretta e aiutare a prevenire problemi con le durate dei segmenti in conflitto, AWS Elemental MediaPackage applica le seguenti limitazioni per l'attributo: `duration`
+ Puoi abilitare la caratteristica solo quando crei l'endpoint. 

  Non puoi modificare l'endpoint per aggiungere in seguito l'attributo `duration` ai manifest DASH. Questo include la modifica da un formato modello segmento a uno che utilizza `duration`. Ad esempio, non puoi creare un endpoint che utilizza la variabile `$Time$` con `SegmentTimeline` e quindi modificare l'endpoint per utilizzare la variabile `$Number$` con `duration`.
+ Devi mantenere il valore **segment duration (durata segmento)** impostato al momento della creazione dell'endpoint.

  Non puoi modificare l'endpoint per modificare la durata del segmento.
+ Devi produrre manifest DASH a singolo periodo da endpoint che utilizzano `duration`.

  Non puoi utilizzare DASH multi-periodo con l'attributo `duration`.
+ Il tuo flusso di ingest deve utilizzare una cadenza di segmentazione regolare.
+ Non puoi utilizzare una lunghezza variabile dei segmenti nel flusso di importazione. Ad esempio, il risultato di una segmentazione relativa a SCTE-35.

## `duration`Attributo con manifesti DASH compattati
<a name="stemp-dur-combos"></a>

La combinazione di manifest compattati con l'attributo `duration` ridurrà ulteriormente le dimensioni del manifest, ma non di molto. I manifest compattati dispongono di un `SegmentTemplate` e `SegmentTimeline` per set di adattamento. Quando si utilizza l'`duration`attributo, AWS Elemental MediaPackage rimuove la sequenza temporale del segmento. Con entrambi i trattamenti, il manifest dispone di un `SegmentTemplate` per set di adattamento e nessun `SegmentTimeline`. Fare riferimento agli esempi riportati di seguito.

Per ulteriori informazioni sui manifest compattati, consulta [Manifesti DASH compatti](compacted.md).

**Importante**  
Se i segmenti in una rappresentazione dispongono intenzionalmente di segmenti di varie dimensioni, non utilizzare l'attributo `duration`. Questo trattamento funziona solo quando le dimensioni dei segmenti sono coerenti.

**Example**    
Di seguito è riportato un esempio di manifesto compatto:  

```
<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
   <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="1">
     <SegmentTimeline>
       <S t="62000" d="60000" r="9"/>
     </SegmentTimeline>
   </SegmentTemplate>
   <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/>
   <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/>
   <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/>
</AdaptationSet>
```  
Di seguito è riportato un esempio di manifesto compatto con l'`duration`attributo:  

```
<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
   <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="1" duration="60000"/>
   <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/>
   <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/>
   <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/>
</AdaptationSet>
```