GetMedia - Amazon Kinesis Video Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GetMedia

使用此 API 可從 Kinesis 視訊串流擷取媒體內容。在請求中,您可以識別串流名稱或串流 Amazon 資源名稱 (ARN),以及起始區塊。然後 Kinesis Video Streams 會依片段編號的順序傳回區塊串流。

注意

您必須先呼叫 GetDataEndpoint API 以取得端點。然後使用 --end 點 url 參數將GetMedia請求發送到此端點。

當您將媒體資料 (片段) 放在串流上時,Kinesis Video Streams 會將每個傳入片段和相關中繼資料儲存在稱為「區塊」的位置。如需詳細資訊,請參閱PutMediaGetMediaAPI 會從您在要求中指定的區塊開始傳回這些區塊的串流。

使用 GetMedia API 時適用以下限制:

  • 用戶端每個串流每秒GetMedia最多可呼叫五次。

  • 在工作階段期間,Kinesis Video Streams 以每秒 25 MB (或每秒 200 MB) 的速率傳送媒體資料。GetMedia

注意

GetMediaHTTP 回應狀態碼會立即傳回,但如果沒有可供播放的擷取片段,HTTP 回應裝載的讀取會在 3 秒後逾時。

注意

如果在叫用 Kinesis 影片串流媒體 API 之後擲回錯誤,除了 HTTP 狀態碼和回應本文之外,它還包含下列資訊:

  • x-amz-ErrorTypeHTTP 標頭 — 除了 HTTP 狀態碼提供的內容之外,還包含更具體的錯誤類型。

  • x-amz-RequestIdHTTP 標頭 — 如果您想向其報告問題 AWS,支持團隊可以在給出請求 ID 時更好地診斷問題。

HTTP 狀態碼和 ErrorType 標頭都可用於對錯誤是否可重試以及在什麼情況下進行程式設計決定,以及提供用戶端程式設計人員可能需要採取哪些動作才能成功再試一次的資訊。

如需詳細資訊,請參閱本主題底部的「錯誤」一節,以及常見錯誤

請求語法

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。長度上限為 1024。

模式: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 傳回是指定串流中的一系列區塊。如需區塊的詳細資訊,請參閱PutMedia。Kinesis Video Streams 在GetMedia呼叫中傳回的區塊也包含下列其他 Matroska (MKV) 標記:

  • AWS_KINESISVideo_CONTION_TOKEN(UTF-8 字符串)-如果您的GetMedia調用終止,您可以在下一個請求中使用此延續令牌來獲取最後一個請求終止的下一個塊。

  • AWS_KINESISVE_MILLIS_HEND_NOW (UTF-8 字串)-用戶端應用程式可以使用此標記值來判斷回應中傳回的區塊後面有多遠離串流上的最新區塊。

  • AW_ 動態片段-區塊中傳回的片段編號。

  • AW_ 激活服務器時間戳-片段的服務器時間戳。

  • AW_ 生產者 _ 時間戳記-片段的生產者時間戳。

如果發生錯誤,將出現以下標籤:

  • AW_ 錯誤代碼-導致停止的錯誤的字符串描述。 GetMedia

  • AW_ 激活視頻錯誤 ID:錯誤的整數代碼。

錯誤代碼如下:

  • 3002-寫入資料流時發生錯誤

  • 4000-找不到請求的片段

  • 4500-對串流的 KMS 金鑰存取遭拒

  • 4501-串流的 KMS 金鑰已停用

  • 4502-串流的 KMS 金鑰上的驗證錯誤

  • 4503-在串流中指定的 KMS 金鑰無法使用

  • 4504-串流中指定的 KMS 金鑰使用方式無效

  • 4505-串流中指定的 KMS 金鑰狀態無效

  • 4506-找不到串流中指定的 KMS 金鑰

  • 內部錯誤

錯誤

如需所有動作常見錯誤的資訊,請參閱常見錯誤

ClientLimitExceededException

Kinesis Video Streams 已限制要求,因為您已經超過允許的用戶端呼叫限制。稍後再嘗試撥打電話。

HTTP 狀態碼:400

ConnectionLimitExceededException

Kinesis Video Streams 已限制要求,因為您已經超過允許的用戶端連線限制。

HTTP 狀態碼:400

InvalidArgumentException

此輸入參數的值無效。

HTTP 狀態碼:400

InvalidEndpointException

調用者使用錯誤的端點將數據寫入流。在接收這樣的異常時,用戶必須調GetDataEndpointAPIName設置為PUT_MEDIA並使用端點從響應調用下一個PutMedia調用。

HTTP 狀態碼:400

NotAuthorizedException

調用者未被授權在給定的流上執行操作,或令牌已過期。

狀態碼:

ResourceNotFoundException

狀態碼:404,具有給定名稱的流不存在。

HTTP 狀態碼:404

另請參閱

如需在其中一個特定語言 AWS SDK 中使用此 API 的詳細資訊,請參閱下列內容: