Notice
Recent Posts
Recent Comments
Link
투케이2K
13. (Aws/Amazon) [Aws Video Streams] kvs (Kinesis Video Streams) , HLS (HTTP 라이브 스트리밍) 설명 및 정리 본문
Aws (Amazon)
13. (Aws/Amazon) [Aws Video Streams] kvs (Kinesis Video Streams) , HLS (HTTP 라이브 스트리밍) 설명 및 정리
투케이2K 2025. 1. 13. 19:57[개발 환경 설정]
개발 환경 : Aws / Amazon Web Services
[방법 설명]
// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------
- 인프라 : Aws / Amazon Web Services
- 기술 구분 : Aws / Vidoe / Kvs / Device / Streams
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[kvs (Kinesis Video Streams) 설명 정리] : 실시간 영상
// --------------------------------------------------------------------------------------
1. AWS KVS 는 ML(기계 학습), 재생 및 기타 처리를 위해 커넥티드 디바이스에서 AWS로 비디오를 쉽고 안전하게 스트리밍할 수 있는 기술입니다
>> Aws Iot 기술로 하드웨어 장치 실시간 영상을 웹, 앱 등 에서 볼 수 있게 해줍니다
2. AWS KVS 는 WebRTC 를 통한 실시간 미디어 스트리밍을 지원합니다
>> WebRTC 란 웹, 애플리케이션, 디바이스 간 중간자 없이 오디오나 영상 미디어를 포착하고 실시간 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술입니다
3. AWS KVS 에는 빠른 피어 (Peer) 검색 및 보안 연결 설정을 위한 WebRTC 신호 엔드포인트가 포함되어 있습니다
4. AWS WebRTC 엔드포인트에는 NAT (STUN) P2P 방식 같은 와이파이 망 다이렉트 연결 및 TURN (Traversal Utiling Rays around NAT) 릴레이 서버 경유 스트림 전달 방식이 있습니다
>> STUN 방식으로 실시간 영상을 재생할 때는 별도의 스트림 비용이 없지만, TURN 방식으로 실시간 영상 재생 시에는 (분) 단위 기준으로 스트림 비용이 측정 됩니다
5. AWS WebRTC 실시간 영상 재생을 하기 위해서는 region (AWS 리젼) , clientId (클라이언트 아이디) , accessKeyId (실시간 영상 재생에 필요한 액세스 키) , secretAccessKey (실시간 영상 재생에 필요한 시크릿 키) , sessionToken (실시간 영상 재생에 필요한 세션 토큰) , channelARN (실시간 스트리밍 채널 ARN 주소) 값 등이 필요합니다
6. AWS KVS 실시간 영상 재생 로직 :
>> 앱은 영상 재생에 필요한 region, clientId, accessKeyId, secretAccessKey, sessionToken, channelARN 정보 획득 필요
>> App To Web 자바스크립트 브릿지 통신으로 데이터 전달
>> Web 단에서 미디어 재생 권한 획득 수행
>> Web 단에서 AWS.KinesisVideo 초기화 및 iceServers (STUN / TUN) 연결 정책 설정 후 SDP 오퍼 생성 및 마스터에게 전송
>> 디바이스는 오퍼 신호를 받으면 스트림 영상 밀어 넣어 준다
>> Web 단 비디오 플레이에서 실시간 출력 영상 확인
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[HLS (HTTP 라이브 스트리밍) 설명 정리] : 녹화 영상
// --------------------------------------------------------------------------------------
1. HLS 란 HTTP 라이브 스트리밍으로 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜입니다
2. HLS 는 Apple (iPhone, iPad 등) 에서 사용하는 표준 HTTP 기반 스트리밍 프로토콜 이며, 비디오 콘텐츠 스트리밍에 널리 사용되고 있습니다.
>> HLS 스트리밍은 모바일 장치, 태블릿을 사용하여 스트리밍 콘텐츠를 볼 때 이상적입니다
>> HLS 스트리밍은 HTML5 비디오 플레이어에 가장 적합 합니다 (모바일 하이브리브 제작 시 HTML5 사용)
3. HLS 동작 원리 :
>> 원시 입력 (카메라 = 비디오, 오디오) 을 가져와 미디어 전송 및 저장에 사용되는 압축된 스트림 생성
>> 스트리밍 서버는 이 스트림을 일련의 작은 파일로 나눠 웹 서버에 배치
>> 최종 사용자가 HLS 를 통해 웹 서버에 배치된 파일을 읽어 올바른 순서대로 스트림 재생 확인
4. HLS 장점 :
>> 호환성 : 스마트폰, 태블릿, 노트북 등 다양한 장치에서 스트리밍된 콘텐츠 소비 가능
>> 부드러운 재생 : 중단할 수 없는 방송 인 경우 품질을 희생하더라도 부드럽게 영상 재생 가능
>> 비용 효율성 : HTTP 를 기반으로 하며, 어떤 장치에서도 확장할 필요 없이 콘텐츠 전송을 네트워크로 전달
>> 보안 : Flash 와 같은 솔루션에 비해 더 안전한 프로토콜
>> 확장성 : 전 세계 수백만명의 시청자를 지원
5. HLS 단점 :
>> 높은 대기 시간 : 다른 스트리밍 프로토콜에 비해 대기 시간이 깁니다 (최대 30초 이상의 지연 발생 가능)
>> 느린 인터넷 속도 : HLS 스트리밍은 지연 시간이 상대적으로 높기 때문에 비디오 게임, 스포츠 방송과 같이 빠른 라이브 스트리밍에는 적합하지 않음 (녹화 영상에 주로 사용)
6. HLS 와 다른 스트리밍 프로토콜 비교
>> RTMP :
일반적인 스트리밍 프로토콜, 최신 브라우저가 Flash 에 대한 지원을 중단하고 있으므로 오늘날 사라지고 있음
카메라나 인코더에서 비디오 스트림을 캡처하기 위한 표준 프로토콜 이기 때문에 여전히 많은 방송사에서 사용
>> MSS :
마이크로 소프트 Smooth Streaming 의미로, 마이크로 소프트 장치의 독점 기술이기 때문에 채택이 제한적 (게임 콘솔에서 많이 사용)
>> MPEG-DASH :
최초의 HTTP 기반 국제 스트리밍 프로토콜로, 보편적으로 비디오를 재생하는 능력이 있습니다
H.264 / H.265 / VP8.9 / AV1을 포함한 형식을 지원
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Aws Kvs 설명]
https://aws.amazon.com/ko/kinesis/video-streams/?amazon-kinesis-video-streams-resources-blog.sort-by=item.additionalFields.createdDate&amazon-kinesis-video-streams-resources-blog.sort-order=desc
[Aws HLS 설명]
https://docs.aws.amazon.com/ko_kr/kinesisvideostreams/latest/dg/hls-playback.html
https://en.wikipedia.org/wiki/HTTP_Live_Streaming
[투케이 학습 : AWS KVS (Kinesis Video Streams) WebRTC (실시간) 및 HLS (녹화) 영상 출력 학습]
https://blog.naver.com/kkh0977/223170511918?trackingCode=blog_bloghome_searchlist
[라이브러리] [Web] aws-sdk.js / kvs-webrtc.js AWS 실시간 WebRTC 영상 재생 라이브러리
https://blog.naver.com/kkh0977/223176059629?trackingCode=blog_bloghome_searchlist
[온라인] Aws Kvs WebRTC 및 HLS 실시간 스트리밍 동영상 재생 플레이 확인 사이트
https://blog.naver.com/kkh0977/223161773174?trackingCode=blog_bloghome_searchlist
[투케이 에러관리] Kvs 실시간 영상 재생 관련 STUN , TUN 서버 연결 이슈
https://blog.naver.com/kkh0977/223162726931?trackingCode=blog_bloghome_searchlist
[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행 - KVS Stream Video]
https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'Aws (Amazon)' 카테고리의 다른 글
Comments