Videowiedergabe mit MPEG-DASH - Amazon Kinesis Video Streams

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

Um einen Kinesis-Videostream mit MPEG-DASH anzusehen, erstellen Sie zunächst eine Streaming-Sitzung mit der GetDash-URL. StreamingSession Diese Aktion gibt eine URL (mit einem Sitzungs-Token) 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:

Beispiel: Verwendung von MPEG-DASH in HTML und JavaScript

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:

Den Kinesis Video Streams Client für die MPEG-DASH-Wiedergabe einrichten

Um mit MPEG-DASH auf Streaming-Video zuzugreifen, erstellen und konfigurieren Sie zunächst den Kinesis Video Streams Streams-Client (um den Service-Endpunkt abzurufen) und den archivierten Media-Client (um die MPEG-DASH-Streaming-Sitzung abzurufen). 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 Kinesis Video Streams Streams-Endpunkt für archivierte Inhalte für die MPEG-DASH-Wiedergabe ab

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);

Abrufen der MPEG-DASH-Streaming-Sitzungs-URL

Wenn Sie den Endpunkt für archivierte Inhalte haben, rufen Sie die StreamingSessionGetDash-URL-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);

Anzeigen des Streaming-Videos mit MPEG-DASH-Wiedergabe

Wenn Sie die MPEG-DASH-Streaming-Sitzungs-URL erhalten haben, stellen Sie sie für den Video-Player bereit. 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-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-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'); }

Ausgeführtes Beispiel

Sie können den fertigen Beispielcode unter herunterladen oder ansehen. GitHub