

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

# GetDASHStreamingSessionURL
<a name="API_reader_GetDASHStreamingSessionURL"></a>

ストリームの DASH (MPEG Dynamic Adaptive HTTP) の URL を取得します。次に、メディアプレーヤーで URL を開いて、ストリームのコンテンツを表示できます。

`StreamName` と `StreamARN` のパラメータは両方ともオプションですが、この API 操作を呼び出すときは `StreamName` または `StreamARN` を指定する必要があります。

Amazon Kinesis ビデオストリームには、MPEG-DASH を介してデータを提供するための次の要件があります。
+  [動画再生トラックの要件](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/video-playback-requirements.html)。
+ データの保持期間が 0 より大きい。
+ 各フラグメントの動画トラックに、AVC (Advanced Video Coding) のコーデックプライベートデータが H.264 形式で、および HEVC のコーデックプライベートデータが H.265 形式で含まれている必要があります。詳細については、「[MPEG-4 仕様 ISO/IEC 14496-15](https://www.iso.org/standard/55980.html)」を参照してください。ストリームデータを特定の形式に適応させる方法については、「[NAL 適応フラグ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html)」を参照してください。
+ 各フラグメントのオーディオトラック (存在する場合) に、コーデックプライベートデータが AAC 形式 ([AAC 仕様 ISO/IEC 13818-7](https://www.iso.org/standard/43345.html)) または [MS Wave 形式](https://www.mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html) で含まれている必要があります。

以下の手順は、Kinesis Video Streams で MPEG-DASH を使用する方法を示しています。

1. `GetDataEndpoint` API を呼び出してエンドポイントを取得します。次に、[--endpoint-url parameter](https://docs.aws.amazon.com/cli/latest/reference/) を使用して `GetDASHStreamingSessionURL` リクエストをこのエンドポイントに送信します。

1. `GetDASHStreamingSessionURL` を使用して、MPEG-DASH の URL を取得します。Kinesis Video Streams は、MPEG-DASH プロトコルを使用してストリーム内のコンテンツにアクセスするために使用される MPEG-DASH ストリーミングセッションを作成します。 `GetDASHStreamingSessionURL` は、セッションの MPEG-DASH *マニフェスト*（MPEG-DASH でのストリーミングに必要なルートリソース）の認証済みURL（暗号化されたセッショントークンを含む）を返します。
**注記**  
許可されていないエンティティがアクセスできる場所に、このトークンを共有したり保存したりしないでください。トークンがストリームのコンテンツへのアクセスを提供します。 AWS 認証情報で使用するのと同じ方法でトークンを保護します。

   マニフェストを通じて利用できるメディアは、要求されたストリーム、時間範囲、および形式のみで構成されます。他のメディアデータ（リクエストされた画面外のフレーム、代替ビットレートなど）は利用できません。

1. MPEG-DASH プロトコルをサポートするメディアプレーヤーに MPEG-DASH マニフェストの URL（暗号化されたセッショントークンを含む）を指定します。Kinesis Video Streams は、マニフェスト URL を通じて初期化フラグメントとメディアフラグメントを使用できるようにします。初期化フラグメントには、ストリームのコーデックプライベートデータ、およびビデオまたはオーディオデコーダーとレンダラーのセットアップに必要なその他のデータが含まれています。　　　　　　　 メディアフラグメントには、エンコードされたビデオフレームまたはエンコードされたオーディオサンプルが含まれます。

1. メディアプレーヤーは、認証された URL を受け取り、ストリームメタデータとメディアデータを通常通りリクエストします。メディアプレーヤーがデータを要求すると、次のアクションが呼び出されます。
   +  **getDashManifest:** 再生するメディアのメタデータを含む MPEG DASH マニフェストを取得。
   +  **GetMP4InitFragment:** MP4 初期化フラグメントを取得。通常、メディアプレーヤーがメディアフラグメントをロードする前に、初期化フラグメントをロードします。このフラグメントには、「`fytp`」 および 「`moov`」MP4 atom 、およびメディアプレーヤーデコーダを初期化するために必要な子 atom が含まれています。

     初期化フラグメントは、Kinesis ビデオストリームのフラグメントには対応していません。これには、メディアプレーヤーがメディアフレームをデコードするために必要な、ストリームと各トラックのコーデックプライベートデータだけが含まれます。
   +  **GetMP4MediaFragment:** MP4 メディアフラグメントを取得。これらのフラグメントは、「`moof`」および「`mdat`」MP4 atom とその子 atom で構成され、エンコードされたフラグメントのメディアフレームとそのタイムスタンプを含みます。
**重要**  
各フラグメントに含まれるコーデックプライベートデータ (CPD) には、フラグメントを適切にデコードするために必要なフレームレート、解像度、エンコーディングプロファイルなどのコーデック固有の初期化情報が含まれています。CPD の変更は、ストリーミングセッション中はサポートされていません。CPD は、クエリされたメディアを通じて一貫性を維持する必要があります。
**重要**  
トラックの変更はサポートされていません。トラックは、クエリされたメディア全体で一貫性を保つ必要があります。ストリーム内のフラグメントがビデオのみからオーディオとビデオの両方に変わるか、AAC オーディオトラックが A-Law オーディオトラックに変更されると、ストリーミングは失敗します。

     このアクションで取得されたデータは請求対象です。詳細については、「[料金](https://aws.amazon.com/kinesis/video-streams/pricing/)」を参照してください。

**注記**  
MPEG-DASH セッションに適用される制限については、[「Kinesis Video Streams クォータ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html)」を参照してください。

`GetMP4MediaFragment.OutgoingBytes` Amazon CloudWatch メトリックスをモニタリングすることで、メディアプレーヤーが消費するデータの量をモニタリングできます。CloudWatch を使用して Kinesis Video Streams をモニタリングする方法については、「[Monitoring Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html)」を参照してください。料金情報については、[Amazon Kinesis Video Streams の料金](https://aws.amazon.com/kinesis/video-streams/pricing/)と[AWS 料金](https://aws.amazon.com/pricing/)」を参照してください。HLS セッションと送信 AWS データの両方の料金が適用されます。

HLSの詳細については、[Apple 開発者サイト](https://developer.apple.com)の [HTTP ライブストリーミング](https://developer.apple.com/streaming/)を参照してください。

**重要**  
Kinesis Video Streams アーカイブメディア API を呼び出した後にエラーがスローされた場合、HTTP ステータスコードとレスポンス本文に加えて、次の情報が含まれます。  
 `x-amz-ErrorType` HTTP ヘッダー — HTTP ステータスコードで提供されるものに加えて、より具体的なエラータイプが含まれます。
 `x-amz-RequestId` HTTP ヘッダー – サポートチームに問題を報告したい場合 AWS 、リクエスト ID を指定すれば問題をより適切に診断できます。
HTTP ステータスコードと ErrorType ヘッダーの両方を使用すれば、エラーが再試行可能かどうか、またはどのような条件下でエラーが再試行可能かについてプログラムで判断したり、クライアントプログラマーが再度試行するために必要なアクションに関する情報を提供したりできます。  
詳細については、このトピックの下部にある**[Errors]** (エラー) セクションおよび「[Common Errors](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html)」を参照してください。

## リクエストの構文
<a name="API_reader_GetDASHStreamingSessionURL_RequestSyntax"></a>

```
POST /getDASHStreamingSessionURL HTTP/1.1
Content-type: application/json

{
   "DASHFragmentSelector": { 
      "FragmentSelectorType": "{{string}}",
      "TimestampRange": { 
         "EndTimestamp": {{number}},
         "StartTimestamp": {{number}}
      }
   },
   "DisplayFragmentNumber": "{{string}}",
   "DisplayFragmentTimestamp": "{{string}}",
   "Expires": {{number}},
   "MaxManifestFragmentResults": {{number}},
   "PlaybackMode": "{{string}}",
   "StreamARN": "{{string}}",
   "StreamName": "{{string}}"
}
```

## URI リクエストパラメータ
<a name="API_reader_GetDASHStreamingSessionURL_RequestParameters"></a>

リクエストでは URI パラメータを使用しません。

## リクエストボディ
<a name="API_reader_GetDASHStreamingSessionURL_RequestBody"></a>

リクエストは以下の JSON 形式のデータを受け入れます。

 ** [DASHFragmentSelector](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-DASHFragmentSelector"></a>
要求されたフラグメントの時間範囲とタイムスタンプのソース。  
このパラメーターは、`PlaybackMode` が `ON_DEMAND` または `LIVE_REPLAY` の場合に必要です。このパラメーターは、PlaybackMode が `` `LIVE` の場合にはオプションになります。`PlaybackMode` が `LIVE` の場合、`FragmentSelectorType` は設定できますが、`TimestampRange` は設定しないでください。`PlaybackMode` が `ON_DEMAND` または `LIVE_REPLAY` の場合、`FragmentSelectorType` と `TimestampRange` の両方を設定する必要があります。  
型: [DASHFragmentSelector](API_reader_DASHFragmentSelector.md) オブジェクト  
必須: いいえ

 ** [DisplayFragmentNumber](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-DisplayFragmentNumber"></a>
フラグメントは、セッション内のシーケンス番号に基づいてマニフェストファイルで識別されます。DisplayFragmentNumber が `ALWAYS` に設定されている場合、Kinesis Video Streams のフラグメント番号は、属性名「kvs:fn」でマニフェストファイルの各 S 要素に追加されます。これらのフラグメント番号は、ロギングや他の API (例: `GetMedia`、`GetMediaForFragmentList`) で使用できます。これらのカスタム属性を活用するには、カスタム MPEG-DASH メディアプレーヤーが必要です。  
デフォルト値は `NEVER` です。  
型: 文字列  
有効な値：`ALWAYS | NEVER`  
必須：いいえ

 ** [DisplayFragmentTimestamp](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-DisplayFragmentTimestamp"></a>
MPEG-DASH 仕様に従って、マニフェストファイル内のフラグメントのウォールクロック時刻は、マニフェスト自体の属性を使用して派生できます。ただし、通常、MPEG-DASH 互換メディアプレーヤーは、メディアタイムラインのギャップを適切に処理しません。Kinesis Video Streams は、マニフェストファイルのメディアタイムラインを調整して、不連続があるメディアを再生可能にします。　 したがって、マニフェストファイルから得られるウォールクロック時刻が不正確になる可能性があります。DisplayFragmentTimestamp が `ALWAYS` に設定されている場合、正確なフラグメントタイムスタンプが属性名「kvs:ts」でマニフェストファイルの各 S 要素に追加されます。このカスタム属性を活用するには、カスタム MPEG-DASH メディアプレーヤーが必要です。  
デフォルト値は `NEVER` です。[DASHFragmentSelector](API_reader_DASHFragmentSelector.md) が `SERVER_TIMESTAMP` の場合、タイムスタンプはサーバーの開始タイムスタンプになります。同様に、[DASHFragmentSelector](API_reader_DASHFragmentSelector.md) が `PRODUCER_TIMESTAMP` の場合、タイムスタンプはプロデューサーの開始タイムスタンプになります。  
型: 文字列  
有効な値：`ALWAYS | NEVER`  
必須：いいえ

 ** [Expires](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-Expires"></a>
要求されたセッションの有効期限が切れるまでの時間（秒）。この値は 300 (5 分) から 43200 (12 時間) の間です。  
セッションの有効期限が切れると、そのセッションに対して `GetDashManifest`、`GetMP4InitFragment`、または `GetMP4MediaFragment` への新しい呼び出しを行うことはできません。  
デフォルトは300(5分)です。  
型: 整数  
値の範囲: 最小値 は 300 です。最大値は 43200 です。  
必須: いいえ

 ** [MaxManifestFragmentResults](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-MaxManifestFragmentResults"></a>
MPEG-DASH マニフェストで返されるフラグメントの最大数。  
`PlaybackMode` が `LIVE` の場合、最新のフラグメントがこの値まで返されます。`PlaybackMode` が `ON_DEMAND` の場合、この最大数まで、最も古いフラグメントが返されます。  
ライブ MPEG-DASH マニフェストで利用可能なフラグメントの数が多い場合、ビデオプレーヤーは再生を開始する前にコンテンツをバッファリングすることがよくあります。バッファサイズを大きくすると再生レイテンシーが増加しますが、再生中にバッファリングが発生する可能性は低くなります。ライブ MPEG-DASH マニフェストには、最低 3 個のフラグメントと最大 10 個のフラグメントを持つことをお勧めします。  
デフォルトでは、`PlaybackMode` が `LIVE` または `LIVE_REPLAY` の場合は 5 個のフラグメント、`PlaybackMode` が `ON_DEMAND` の場合は 1,000 個のフラグメントです。　   
1,000 個のフラグメントの最大値は、1 秒のフラグメントを含むストリームで 16 分を超える動画、および 10 秒のフラグメントを含むストリームで 2 時間 30 分を超える動画に対応します。　  
型: Long  
有効範囲: 最小値は 1 です。最大値は 5,000 です。  
必須: いいえ

 ** [PlaybackMode](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-PlaybackMode"></a>
ライブ、ライブリプレイ、またはアーカイブ済のオンデマンドデータを取得するかどうか。  
3 種類のセッションの機能は次のとおりです。  
+  ** `LIVE` **：このタイプのセッションの場合、MPEG-DASH マニフェストは、最新のフラグメントが利用可能になると継続的に更新されます。メディアプレーヤーは 1 秒間隔で新しいマニフェストを取得することをお勧めします。このタイプのセッションがメディアプレーヤーで再生される場合、ユーザーインターフェイスには、通常「live (ライブ)」通知が表示されます。再生ウィンドウ内の位置を選択するためのスクラバーコントロールはありません。
**注記**  
`LIVE`モードの場合、フラグメント間にギャップがある場合でも（つまり、フラグメントが欠落している場合）、使用可能な最新のフラグメントが MPEG-DASH マニフェストに含まれます。このようなギャップにより、メディアプレーヤーが再生中に停止したり、途切れたりすることがあります。このモードでは、再生リストの最新のフラグメントよりも古いフラグメントは MPEG-DASH マニフェストに追加されません。後続のフラグメントがマニフェストに追加された後に欠落フラグメントが使用可能になっても、古いフラグメントは追加されず、ギャップは埋められません。
+  ** `LIVE_REPLAY` **: このタイプのセッションの場合、MPEG-DASH マニフェストは、`LIVE` モードの更新と同様に更新されますが、特定の開始時刻からのフラグメントを含めることによって開始される点が異なります。フラグメントは、取り込まれるときに追加されるのではなく、次のフラグメントの期間が経過すると追加されます。例えば、セッション内のフラグメントの長さが 2 秒の場合、2 秒ごとに新しいフラグメントがマニフェストに追加されます。このモードは、イベントの検出で再生を開始し、セッションの作成時点でまだ取り込まれていないライブストリーミングメディアを継続できるようにする場合に便利です。また、`ON_DEMAND` モードの 1,000 フラグメントの制限に制約されることなく、以前にアーカイブされたメディアをストリーミングする場合にも役立ちます。
+  ** `ON_DEMAND` **：このタイプのセッションの場合、MPEG-DASH マニフェストには、`MaxManifestFragmentResults` で指定された数までのセッションのすべてのフラグメントが含まれます。マニフェストは、セッションごとに 1 回だけ取得する必要があります。このタイプのセッションがメディアプレーヤーで再生される場合、ユーザーインターフェイスには、通常再生ウィンドウ内の位置を選択するためのスクラバーコントロールが表示されます。
すべての再生モードで、`FragmentSelectorType` が `PRODUCER_TIMESTAMP` で、開始タイムスタンプが同じフラグメントが複数ある場合、フラグメント番号が大きいフラグメント（つまり、新しいフラグメント）が MPEG-DASH マニフェストに含まれます。他のフラグメントは含まれません。タイムスタンプは異なるが、期間が重複しているフラグメントは、MPEG-DASH マニフェストに引き続き含まれます。これにより、メディアプレーヤーで予期しない動作が発生する場合があります。  
デフォルトは `LIVE` です。  
型: 文字列  
有効な値：`LIVE | LIVE_REPLAY | ON_DEMAND`  
必須：いいえ

 ** [StreamARN](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-StreamARN"></a>
MPEG-DASH マニフェスト URL を取得するストリームの Amazon リソースネーム (ARN)。  
`StreamName` または `StreamARN` のパラメータを指定する必要があります。  
タイプ: 文字列  
長さの制限: 最小長は 1 です。最大長は 1,024 です。  
パターン: `arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`   
必須: いいえ

 ** [StreamName](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-StreamName"></a>
MPEG-DASH マニフェスト URL を取得するストリームの名前。  
`StreamName` または `StreamARN` のパラメータを指定する必要があります。  
タイプ: 文字列  
長さの制約: 最小長は 1 です。最大長は 256 です。  
パターン: `[a-zA-Z0-9_.-]+`   
必須: いいえ

## レスポンスの構文
<a name="API_reader_GetDASHStreamingSessionURL_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "DASHStreamingSessionURL": "string"
}
```

## レスポンス要素
<a name="API_reader_GetDASHStreamingSessionURL_ResponseElements"></a>

アクションが成功すると、サービスは HTTP 200 レスポンスを返します。

サービスから以下のデータが JSON 形式で返されます。

 ** [DASHStreamingSessionURL](#API_reader_GetDASHStreamingSessionURL_ResponseSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-response-DASHStreamingSessionURL"></a>
メディアプレーヤーが MPEG-DASH マニフェストを取得するために使用できる URL（セッショントークンを含む）。  
タイプ: 文字列

## エラー
<a name="API_reader_GetDASHStreamingSessionURL_Errors"></a>

すべてのアクションに共通のエラーについては、「[一般的なエラータイプ](CommonErrors.md)」を参照してください。

 ** ClientLimitExceededException **   
制限を超えたため、Kinesis Video Streams がリクエストをスロットリングしました。後で呼び出しを試みてください。制限の詳細については、[「Kinesis Video Streams のクォータ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html)」を参照してください。  
HTTP ステータスコード: 400

 ** InvalidArgumentException **   
指定されたパラメータが制限を超えているか、サポートされていない、または使用できません。  
HTTP ステータスコード: 400

 ** InvalidCodecPrivateDataException **   
ビデオストリームの少なくとも 1 つのトラックにあるコーデックのプライベートデータは、この操作には無効です。  
HTTP ステータスコード: 400

 ** MissingCodecPrivateDataException **   
ビデオストリームの少なくとも 1 つのトラックにコーデックのプライベートデータがありませんでした。  
HTTP ステータスコード: 400

 ** NoDataRetentionException **   
 `GetImages` は、データを保持しないストリームに対してリクエストされました (つまり、 の は 0 `DataRetentionInHours`です）。  
HTTP ステータスコード: 400

 ** NotAuthorizedException **   
ステータスコード: 403 呼び出し元が指定されたストリームで操作を実行する権限がないか、トークンの有効期限が切れています。  
HTTP ステータスコード: 401

 ** ResourceNotFoundException **   
 `GetImages` Kinesis Video Streams が指定したストリームを見つけられない場合、 はこのエラーをスローします。  
 `GetHLSStreamingSessionURL` リクエストされた時間範囲内にフラグメントがないストリームに対して `ON_DEMAND`または `PlaybackMode`のセッション`LIVE_REPLAY`がリクエストされた場合、または過去 30 秒以内にフラグメントがないストリームに対して `PlaybackMode`のセッション`LIVE`がリクエストされた場合、 と はこのエラーを`GetDASHStreamingSessionURL`スローします。  
HTTP ステータスコード: 404

 ** UnsupportedStreamMediaTypeException **   
メディアのタイプ (h.264 または h.265 ビデオ、AAC または G.711 オーディオなど) は、再生セッションの最初のフラグメントのトラックのコーデック IDs から判断できませんでした。トラック 1 のコーデック ID は `V_MPEG/ISO/AVC` である必要があります。また、オプションでトラック 2 のコーデック ID は `A_AAC` である必要があります。  
HTTP ステータスコード: 400

## 以下の資料も参照してください。
<a name="API_reader_GetDASHStreamingSessionURL_SeeAlso"></a>

言語固有の AWS SDKs のいずれかでこの API を使用する方法の詳細については、以下を参照してください。
+  [AWS コマンドラインインターフェイス V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for C\+\+](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 