GetMedia - Amazon Kinesis Video Streams

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

GetMedia

この API を使用して、Kinesis ビデオストリームからメディアコンテンツを取得します。リクエストで、ストリーム名またはストリーム Amazon リソースネーム (ARN) と開始チャンクを特定します。Kinesis Video Streams は、フラグメント番号順にチャンクのストリームを返します。

注記

エンドポイントを取得するには、最初に GetDataEndpoint API を呼び出す必要があります。次に、--endpoint-url parameter を使用して GetMedia リクエストをこのエンドポイントに送信します。

ストリームにメディアデータ(フラグメント)を配置すると、Kinesis Video Streams は、受信する各フラグメントと関連するメタデータを「チャンク」と呼ばれるものに格納します。詳細については、を参照してくださいPutMediaGetMedia API は、リクエストで指定されたチャンクから始まるこれらのチャンクのストリームを返します。

GetMedia API を使用するときは以下の制限が適用されます。

  • クライアントは、ストリームごとに 1 秒間に最大 5 回 GetMedia を呼び出すことができます。

  • Kinesis Video Streams は、GetMedia セッション中に最大 25 メガバイト/秒(200 メガビット/秒)の速度でメディアデータを送信します。

注記

GetMediaHTTP 応答ステータスコードはすぐに返されますが、取り込まれた再生可能なフラグメントがない場合、HTTP 応答ペイロードの読み取りは 3 秒後にタイムアウトします。

注記

Kinesis Video Streams メディア API を呼び出した後にエラーがスローされた場合、HTTP ステータスコードとレスポンス本文に加えて、次の情報が含まれます。

  • x-amz-ErrorType HTTP ヘッダー — HTTP ステータスコードで提供されるものに加えて、より具体的なエラータイプが含まれます。

  • x-amz-RequestIdHTTP ヘッダー — に問題を報告したい場合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

呼び出し元が間違ったエンドポイントを使用してデータをストリームに書き込みました。このような例外を受信すると、ユーザーは APINamePUT_MEDIA に設定して GetDataEndpoint を呼び出し、応答からのエンドポイントを使用して次の PutMedia コールを呼び出す必要があります。

HTTP ステータスコード:400

NotAuthorizedException

呼び出し元は、指定されたストリームで操作を実行する権限がないか、トークンの有効期限が切れています。

HTTP ステータスコード: 401

ResourceNotFoundException

ステータスコード: 404 指定された名前のストリームは存在しません。

HTTP ステータスコード: 404

以下の資料も参照してください。

言語固有の AWS SDK のいずれかでこの API を使用する方法の詳細については、以下を参照してください。