투케이2K

57. (Aws/Amazon) [Aws Kinesis Video Streams] Aws KVS GetMedia 비디오 스트림 검색 API 설명 정리 본문

Aws (Amazon)

57. (Aws/Amazon) [Aws Kinesis Video Streams] Aws KVS GetMedia 비디오 스트림 검색 API 설명 정리

투케이2K 2025. 5. 6. 13:11

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services

- 기술 구분 : Aws / Kinesis Video Streams / KVS / 비디오 스트림

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. Aws KVS 비디오 스트림 설명 : 

  >> 비디오 스트림은 라이브 비디오 및 기타 시간이 인코딩된 데이터를 캡처하고, 선택적으로 저장하고, 실시간, 배치 혹은 애드혹 형식으로 데이터의 소비를 가능하게 할 수 있도록 해 주는 리소스입니다


  >> 비디오 스트림에 데이터를 저장하도록 선택하면 Kinesis Video Streams가 데이터를 암호화하고 저장된 데이터에 시간 기반 인덱스를 생성합니다


  >> 일반적인 구성에서는 Kinesis 비디오 스트림은 데이터를 푸시해 주는 생산자가 하나만 있습니다 (실시간 스트리밍 데이터를 밀어 넣어주는 하드웨어 기기)


  >> Kinesis 비디오 스트림은 비디오 스트림의 콘텐츠를 처리하는 여러 소비 애플리케이션을 가질 수 있습니다




2. Aws GetMedia 설명 : 

  >> GetMedia API 를 사용하여 Kinesis 비디오 스트림 미디어 데이터를 검색할 수 있습니다

    - 먼저 GetDataEndpointAPI 를 호출하여 엔드포인트를 가져와야 합니다 (Credential EndPoint)

    - 가져온 엔드포인트 정보를 사용해 GetMedia API 호출 시 사용합니다

    - GetDataEndpointAPI 를 호출하여 엔드포인트 정보를 가져오기 위해서는 IAM 계정에 할당 된 AccessKey , SecretKey 정보가 필요합니다


  >> GetMedia API 를 사용 시 제한 사항

    - 클라이언트는 GetMedia 스트림당 초당 최대 5번을 호출할 수 있습니다.

    - Kinesis Video Streams 는 세션 동안 초당 최대 25 메가바이트 (또는 초당 200메가비트) 의 속도로 미디어 데이터를 전송합니다


  >> GetMedia API 사용 요청 구문 예시 

    POST /getMedia HTTP/1.1  ------------->  GetDataEndpointAPI 를 호출하여 얻은 엔드포인트 주소 (Credential EndPoint)

    Content-type: application/json

    {
      "StartSelector": {  -------------->  지정된 스트림에서 가져올 시작 청크 식별
          "AfterFragmentNumber": "string",
          "ContinuationToken": "string",
          "StartSelectorType": "string",
          "StartTimestamp": number
      },
      "StreamARN": "string",  -------------->  Kinesis 비디오 스트림의 Amazon 리소스 이름(ARN)
      "StreamName": "string"  -------------->  Kinesis 비디오 스트림의 이름
    }


  >> GetMedia API 에러 응답 코드 정리

    - HTTP 상태 코드 : 400 - 클라이언트 제한 초과 예외 : 허용된 클라이언트 호출 한도를 초과하여 Kinesis Video Streams에서 요청을 제한했습니다. 나중에 호출해 보세요.

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

    - HTTP 상태 코드 : 400 - InvalidArgumentException : 입력 매개변수의 값이 잘못되었습니다.

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

    - HTTP 상태 코드 : 401 - 권한이 없음 예외 : 호출자가 주어진 스트림에서 작업을 수행할 권한이 없거나 토큰이 만료되었습니다.

    - HTTP 상태 코드 : 404 - 리소스가 발견되지 않음 : 상태 코드: 404, 해당 이름의 스트림이 존재하지 않습니다.


  >> GetMedia API Error 필드 오류 정리

    - 3002 - 스트림에 쓰는 중 오류가 발생했습니다.

    - 4000 - 요청된 조각을 찾을 수 없습니다.

    - 4500 - 스트림의 KMS 키에 대한 액세스가 거부되었습니다.

    - 4501 - 스트림의 KMS 키가 비활성화되었습니다.

    - 4502 - 스트림의 KMS 키에 대한 유효성 검사 오류

    - 4503 - 스트림에 지정된 KMS 키를 사용할 수 없습니다.

    - 4504 - 스트림에 지정된 KMS 키의 사용이 잘못되었습니다.

    - 4505 - 스트림에 지정된 KMS 키의 상태가 잘못되었습니다.

    - 4506 - 스트림에 지정된 KMS 키를 찾을 수 없습니다.

    - 5000 - 내부 오류

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Aws GetMedia 설명]

https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html


[임시 보안 자격 증명 요청]

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_temp_request.html


[kvs (Kinesis Video Streams) , HLS (HTTP 라이브 스트리밍) 설명 및 정리]

https://blog.naver.com/kkh0977/223724719256?trackingCode=blog_bloghome_searchlist


[AWS 사이트 주요 질문 정리 사이트]

https://aws.amazon.com/ko/kinesis/video-streams/faqs/

// --------------------------------------------------------------------------------------
 
반응형
Comments