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
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 eventi live, AWS Elemental MediaPackage aggiunge segmenti alla timeline quando li riceve dall'encoder. Per essere a conoscenza dei nuovi segmenti disponibili, il dispositivo di riproduzione deve richiedere regolarmente un manifesto aggiornato da. 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.
Come funziona l'duration
attributo
Abilita l'attributo $duration$
tramite l'impostazione Segment template format (Formato segmento modello) sull'endpoint DASH, come descritto in Creazione di un endpoint DASH. Di seguito viene descritto cosa accade con il manifest:
-
Quando AWS Elemental MediaPackage genera il manifest DASH, aggiunge l'attributo
duration
all'oggettoSegmentTemplate
, come mostrato nell'esempio seguente:<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).
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>
-
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 delstartNumber
nelSegmentTemplate
per il primo segmento. -
Se il dispositivo di riproduzione deve determinare il segmento più recente, usa questa formula:
((wall clock time -
availabilityStartTime
) / (duration
/timescale
)) +startNumber
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 daSegmentTemplate
: 30000 -
startNumber
- Attributo tratto dalSegmentTemplate
: 175032
Il calcolo utilizzato è ((2018-11-16T19:18:30Z - 2018-11-16T19:08:30Z) / (90000/30000)) + 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
Per garantire la riproduzione corretta ed evitare problemi con durate di segmenti in conflitto, AWS Elemental MediaPackage impone 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 utilizzaduration
. Ad esempio, non puoi creare un endpoint che utilizza la variabile$Time$
conSegmentTimeline
e quindi modificare l'endpoint per utilizzare la variabile$Number$
conduration
. -
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 inserimento. Ad esempio, il risultato di una segmentazione relativa a SCTE-35.
duration
Attributo con manifesti DASH compattati
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 utilizzi l'attributo duration
, AWS Elemental MediaPackage rimuove la timeline 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.
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.
- 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>