

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.

# Videowiedergabe mit MPEG-DASH
<a name="dash-playback"></a>

Um einen Kinesis-Videostream mit anzusehen MPEG-DASH, erstellen Sie zunächst eine Streaming-Sitzung mit [GetDASHStreamingSessionURL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html). Diese Aktion gibt eine URL (die ein Sitzungstoken enthält) für den Zugriff auf die MPEG-DASH Sitzung zurück. Anschließend können Sie die URL in einen Media Player oder einer eigenständigen Anwendung zum Anzeigen des Streams verwenden. 

Für einen Amazon Kinesis Kinesis-Videostream gelten die folgenden Anforderungen für die Bereitstellung von Video über MPEG-DASH:
+ Informationen zu den Anforderungen für die Wiedergabe von Streaming-Videotracks finden Sie unter[GetDASHStreamingSessionURL Anforderungen](video-playback-requirements.md#requirements-getdash).
+ Der Datenerhaltzeitraum muss größer als 0 sein.
+ Die Videospur jedes Fragments muss private Codec-Daten im Format Advanced Video Coding (AVC) für das H.264 Format und HEVC für das Format enthalten. H.265 [Weitere Informationen finden Sie in der Spezifikation 14496-15MPEG-4. ISO/IEC ](https://www.iso.org/standard/55980.html) Informationen zur Adaptierung von Stream-Daten für ein bestimmtes Format finden Sie unter [NAL Adaptation Flags](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html).
+ [Die Audiospur (falls vorhanden) jedes Fragments muss private Codec-Daten im AAC-Format ([AAC-Spezifikation ISO/IEC 13818-7) oder im MS Wave-Format](https://www.iso.org/standard/43345.html) enthalten.](https://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html)

## Beispiel: Verwendung in HTML und MPEG-DASH JavaScript
<a name="dash-examp1e"></a>

Das folgende Beispiel zeigt, wie eine MPEG-DASH Streaming-Sitzung für einen Kinesis-Videostream abgerufen und auf einer Webseite wiedergegeben wird. Das Beispiel veranschaulicht die Wiedergabe von Videos in den folgenden Playern:
+ [Google Shaka Player](https://github.com/google/shaka-player)
+ [dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki)

**Topics**
+ [Den Kinesis Video Streams Streams-Client für die MPEG-DASH Wiedergabe einrichten](#dash-example-setup)
+ [Rufen Sie den Endpunkt für archivierte Inhalte von Kinesis Video Streams zur MPEG-DASH Wiedergabe ab](#dash-example-endpoint)
+ [Rufen Sie die URL der MPEG-DASH Streaming-Sitzung ab](#dash-example-session)
+ [Zeigen Sie das Streaming-Video mit MPEG-DASH Wiedergabe an](#dash-example-display)
+ [Beispiel abgeschlossen](#dash-example-complete)

### Den Kinesis Video Streams Streams-Client für die MPEG-DASH Wiedergabe einrichten
<a name="dash-example-setup"></a>

Um auf Streaming-Video zuzugreifen MPEG-DASH, müssen Sie zunächst den Kinesis Video Streams Streams-Client (zum Abrufen des Service-Endpunkts) und den archivierten Medienclient (zum Abrufen der MPEG-DASH Streaming-Sitzung) erstellen und konfigurieren. Die Anwendung ruft die erforderlichen Werte aus Eingabefeldern auf der HTML-Seite ab.

```
var streamName = $('#streamName').val();

// Step 1: Configure SDK Clients
var options = {
    accessKeyId: $('#accessKeyId').val(),
    secretAccessKey: $('#secretAccessKey').val(),
    sessionToken: $('#sessionToken').val() || undefined,
    region: $('#region').val(),
    endpoint: $('#endpoint').val() || undefined
    }
var kinesisVideo = new AWS.KinesisVideo(options);
var kinesisVideoArchivedContent = new AWS.KinesisVideoArchivedMedia(options);
```

### Rufen Sie den Endpunkt für archivierte Inhalte von Kinesis Video Streams zur MPEG-DASH Wiedergabe ab
<a name="dash-example-endpoint"></a>

Rufen Sie nach der Initiierung der Clients den Endpunkt für archivierte Inhalte von Kinesis Video Streams ab, sodass Sie die URL der MPEG-DASH Streaming-Sitzung wie folgt abrufen können:

```
 // Step 2: Get a data endpoint for the stream
console.log('Fetching data endpoint');
kinesisVideo.getDataEndpoint({
    StreamName: streamName,
    APIName: "GET_DASH_STREAMING_SESSION_URL" 
}, function(err, response) {
    if (err) { return console.error(err); }
    console.log('Data endpoint: ' + response.DataEndpoint);
    kinesisVideoArchivedContent.endpoint = new AWS.Endpoint(response.DataEndpoint);
```

### Rufen Sie die URL der MPEG-DASH Streaming-Sitzung ab
<a name="dash-example-session"></a>

Wenn Sie den Endpunkt für archivierte Inhalte haben, rufen Sie die [GetDASHStreamingSessionURL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html)API auf, um die URL der MPEG-DASH Streaming-Sitzung wie folgt abzurufen:

```
// Step 3: Get a Streaming Session URL
var consoleInfo = 'Fetching ' + protocol + ' Streaming Session URL';
console.log(consoleInfo);

if (protocol === 'DASH') {
    kinesisVideoArchivedContent.getDASHStreamingSessionURL({
        StreamName: streamName,
        PlaybackMode: $('#playbackMode').val(),
        DASHFragmentSelector: {
            FragmentSelectorType: $('#fragmentSelectorType').val(),
            TimestampRange: $('#playbackMode').val() === "LIVE" ? undefined : {
                StartTimestamp: new Date($('#startTimestamp').val()),
                EndTimestamp: new Date($('#endTimestamp').val())
            }
        },
        DisplayFragmentTimestamp: $('#displayFragmentTimestamp').val(),
        DisplayFragmentNumber: $('#displayFragmentNumber').val(),
        MaxManifestFragmentResults: parseInt($('#maxResults').val()),
        Expires: parseInt($('#expires').val())
    }, function(err, response) {
        if (err) { return console.error(err); }
        console.log('DASH Streaming Session URL: ' + response.DASHStreamingSessionURL);
```

### Zeigen Sie das Streaming-Video mit MPEG-DASH Wiedergabe an
<a name="dash-example-display"></a>

Wenn Sie die URL der MPEG-DASH Streaming-Sitzung haben, stellen Sie sie dem Videoplayer zur Verfügung. Die Methode, mit der die URL für den Video-Player bereitgestellt wird, ist vom jeweils verwendeten Player abhängig.

Das folgende Codebeispiel veranschaulicht, wie die Streaming-Sitzungs-URL für einen [Google Shaka](https://github.com/google/shaka-player)-Player bereitgestellt wird: 

```
// Step 4: Give the URL to the video player.

//Shaka Player elements 
<video id="shaka" class="player" controls autoplay></video>
<script src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/2.4.1/shaka-player.compiled.js">
</script>
...

var playerName = $('#player').val();

if (playerName === 'Shaka Player') {
    var playerElement = $('#shaka');
    playerElement.show();

    var player = new shaka.Player(playerElement[0]);
    console.log('Created Shaka Player');

    player.load(response.DASHStreamingSessionURL).then(function() {
        console.log('Starting playback');
    });
    console.log('Set player source');
}
```

Das folgende Codebeispiel veranschaulicht, wie die Streaming-Sitzungs-URL für einen [dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki)-Player bereitgestellt wird: 

```
<!-- dash.js Player elements -->
<video id="dashjs" class="player" controls autoplay=""></video>
<script src="https://cdn.dashjs.org/latest/dash.all.min.js"></script>

...

var playerElement = $('#dashjs');
playerElement.show();

var player = dashjs.MediaPlayer().create();
console.log('Created DASH.js Player');

player.initialize(document.querySelector('#dashjs'), response.DASHStreamingSessionURL, true);
console.log('Starting playback');
console.log('Set player source');
}
```

### Beispiel abgeschlossen
<a name="dash-example-complete"></a>

Sie können [den fertigen Beispielcode unter herunterladen oder ansehen](https://github.com/aws-samples/amazon-kinesis-video-streams-hls-viewer/blob/master/index.html) GitHub.