GetMedia - Amazon Kinesis Video Streams

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

GetMedia

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

注記

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

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

GetMedia API は、長時間実行される接続APIでのストリーミングとして動作するように設計されています。フラグメントごとに新しいHTTP接続が確立されて閉じられる従来のRESTful方法で使用することは意図されていません。を使用する場合はGetMediaAPI、HTTPチャンク転送エンコーディングを使用して、永続接続を介してフラグメントを継続的に送信します。

を使用する場合、次の制限が適用されますGetMediaAPI。

  • クライアントは、ストリームごとに 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

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

HTTP ステータスコード: 400

NotAuthorizedException

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

HTTP ステータスコード: 401

ResourceNotFoundException

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

HTTP ステータスコード: 404

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

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