

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Attribut `duration` in der `SegmentTemplate`
<a name="segtemp-format-duration"></a>

In einem DASH-Standardmanifest enthält `SegmentTemplate` eine `SegmentTimeline`. Die Timeline beschreibt alle Segmente in `Representation` einschließlich ihrer Dauer und Startzeit. AWS Elemental MediaPackage Fügt bei Live-Events Segmente zur Timeline hinzu, sobald sie von Ihrem Encoder empfangen werden. Um über neu verfügbare Segmente informiert zu werden, muss das Wiedergabegerät regelmäßig ein aktualisiertes Manifest von MediaPackage anfordern.

Wenn alle Segmente in einer Darstellung dieselbe Dauer haben, können Sie dazu beitragen, die Latenz zu reduzieren und das Manifest MediaPackage zu verkürzen, indem Sie das Entfernen der `SegmentTimeline` Objekte aktivieren. MediaPackage Fügt stattdessen ein `duration` Attribut zu den `SegmentTemplate` Eigenschaften hinzu. Das Wiedergabegerät berechnet mittels `duration` und `startNumber` den Zeitpunkt der Verfügbarkeit von Geräten. Da das Wiedergabegerät nicht von einem aktualisierten Manifest abhängig ist, um Informationen zu Segmenten zu erhalten, muss es nicht ständig Aktualisierungen anfordern, um die Wiedergabe sicherzustellen. Weitere Informationen zur Funktionsweise des Attributs `duration` finden Sie in den folgenden Abschnitten.

**Topics**
+ [Wie funktioniert das `duration` Attribut](#how-stemp-dur-works)
+ [`duration`Attribut mit komprimierten DASH-Manifesten](#stemp-dur-combos)

## Wie funktioniert das `duration` Attribut
<a name="how-stemp-dur-works"></a>

Aktivieren Sie das Attribut `$duration$` über die Einstellung **Segment template format (Segmentvorlagenformat)** auf dem DASH-Endpunkt wie in [Einen DASH-Endpunkt erstellen](endpoints-dash.md) beschrieben. Anschließend werden folgende Aktionen für das Manifest ausgeführt: 

1. Wenn das DASH-Manifest AWS Elemental MediaPackage generiert wird, fügt es dem `SegmentTemplate` Objekt das `duration` Attribut hinzu, wie im folgenden Beispiel gezeigt:  
**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"/>
   ```

   Die Segmentvorlage enthält keine Segment-Timeline oder Beschreibungen einzelner Segmente.
**Wichtig**  
Abgesehen vom letzten Segment dürfen Segmente nicht mehr als 50 % vom Wert für die Dauer abweichen. Bei einer Dauer von 90000 müssen die Segmente zwischen 45000 und 135000 liegen (1,5 bis 4,5 Sekunden bei einer Zeitskala von 30.000).   
**Example**  

   Im Folgenden finden Sie ein Beispiel für einen Anpassungssatz, der `duration` in der Segmentvorlage verwendet:

   ```
   <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. Das Wiedergabegerät fordert Segmente mithilfe der URL an, die im Attribut definiert ist. `media` In der URL wird die Variable `$Number$` durch die Nummer des Segments ersetzt, beginnend mit dem Wert für `startNumber` in der `SegmentTemplate` für das erste Segment.

1. Wenn Ihr Wiedergabegerät das jeweils aktuelle Segment ermitteln muss, verwendet es diese Formel:

   ((Zeit - `availabilityStartTime` ) / (`duration` / `timescale` )) \+ `startNumber`  
**Example**  

   Ein Wiedergabegerät berechnet das jeweils aktuelle Segment mit den folgenden Werten:
   + Uhrzeit der Wanduhr vom Wiedergabegerät: 2018-11-16T 19:18:30 Z
   + `availabilityStartTime`- Attribut aus dem `MPD` Objekt des Manifests: 2018-11-16T 19:08:30 Z
   + `duration`- Attribut aus dem Objekt des `SegmentTemplate` Manifests: 90000
   + `timescale`- Attribut aus dem`SegmentTemplate`: 30000
   + `startNumber`- Attribut aus dem`SegmentTemplate`: 175032

   Die verwendete Berechnung ist ((2018-11-16T19:18:30Z - 2018-11-16T19:08:30Z) / (90000/30000)) \+ 175032

   Diese Berechnung wird zu (600 Sekunden verstrichene Zeit) / (3 Sekunden Segmentdauer) = 200 verstrichene Segmente. Das Hinzufügen dieser Segmente an das Startsegmebt 175032 ergibt, dass 175232 das aktuellste Segment ist.

## `duration`Einschränkungen von Attributen
<a name="stemp-limitations"></a>

Um eine korrekte Wiedergabe zu gewährleisten und Probleme mit widersprüchlichen Segmentdauern zu vermeiden, gelten AWS Elemental MediaPackage für das Attribut die folgenden Einschränkungen: `duration`
+ Sie können die Funktion nur aktivieren, wenn Sie den Endpunkt erstellen. 

  Sie können den Endpunkt nicht zu einem späteren Zeitpunkt ändern, um das Attribut `duration` zu Ihrem DASH Manifest hinzuzufügen. Dies umfasst den Wechsel zu einer Segmentvorlage, die das Attribut `duration` verwendet. Sie können beispielsweise keinen Endpunkt erstellen, der die Variable `$Time$` mit `SegmentTimeline` verwendet und anschließend den Endpunkt so bearbeiten, dass er die Variable `$Number$` mit `duration` verwendet.
+ Sie müssen den Wert für **segment duration (Segmentdauer)** beibehalten, den Sie während der Erstellung des Endpunkts festgelegt haben.

  Sie können den Endpunkt nicht bearbeiten, um die Segmentdauer zu ändern.
+ Sie müssen aus Endpunkten, die `duration` verwenden, DASH-Manifeste für einzelne Zeiträume produzieren.

  Sie können keine DASH-Manifeste für mehrere Zeiträume zusammen mit dem Attribut `duration` verwenden.
+ Ihr Ingest-Stream muss einen regelmäßigen Segmentierungsrhythmus verwenden.
+ Sie können im Ingest-Stream keine variable Segmentlänge verwenden. Dies ist beispielsweise das Ergebnis einer SCTE-35-bezogenen Segmentierung.

## `duration`Attribut mit komprimierten DASH-Manifesten
<a name="stemp-dur-combos"></a>

Wenn Sie kompakte Manifeste mit dem Attribut `duration` kombinieren, wird die Größe des Manifests weiter reduziert, jedoch nicht viel. Kompakte Manifeste besitzen nur eine `SegmentTemplate` und `SegmentTimeline` pro Anpassungssatz. Wenn Sie das `duration` Attribut verwenden, AWS Elemental MediaPackage wird die Segment-Timeline entfernt. In der Folge besitzt das Manifest nur eine `SegmentTemplate` pro Anpassungssatz und keine `SegmentTimeline`. Sehen Sie sich die folgenden Beispiele an.

Weitere Informationen zu kompakten Manifesten finden Sie unter [Kompakte DASH-Manifeste](compacted.md).

**Wichtig**  
Verwenden Sie das Attribut `duration` nicht, wenn die Segmente in einer Repräsentation absichtlich unterschiedlich groß sind. Dieses Verfahren funktioniert nur, wenn die Größe der Segmente konsistent ist.

**Example**    
Im Folgenden finden Sie ein Beispiel für ein komprimiertes Manifest:  

```
<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>
```  
Das Folgende ist ein Beispiel für ein komprimiertes Manifest mit dem `duration` Attribut:  

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