

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à.

# 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>
```