

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# GetMedia
<a name="API_dataplane_GetMedia"></a>

 이 API를 사용하여 Kinesis 비디오 스트림에서 미디어 콘텐츠를 검색합니다. 요청에서 스트림 이름 또는 스트림 Amazon 리소스 이름(ARN)과 시작 청크를 식별합니다. 그런 다음 Kinesis Video Streams는 조각 번호별로 청크 스트림을 순서대로 반환합니다.

**참고**  
먼저 `GetDataEndpoint` API를 호출하여 엔드포인트를 가져와야 합니다. 그런 다음 [--endpoint-url 파라미터를](https://docs.aws.amazon.com/cli/latest/reference/) 사용하여이 엔드포인트로 `GetMedia` 요청을 보냅니다.

스트림에 미디어 데이터(분할)를 배치하면 Kinesis Video Streams는 수신되는 각 조각과 관련 메타데이터를 "청크"라고 하는에 저장합니다. 자세한 내용은 [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html) 단원을 참조하십시오. `GetMedia` API는 요청에 지정한 청크부터 시작하여 이러한 청크의 스트림을 반환합니다.

`GetMedia` API는 장기 실행 연결을 통해 스트리밍 API로 작동하도록 설계되었습니다. 각 조각에 대해 새 HTTP 연결이 설정되고 닫히는 기존 RESTful 방식으로는 사용하기 위한 것이 아닙니다. `GetMedia` API를 호출하면 Kinesis Video Streams는 HTTP 청크 전송 인코딩을 사용하여 지속적으로 장기 실행 연결을 통해 조각을 지속적으로 전송합니다.

`GetMedia` API를 사용할 때는 다음 제한이 적용됩니다.
+ 클라이언트는 스트림당 초당 `GetMedia` 최대 5회를 호출할 수 있습니다.
+ Kinesis Video Streams는 `GetMedia` 세션 중에 초당 최대 25메가바이트(또는 초당 200메가비트)의 속도로 미디어 데이터를 전송합니다.
**참고**  
를 스트리밍 장기 실행 연결`GetMedia`로 사용하여 단일 영구 연결에서 여러 조각을 검색합니다. 각 조각에 대해 새 HTTP 연결을 설정하고 닫는 기존 RESTful 방식으로 `GetMedia` API를 사용하지 마십시오. 동시 `GetMedia` 연결을 3개 이상 시도하면 Kinesis Video Streams는 `ConnectionLimitExceededException` 오류와 함께 최신 연결을 제한합니다.

**참고**  
`GetMedia` HTTP 응답 상태 코드는 즉시 반환되지만 재생에 사용할 수 있는 수집된 조각이 없는 경우 HTTP 응답 페이로드의 읽기는 3초 후에 시간 초과됩니다.

**참고**  
Kinesis Video Streams 미디어 API를 호출한 후 오류가 발생하면 HTTP 상태 코드 및 응답 본문 외에도 다음과 같은 정보가 포함됩니다.  
 `x-amz-ErrorType` HTTP 헤더 - HTTP 상태 코드가 제공하는 것 외에도 보다 구체적인 오류 유형을 포함합니다.
 `x-amz-RequestId` HTTP 헤더 - 문제를 보고하려는 경우 요청 ID가 주어지면 AWS지원 팀이 문제를 더 잘 진단할 수 있습니다.
HTTP 상태 코드와 ErrorType 헤더를 모두 활용하여 오류를 재시도할 수 있는지 여부와 조건에 대해 프로그래밍 방식으로 결정할 수 있으며, 클라이언트 프로그래머가 다시 시도하기 위해 수행해야 할 작업에 대한 정보를 제공할 수 있습니다.  
자세한 내용은이 주제 하단의 **오류** 섹션과 [일반적인 오류를 참조하세요](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html).

## Request Syntax
<a name="API_dataplane_GetMedia_RequestSyntax"></a>

```
POST /getMedia HTTP/1.1
Content-type: application/json

{
   "StartSelector": { 
      "AfterFragmentNumber": "{{string}}",
      "ContinuationToken": "{{string}}",
      "StartSelectorType": "{{string}}",
      "StartTimestamp": {{number}}
   },
   "StreamARN": "{{string}}",
   "StreamName": "{{string}}"
}
```

## URI 요청 파라미터
<a name="API_dataplane_GetMedia_RequestParameters"></a>

요청은 URI 파라미터를 사용하지 않습니다.

## 요청 본문
<a name="API_dataplane_GetMedia_RequestBody"></a>

요청은 JSON 형식으로 다음 데이터를 받습니다.

 ** [StartSelector](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StartSelector"></a>
지정된 스트림에서 가져올 시작 청크를 식별합니다.  
타입: [StartSelector](API_dataplane_StartSelector.md)객체  
필수 항목 여부: 예

 ** [StreamARN](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamARN"></a>
미디어 콘텐츠를 가져오려는 스트림의 ARN입니다. 를 지정하지 않으면를 지정`streamARN`해야 합니다`streamName`.  
유형: 문자열  
길이 제약: 최소 길이 1. 최대 길이는 1024입니다.  
패턴: `arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`   
필수 여부: 아니요

 ** [StreamName](#API_dataplane_GetMedia_RequestSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-request-StreamName"></a>
미디어 콘텐츠를 가져오려는 Kinesis 비디오 스트림 이름입니다. 를 지정하지 않으면를 지정`streamName`해야 합니다`streamARN`.  
유형: 문자열  
길이 제약 조건: 최소 길이는 1입니다. 최대 길이는 256입니다.  
패턴: `[a-zA-Z0-9_.-]+`   
필수 여부: 아니요

## 응답 구문
<a name="API_dataplane_GetMedia_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-Type: {{ContentType}}

{{Payload}}
```

## 응답 요소
<a name="API_dataplane_GetMedia_ResponseElements"></a>

작업이 성공하면 서비스가 HTTP 200 응답을 반송합니다.

응답에 다음 HTTP 헤더가 반환됩니다.

 ** [ContentType](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-ContentType"></a>
요청된 미디어의 콘텐츠 유형입니다.  
길이 제약: 최소 길이 1. 최대 길이 128.  
패턴: `^[a-zA-Z0-9_\.\-]+$` 

응답은 다음 내용을 HTTP 본문으로 반환합니다.

 ** [Payload](#API_dataplane_GetMedia_ResponseSyntax) **   <a name="KinesisVideo-dataplane_GetMedia-response-Payload"></a>
 Kinesis Video Streams가 반환하는 페이로드는 지정된 스트림의 청크 시퀀스입니다. 청크에 대한 자세한 내용은 [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)를 참조하세요. 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 - 스트림에 쓰는 중 오류 발생
+ 4000 - 요청된 조각을 찾을 수 없음
+ 4500 - 스트림의 KMS 키에 대한 액세스 거부됨
+ 4501 - 스트림의 KMS 키가 비활성화됨
+ 4502 - 스트림의 KMS 키에 대한 검증 오류
+ 4503 - 스트림에 지정된 KMS 키를 사용할 수 없음
+ 4504 - 스트림에 지정된 KMS 키의 잘못된 사용
+ 4505 - 스트림에 지정된 KMS 키의 상태가 잘못되었습니다.
+ 4506 - 스트림에 지정된 KMS 키를 찾을 수 없음
+ 5000 - 내부 오류

## 오류
<a name="API_dataplane_GetMedia_Errors"></a>

모든 작업에 공통되는 오류에 대한 내용은 [일반적인 오류 유형](CommonErrors.md) 섹션을 참조하세요.

 ** ClientLimitExceededException **   
허용된 클라이언트 호출 한도를 초과했기 때문에 Kinesis Video Streams에서 요청을 제한했습니다. 나중에 호출해 보십시오.  
HTTP 상태 코드: 400

 ** ConnectionLimitExceededException **   
허용된 클라이언트 연결 한도를 초과했기 때문에 Kinesis Video Streams에서 요청을 제한했습니다.  
HTTP 상태 코드: 400

 ** InvalidArgumentException **   
이 입력 파라미터의 값이 잘못되었습니다.  
HTTP 상태 코드: 400

 ** InvalidEndpointException **   
발신자가 잘못된 엔드포인트를 사용하여 스트림에 데이터를 씁니다. 이러한 예외가 수신되면 사용자는가 `GetDataEndpoint` 로 `APIName` 설정된를 호출`PUT_MEDIA`하고 응답의 엔드포인트를 사용하여 다음 `PutMedia` 호출을 호출해야 합니다.  
HTTP 상태 코드: 400

 ** NotAuthorizedException **   
호출자가 지정된 스트림에서 작업을 수행할 권한이 없거나 토큰이 만료되었습니다.  
HTTP 상태 코드: 401

 ** ResourceNotFoundException **   
상태 코드: 404, 지정된 이름의 스트림이 존재하지 않습니다.  
HTTP 상태 코드: 404

## 참고
<a name="API_dataplane_GetMedia_SeeAlso"></a>

언어별 AWS SDKs
+  [AWS 명령줄 인터페이스 V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS .NET V4용 SDK](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for C\+\+](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS Go v2용 SDK](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS Java V2용 SDK](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS PHP V3용 SDK](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS Python용 SDK](https://docs.aws.amazon.com/goto/boto3/kinesis-video-data-2017-09-30/GetMedia) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-data-2017-09-30/GetMedia) 