Reproducción de vídeo con MPEG - DASH - Amazon Kinesis Video Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Reproducción de vídeo con MPEG - DASH

Para ver una transmisión de vídeo de Kinesis con MPEG -DASH, primero debe crear una sesión de streaming con G etDASHStreaming Session. URL Esta acción devuelve un URL (que contiene un token de sesión) para acceder a la DASH sesión MPEG -. A continuación, puede utilizarla URL en un reproductor multimedia o en una aplicación independiente para mostrar la transmisión.

Una transmisión de vídeo de Amazon Kinesis tiene los siguientes requisitos para proporcionar vídeo a través MPEG de: DASH

  • Para conocer los requisitos de las pistas de reproducción de vídeo en streaming, consulteG Requisitos etDASHStreaming de sesión URL.

  • La retención de datos debe ser mayor o igual que 0.

  • La pista de vídeo de cada fragmento debe contener datos privados del códec en la codificación de vídeo avanzada (AVC) para los formatos H.264 y HEVC H.265. Para obtener más información, consulte la especificación MPEG -4 /14496-15 ISO. IEC Para obtener información sobre cómo adaptar los datos de transmisión a un formato determinado, consulte NALAdaptation Flags.

  • La pista de audio (si está presente) de cada fragmento debe contener datos privados del códec en el AAC formato (AACespecificaciónISO/IEC13818-7) o en el formato MS Wave.

Ejemplo: usar MPEG - en y DASH HTML JavaScript

El siguiente ejemplo muestra cómo recuperar una MPEG sesión de DASH streaming para una transmisión de vídeo de Kinesis y reproducirla en una página web. El ejemplo muestra cómo reproducir vídeo en los siguientes reproductores:

Configurar el cliente de Kinesis Video Streams MPEG paraDASH: reproducción

Para acceder a la transmisión de vídeo con MPEG -DASH, primero cree y configure el cliente Kinesis Video Streams (para recuperar el punto final del servicio) y el cliente multimedia archivado (para recuperar MPEG la DASH sesión de streaming). La aplicación recupera los valores necesarios de los cuadros de entrada de la página. HTML

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

Recupere el terminal MPEG de contenido archivado de Kinesis Video Streams para su reproducción DASH

Una vez iniciados los clientes, recupere el punto final de contenido archivado de Kinesis Video Streams para poder recuperar MPEG la URL sesión de streaming de la siguiente maneraDASH:

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

Recupere la sesión de MPEG streaming DASH URL

Cuando tengas el punto final de contenido archivado, llama a la etDASHStreamingsesión G URL API para recuperar la MPEG sesión de DASH streaming de la URL siguiente manera:

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

Muestra el vídeo en streaming con MPEG - DASH reproducción

Cuando tenga la MPEG sesión de DASH streamingURL, entréguela al reproductor de vídeo. El método para proporcionarla URL al reproductor de vídeo es específico del reproductor que utilices.

El siguiente ejemplo de código muestra cómo proporcionar la sesión de streaming URL a un reproductor Google Shaka:

// 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'); }

El siguiente ejemplo de código muestra cómo proporcionar la sesión de streaming URL a un reproductor de dash.js:

<!-- 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'); }

Ejemplo completo

Puede descargar o ver el código de ejemplo completo en GitHub.