翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
GetMedia
この API を使用して、Kinesis ビデオストリームからメディアコンテンツを取得します。リクエストで、ストリーム名またはストリーム Amazon リソースネーム (ARN) と開始チャンクを特定します。Kinesis Video Streams は、フラグメント番号順にチャンクのストリームを返します。
注記
エンドポイントを取得するには、最初に GetDataEndpoint
API を呼び出す必要があります。次に、--endpoint-url parameter を使用して GetMedia
リクエストをこのエンドポイントに送信します。
ストリームにメディアデータ(フラグメント)を配置すると、Kinesis Video Streams は、受信する各フラグメントと関連するメタデータを「チャンク」と呼ばれるものに格納します。詳細については、を参照してくださいPutMedia。GetMedia
API は、リクエストで指定されたチャンクから始まるこれらのチャンクのストリームを返します。
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 です。
パターン:
[a-zA-Z0-9_.-]+
必須: いいえ
レスポンスの構文
HTTP/1.1 200
Content-Type: ContentType
Payload
レスポンス要素
アクションが成功すると、サービスは HTTP 200 レスポンスを返します。
レスポンスでは、以下の HTTP ヘッダーが返されます。
- ContentType
-
リクエストされたメディアのコンテンツタイプ
長さの制限:最小長は 1 です。最大長は 128 です。
パターン:
^[a-zA-Z0-9_\.\-]+$
レスポンスは、HTTP 本文として以下を返します。
- Payload
-
Kinesis Video Streams が返すペイロードは、指定されたストリームからのチャンクのシーケンスです。チャンクの詳細については、を参照してください。PutMediaKinesis Video Streams が
GetMedia
の呼び出しで返すチャンクには、次の追加の Matroska (MKV) タグも含まれます。-
AWS_KINESISVIDEO_CONTINUTION_TOKEN (UTF-8 文字列) -
GetMedia
の呼び出しが終了した場合、次のリクエストでこの継続トークンを使用して、最後のリクエストが終了した次のチャンクを取得できます。 -
AWS_KINESISVIDEO_MILIS_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 - Access denied for the stream's KMS key (ストリームの KMS キーに対するアクセスが拒否されました)
-
4501 - Stream's KMS key is disabled (ストリームの KMS キーが無効)
-
4502 - Validation error on the stream's KMS key (ストリームの KMS キーの検証エラー)
-
4503 - KMS key specified in the stream is unavailable (ストリームで指定された KMS キーが使用できません)
-
4504 - Invalid usage of the KMS key specified in the stream (ストリームで指定された KMS キーの使用が無効)
-
4505 - Invalid state of the KMS key specified in the stream (ストリームで指定された KMS キーが無効な状態)
-
4506 - Unable to find the KMS key specified in the stream (ストリームで指定された 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
その他の参照資料
言語固有の SDK の 1 つでこの API を使用する方法の詳細については、以下を参照してください。 AWS