투케이2K

203. (Aws/Amazon) [Aws Kinesis Video Streams] GetMediaForFragmentList API 설명 정리 - 프래그먼트 번호 목록 영상 조회 본문

Aws (Amazon)

203. (Aws/Amazon) [Aws Kinesis Video Streams] GetMediaForFragmentList API 설명 정리 - 프래그먼트 번호 목록 영상 조회

투케이2K 2026. 5. 16. 13:25
728x90
반응형

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

제 목 : [Aws Kinesis Video Streams] GetMediaForFragmentList API 설명 정리 - 프래그먼트 번호 목록 영상 조회

 

[설명 정리]

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

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / Aws Kinesis Video Streams / GetMediaForFragmentList


- 사전) 👉 비디오 스트림 간략 설명 정리 : 

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

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


- 사전) 👉 HLS 개념 설명 : 

  >> HTTP 라이브 스트리밍으로 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜입니다

  >> HLS 는 Apple 장치에서 지원하는 유일한 형식입니다

  >> 미디어는 h.264 또는 h.265 인코딩된 비디오를 포함해야 하며 AAC 인코딩된 오디오는 선택 사항입니다

  >> 미디어 타입 유효한 값의 예로는 "video/h264" 및 "video/h264,audio/aac" 가 있습니다

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






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

1. ✅ GetMediaForFragmentList 는 특정 fragment 번호 리스트를 기반으로 실제 영상 데이터를 가져오는 API 입니다.

  >> 입력 : Fragment Number 리스트

  >> 출력 : 영상 데이터(스트림, MKV 포맷)

  >> 👉 지정된 fragment 번호 목록에 대해 아카이브된 영상 데이터를 가져옵니다.


2. ✅ GetClip 과 GetMediaForFragmentList 의 차이 정리 : 

  >> 👉 GetClip 은 "자동 영상 생성 API"

  >> 👉 GetMediaForFragmentList 는 "저수준 (raw data API)"

-----------------------------------------------------------------------
항목         |       GetClip       |       GetMediaForFragmentList
-----------------------------------------------------------------------
입력 기준    |    시간 (timestamp)  |           fragment 번호
-----------------------------------------------------------------------
출력 형태    |          MP4         |         MKV 스트림 (chunk)
-----------------------------------------------------------------------
사용 목적    |       파일 추출       |     fragment 단위 처리 / 분석
-----------------------------------------------------------------------
난이도       |         쉬움         |          상대적으로 어려움
-----------------------------------------------------------------------


3. GetMediaForFragmentList 관련 구조 정리 : 

  [KVS]
    ├─ Fragment1
    ├─ Fragment2
    ├─ Fragment3
    │
    └─ ListFragments
            ↓
      [FragmentNumber 리스트]
            ↓
    GetMediaForFragmentList
            ↓
      영상 스트림 반환 (MKV)


4. ✅ GetMediaForFragmentList API 호출 제약 조건 정리 : 

  >> GetMediaForFragmentList API 를 호출하기 위해서는 GetDataEndpoint 호출 (필수) 이 필요합니다.

    - 반환된 endpoint에 대해 GetMediaForFragmentList 을 호출해야 합니다.

  >> GetMediaForFragmentList API 는 구현 난이도가 높습니다.

    - stream parsing 필요
    - MKV 처리 필요

  >> fragment ordering 직접 처리가 필요합니다.

    - 순서 보장 X (ListFragments 기준)


5. GetMediaForFragmentList API 호출 Request 전문 :

  POST /getMediaForFragmentList HTTP/1.1
  Content-type: application/json

  {
    "Fragments": [ "string" ],
    "StreamARN": "string",
    "StreamName": "string"
  }


6. GetMediaForFragmentList API 호출 Response 전문 :

  HTTP/1.1 200
  Content-Type: video/x-matroska (MKV)
  Payload: binary stream

  >> 👉 MP4 가 아니고, MKV 기반 chunk 스트림입니다.

  >> 👉 전체 파일이 아니라 stream 으로 내려주며, chunk 단위로 읽어야합니다.

  >> 👉 바로 재생 불가능 (대부분) 하며, ffmpeg 변환이 필요합니다


7. GetMediaForFragmentList 가 사용 되는 케이스 정리 : 

  >> 영상 분석 / ML 처리 : 

    - 프레임 단위 처리
    - OpenCV, FFmpeg 활용

  >> 커스텀 파일 생성 : 

    - 여러 fragment → 하나로 합치기
    - clip 직접 생성

  >> 대형 영상 처리 : 

    - GetClip 제한 (200 fragment, 100MB) 해결
    - fragment 단위 분할 처리

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






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

▶️ 143. (TWOK/LOGIC) [android] Aws Kvs HLS PutMedia 스트리밍 동영상 업로드 로직 정리 - DataEndpoint, MKV , AWS4Signer

https://kkh0977.tistory.com/8013

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


▶️ 145. (TWOK/LOGIC) [Aws] Aws Kvs HLS 디바이스 카메라 라이브 스트리밍 정보 PutMedia 업로드 방법 로직 정리

https://kkh0977.tistory.com/8086

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


▶️ 146. (TWOK/LOGIC) [Aws] Kvs HLS 라이브 스트리밍 로컬 PC에서 업로드 하기 위한 프로세스 로직 정리 - aws , ffmpeg , gstreamer 사용

https://kkh0977.tistory.com/8099

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


▶️ 147. (TWOK/LOGIC) [android] 안드로이드 휴대폰 실시간 카메라 스트림 영상을 마스터 역할로 Aws Kvs HLS 라이브 스트리밍 업로드 로직 정리

https://kkh0977.tistory.com/8250

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


▶️ 153. (TWOK/LOGIC) [Aws] 자바스크립트 Aws Kvs HLS 비디오 라이브 스트리밍 뷰어 Viewer 영상 재생 방법 정리

https://kkh0977.tistory.com/8405

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


▶️ AWS : GetMediaForFragmentList 설명

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

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments