Notice
Recent Posts
Recent Comments
Link
투케이2K
188. (TWOK/LOGIC) [Aws] AWS Kvs HLS 사용해 실시간 비디오 스트리밍 재생 및 디바이스 기기 입장에서 S3 녹화 영상 업로드 로직 정리 본문
투케이2K 로직정리
188. (TWOK/LOGIC) [Aws] AWS Kvs HLS 사용해 실시간 비디오 스트리밍 재생 및 디바이스 기기 입장에서 S3 녹화 영상 업로드 로직 정리
투케이2K 2026. 5. 14. 19:30728x90
반응형
[로직 정리]
정리 로직 : AWS / Kvs / HLS
제 목 : [Aws] AWS Kvs HLS 사용해 실시간 비디오 스트리밍 재생 및 디바이스 기기 입장에서 S3 녹화 영상 업로드 로직 정리

[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
1. 제 목 : [Aws] AWS Kvs HLS 사용해 실시간 비디오 스트리밍 재생 및 디바이스 기기 입장에서 S3 녹화 영상 업로드 로직 정리
2. 테스트 환경 : Aws / Kvs / HLS / S3
3. 사전) 👉 비디오 스트림 간략 설명 정리 :
>> 비디오 스트림은 라이브 비디오 및 기타 시간이 인코딩된 데이터를 캡처하고, 선택적으로 저장하고, 실시간, 배치 혹은 애드혹 형식으로 데이터의 소비를 가능하게 할 수 있도록 해 주는 리소스입니다
>> 일반적인 구성에서는 Kinesis 비디오 스트림은 데이터를 푸시해 주는 생산자가 하나만 있습니다 (실시간 스트리밍 데이터를 밀어 넣어주는 하드웨어 기기)
4. 사전) 👉 HLS 개념 설명 :
>> HTTP 라이브 스트리밍으로 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜입니다
>> HLS 는 Apple 장치에서 지원하는 유일한 형식입니다
>> 미디어는 h.264 또는 h.265 인코딩된 비디오를 포함해야 하며 AAC 인코딩된 오디오는 선택 사항입니다
>> 미디어 타입 유효한 값의 예로는 "video/h264" 및 "video/h264,audio/aac" 가 있습니다
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------
✅ 사전) 실시간 영상 재생 시 사용 되는 WebRTC 와 HLS 비교 설명 정리
--------------------------------------------------------------
구분 | WebRTC | HLS
--------------------------------------------------------------
핵심 목적 | 초저지연 실시간 | 안정적 스트리밍 & 재생
--------------------------------------------------------------
지연 | 0.3~1초 | 5~30초
--------------------------------------------------------------
대상 | 실시간 상호작용 | 다수 시청, 기록, 재생
--------------------------------------------------------------
네트워크 | P2P / UDP | HTTP / CDN
--------------------------------------------------------------
확장성 | 낮음 (연결 수 제한) | ✅ 매우 높음
--------------------------------------------------------------
녹화/보관 | ❌ 직접 불가 | ✅ 자연스럽게 연계
--------------------------------------------------------------
✅ 1안 : 흐름 정리) 디바이스 기기 HLS 라이브 스트리밍 재생 및 특정 이벤트 발생 시 녹화 동작 흐름 정리
1. 기기: PutMedia : 스트리밍 데이터 전송 수행
2. 앱: HLS 재생 (보기만)
3. 기기: 카메라에 특정 동작 이벤트 감지 수행 , 이벤트가 발생한 현재 시간 저장 (+ 5초 추가 스트리밍 재생 수행)
4. 기기: API Gateway 호출 및 Lambda 트리거 수행
5. Backend: 기기가 전송한 현재 시간 기준으로 +- 5초 ListFragments (검증)
6. Backend: GetClip (영상 추출)
7. Backend: S3 업로드 수행
[디바이스(Camera)]
├─ PutMedia →
│
▼
[Kinesis Video Streams]
├─ (스트리밍 데이터 저장)
│ └─ Fragment (영상 조각 저장)
│
├─ (실시간 재생) →
│ └─ HLS (GetHLSStreamingSessionURL)
│
├─ (이벤트 발생 → 외부 트리거 전달)
│ └─ AWS IoT / API Gateway / EventBridge
│
▼
[Lambda (또는 Backend)]
├─ 1. 이벤트 시간 수신
├─ 2. ±5초 Timestamp 계산
│
├─ 3. ListFragments (검증)
│ ├─ Fragment 존재 확인
│ └─ Timestamp 유효성 체크
│
├─ 4. GetClip (영상 추출)
│ └─ MP4 binary 생성
│
└─ 5. S3 업로드
└─ PutObject (video/mp4)
▼
[S3]
└─ 이벤트 영상 저장 (mp4)
✅ 2안 : 흐름 정리) 디바이스 기기 HLS 라이브 스트리밍 재생 및 특정 이벤트 발생 시 녹화 동작 흐름 정리
1. 기기: PutMedia : 스트리밍 데이터 전송 수행
2. 앱: HLS 재생 (보기만)
3. 기기: 카메라에 특정 동작 이벤트 감지 수행 , 이벤트가 발생한 현재 시간 저장 (+ 5초 추가 스트리밍 재생 수행)
4. 기기: 이벤트가 발생한 시간 기준 +- 5초 ListFragments (검증)
5. 기기: GetClip (영상 추출)
6. 기기: S3 업로드 수행
┌────────────────────────────┐
│ Device (Camera) │
│ │
│ 1. PutMedia │
│ 2. Event Detection │
│ 3. Timestamp 계산 │
│ 4. ListFragments 호출 │
│ 5. GetClip 호출 │
│ 6. S3 업로드 │
└─────────────┬──────────────┘
│
▼
┌─────────────────────┐
│ Kinesis Video Stream │
│ (fragment 저장) │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ KVS Archived Media │
│ - ListFragments │
│ - GetClip │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ S3 │
│ (영상 저장) │
└─────────────────────┘
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
▶️ 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 : ListFragments 설명
https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html
▶️ AWS : GetMediaForFragmentList 설명
https://docs.aws.amazon.com/ko_kr/kinesisvideostreams/latest/dg/API_reader_GetMediaForFragmentList.html
▶️ AWS : GetClip 설명
https://docs.aws.amazon.com/ko_kr/kinesisvideostreams/latest/dg/API_reader_GetClip.html
// --------------------------------------------------------------------------------------
728x90
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments
