翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
GetMedia
これを使用してAPI、Kinesis ビデオストリームからメディアコンテンツを取得します。リクエストでは、ストリーム名またはストリーム Amazon リソースネーム (ARN) と開始チャンクを識別します。Kinesis Video Streams は、フラグメント番号順にチャンクのストリームを返します。
注記
エンドポイントを取得するには、まず GetDataEndpoint
APIを呼び出す必要があります。次に、--endpoint-url parameter を使用して GetMedia
リクエストをこのエンドポイントに送信します。
ストリームにメディアデータ(フラグメント)を配置すると、Kinesis Video Streams は、受信する各フラグメントと関連するメタデータを「チャンク」と呼ばれるものに格納します。詳細については、「PutMedia」を参照してください。は、リクエストで指定したチャンクから始まるこれらのチャンクのストリームGetMedia
APIを返します。
GetMedia
API は、長時間実行される接続APIでのストリーミングとして動作するように設計されています。フラグメントごとに新しいHTTP接続が確立されて閉じられる従来のRESTful方法で使用することは意図されていません。を使用する場合はGetMedia
API、HTTPチャンク転送エンコーディングを使用して、永続接続を介してフラグメントを継続的に送信します。
を使用する場合、次の制限が適用されますGetMedia
API。
-
クライアントは、ストリームごとに 1 秒間に最大 5 回
GetMedia
を呼び出すことができます。 -
Kinesis Video Streams は、
GetMedia
セッション中に最大 25 メガバイト/秒(200 メガビット/秒)の速度でメディアデータを送信します。
注記
GetMedia
HTTP レスポンスステータスコードはすぐに返されますが、取り込まれたフラグメントが再生できない場合、HTTPレスポンスペイロードの読み取りは 3 秒後にタイムアウトします。
注記
Kinesis Video Streams メディア を呼び出した後にエラーがスローされた場合API、HTTPステータスコードとレスポンス本文に加えて、次の情報が含まれます。
-
x-amz-ErrorType
HTTP ヘッダー — HTTPステータスコードが提供するものに加えて、より具体的なエラータイプが含まれています。 -
x-amz-RequestId
HTTP ヘッダー – 問題を報告したい場合は AWS、リクエスト ID を指定すれば、サポートチームが問題をより適切に診断できます。
HTTP ステータスコードと ErrorType ヘッダーの両方を使用して、エラーが再試行可能かどうか、どのような条件下で再試行できるかをプログラムで決定したり、クライアントプログラマーが再試行を正常に行うためにどのようなアクションを実行する必要があるかについて情報を提供したりできます。
詳細については、このトピックの下部にある[Errors] (エラー) セクションおよび「Common Errors」を参照してください。
リクエストの構文
POST /getMedia HTTP/1.1
Content-type: application/json
{
"StartSelector": {
"AfterFragmentNumber": "string
",
"ContinuationToken": "string
",
"StartSelectorType": "string
",
"StartTimestamp": number
},
"StreamARN": "string
",
"StreamName": "string
"
}
URI リクエストパラメータ
リクエストではURIパラメータを使用しません。
リクエスト本文
リクエストは、 JSON形式の次のデータを受け入れます。
- StartSelector
-
指定されたストリームから取得する開始チャンクを特定します。
型: StartSelector オブジェクト
必須: はい
- StreamARN
-
メディアコンテンツを取得するストリームARNの 。
streamARN
を指定しない場合は、streamName
を指定する必要があります。タイプ: 文字列
長さの制限: 最小長は 1 です。最大長は 1,024 です。
パターン:
arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+
必須: いいえ
- StreamName
-
メディアコンテンツの取得元からの Kinesis ビデオストリーム名。
streamName
を指定しない場合は、streamARN
を指定する必要があります。タイプ: 文字列
長さの制約: 最小長は 1 です。最大長は 256 です。
Pattern:
[a-zA-Z0-9_.-]+
必須: いいえ
レスポンスの構文
HTTP/1.1 200
Content-Type: ContentType
Payload
レスポンス要素
アクションが成功すると、サービスは 200 HTTP レスポンスを返します。
レスポンスは次のHTTPヘッダーを返します。
- ContentType
-
リクエストされたメディアのコンテンツタイプ
長さの制約: 最小長は 1 です。最大長は 128 です。
Pattern:
^[a-zA-Z0-9_\.\-]+$
レスポンスは本文として以下を返しますHTTP。
- Payload
-
Kinesis Video Streams が返すペイロードは、指定されたストリームからのチャンクのシーケンスです。チャンクの詳細については、「」を参照してくださいPutMedia。Kinesis Video Streams が
GetMedia
呼び出しで返すチャンクには、次の追加の Matroska (MKV) タグも含まれます。-
AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 文字列) -
GetMedia
呼び出しが終了した場合は、次のリクエストでこの継続トークンを使用して、最後のリクエストが終了した次のチャンクを取得できます。 -
AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 文字列) - クライアントアプリケーションは、このタグ値を使用して、レスポンスで返されたチャンクがストリームの最新のチャンクからどれだけ遅れているかを判断できます。
-
AWS_KINESISVIDEO_FRAGMENT_NUMBER - チャンクで返されるフラグメント番号。
-
AWS_KINESISVIDEO_SERVER_TIMESTAMP - フラグメントのサーバータイムスタンプ。
-
AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - フラグメントのプロデューサータイムスタンプ。
エラーが発生すると、次のタグが表示されます。
-
AWS_KINESISVIDEO_ERROR_CODE - 停止の原因 GetMediaとなったエラーの文字列の説明。
-
AWS_KINESISVIDEO_ERROR_ID: エラーの整数コード。
エラーコードは次のとおりです。
-
3002 - Error writing to the stream (ストリームへの書き込みエラー)
-
4000 - Requested fragment is not found (要求されたフラグメントが見つかりません)
-
4500 - ストリームのKMSキーへのアクセスが拒否されました
-
4501 - ストリームのKMSキーが無効になっています
-
4502 - ストリームのKMSキーの検証エラー
-
4503 - ストリームで指定されたKMSキーは使用できません
-
4504 - ストリームで指定されたKMSキーの無効な使用
-
4505 - ストリームで指定されたKMSキーの状態が無効
-
4506 - ストリームで指定されたKMSキーが見つかりません
-
5000 - Internal error (内部エラー)
-
エラー
すべてのアクションに共通のエラーについては、「共通エラー」を参照してください。
- ClientLimitExceededException
-
Kinesis Video Streams は、許可されたクライアントコールの制限を超えているため、リクエストをスロットリングしました。後で呼び出しを試みてください。
HTTP ステータスコード: 400
- ConnectionLimitExceededException
-
許可されたクライアント接続の制限を超えたため、Kinesis Video Streams がリクエストをスロットリングしました。
HTTP ステータスコード: 400
- InvalidArgumentException
-
この入力パラメータの値は無効です。
HTTP ステータスコード: 400
- InvalidEndpointException
-
呼び出し元が間違ったエンドポイントを使用してデータをストリームに書き込みました。このような例外を受信すると、ユーザーは
APIName
をPUT_MEDIA
に設定してGetDataEndpoint
を呼び出し、応答からのエンドポイントを使用して次のPutMedia
コールを呼び出す必要があります。HTTP ステータスコード: 400
- NotAuthorizedException
-
呼び出し元は、指定されたストリームで操作を実行する権限がないか、トークンの有効期限が切れています。
HTTP ステータスコード: 401
- ResourceNotFoundException
-
ステータスコード: 404 指定された名前のストリームは存在しません。
HTTP ステータスコード: 404
以下の資料も参照してください。
言語固有の 1 つAPIでこれを使用する方法の詳細については AWS SDKs、以下を参照してください。