MPEG- による動画再生DASH - Amazon Kinesis Video Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

MPEG- による動画再生DASH

MPEG- を使用して Kinesis ビデオストリームを表示するにはDASH、まず G セッション を使用してストリーミングetDASHStreamingURLセッションを作成します。このアクションは、 MPEG-DASH セッションにアクセスするための URL (セッショントークンを含む) を返します。その後、URLメディアプレーヤーまたはスタンドアロンアプリケーションで を使用してストリームを表示できます。

Amazon Kinesis ビデオストリームには、 MPEG- を通じてビデオを提供するための以下の要件がありますDASH。

  • ストリーミングビデオ再生トラックの要件については、「」を参照してくださいG etDASHStreamingセッションURLの要件

  • データの保持期間が 0 より大きい。

  • 各フラグメントのビデオトラックには、H.264 形式および H.265 形式の高度なビデオコーディング (AVC) HEVC のコーデックプライベートデータが含まれている必要があります。詳細については、MPEG「-4 仕様 ISO/IEC 14496-15」を参照してください。ストリームデータを特定の形式に適応させる方法については、NAL「適応フラグ」を参照してください。

  • 各フラグメントのオーディオトラック (存在する場合) には、 AAC形式 ( AAC仕様 ISO/IEC 13818-7) または MS Wave 形式 のコーデックプライベートデータが含まれている必要があります。

例: および で MPEG-DASH HTML を使用する JavaScript

次の例は、Kinesis ビデオストリームの MPEG-DASH ストリーミングセッションを取得し、ウェブページで再生する方法を示しています。この例では、動画の再生に以下のプレーヤーを使用します。

MPEG-DASH 再生用に Kinesis Video Streams クライアントを設定する

MPEG- でストリーミングビデオにアクセスするにはDASH、まず Kinesis Video Streams クライアント (サービスエンドポイントを取得するため) とアーカイブされたメディアクライアント ( MPEG-DASH ストリーミングセッションを取得するため) を作成して設定します。アプリケーションは、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);

MPEG-DASH 再生用の Kinesis Video Streams アーカイブ済みコンテンツエンドポイントを取得する

クライアントが開始されたら、Kinesis Video Streams のアーカイブされたコンテンツエンドポイントを取得して、URL次のように MPEG-DASH ストリーミングセッションを取得できるようにします。

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

MPEG-DASH ストリーミングセッションを取得する URL

アーカイブされたコンテンツエンドポイントがある場合は、URL次のように G etDASHStreamingセッションURLを呼び出しAPIて MPEG-DASH ストリーミングセッションを取得します。

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

ストリーミングビデオを MPEG-DASH 再生で表示する

MPEG-DASH ストリーミングセッション ができたらURL、ビデオプレーヤーに渡します。URL をビデオプレーヤーに提供する方法は、使用するプレーヤーに固有です。

次のコード例は、Google Shaka プレイヤーURLにストリーミングセッションを提供する方法を示しています。

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

次のコード例は、dash.js プレイヤーURLにストリーミングセッションを提供する方法を示しています。

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

完成した例

完成したサンプルコードは、 でダウンロードまたは表示できます GitHub。