Notice
Recent Posts
Recent Comments
Link
투케이2K
146. (TWOK/LOGIC) [Aws] Kvs HLS 라이브 스트리밍 로컬 PC에서 업로드 하기 위한 프로세스 로직 정리 - aws , ffmpeg , gstreamer 사용 본문
투케이2K 로직정리
146. (TWOK/LOGIC) [Aws] Kvs HLS 라이브 스트리밍 로컬 PC에서 업로드 하기 위한 프로세스 로직 정리 - aws , ffmpeg , gstreamer 사용
투케이2K 2025. 7. 1. 20:05728x90
[로직 정리]
정리 로직 : Aws
상태 : [Aws] Kvs HLS 라이브 스트리밍 로컬 PC에서 업로드 하기 위한 프로세스 로직 정리 - aws , ffmpeg , gstreamer 사용
[설 명]
// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------
1. 사전) 인프라 환경 구축 및 파일 준비 필요 사항
>> Aws Kinesis Video Streams (Kvs) 인프라 구축 필요
- IAM 계정 생성 (KVS 권한 할당) 및 AccessKey , SecretKey 생성 준비
>> Aws 사이트에서 KVS HLS 비디오 스트림 채널 생성 필요 (테스트 고유 디바이스 스트림 명칭)
>> Aws Kvs HLS 에 업로드 하려는 동영상 파일 (mp4) 준비 필요
>> 재생 되고 있는 실시간 스트리밍 정보를 보기 위한 Viewer 뷰어 프로그램 준비 필요
2. 사전) 비디오 스트림 학습 :
>> 비디오 스트림은 라이브 비디오 및 기타 시간이 인코딩된 데이터를 캡처하고, 선택적으로 저장하고, 실시간, 배치 혹은 애드혹 형식으로 데이터의 소비를 가능하게 할 수 있도록 해 주는 리소스입니다
>> 일반적인 구성에서는 Kinesis 비디오 스트림은 데이터를 푸시해 주는 생산자가 하나만 있습니다 (실시간 스트리밍 데이터를 밀어 넣어주는 하드웨어 기기)
3. 사전) KVS 개념 학습 :
>> KVS 는 ML (기계 학습), 재생 및 기타 처리를 위해 커넥티드 디바이스에서 AWS로 비디오를 쉽고 안전하게 스트리밍할 수 있는 기술입니다
4. 사전) HLS 개념 학습 :
>> HTTP 라이브 스트리밍으로 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜입니다
>> HLS 는 Apple 장치에서 지원하는 유일한 형식입니다
>> 미디어는 h.264 또는 h.265 인코딩된 비디오를 포함해야 하며 AAC 인코딩된 오디오는 선택 사항입니다
>> 미디어 타입 유효한 값의 예로는 "video/h264" 및 "video/h264,audio/aac" 가 있습니다
5. 사전) PutMedia 개념 학습 :
>> Kinesis 비디오 스트림 전송 API 입니다. (미디어 데이터 전송)
>> PutMedia 전송 시 파라미터에는 streamName 또는 streamARN 중 하나를 지정해야합니다
6. 사전) Signature V4 서명 학습 :
>> AWS API 요청에 인증 정보를 추가하기 위한 AWS 서명 프로토콜입니다
>> HTTP Authorization 헤더에서 또는 URL의 쿼리 문자열로 표현될 수 있습니다
7. 사전) MKV 비디오 파일 학습 :
>> 멀티미디어 컨테이너 형식으로 여러 개의 오디오, 비디오, 자막 트랙을 하나의 파일에 포함할 수 있는 컨테이너 형식입니다
>> MKV 편집이 가능한 프로그램 :
- DaVinci Resolve : 무료 + 고급 영상 편집 가능
- VLC Media Player : 간단한 컷 편집 가능
- FFmpeg : MKV 변환 & 편집 (커맨드 라인)
- Avidemux : 간단한 트리밍 & 편집
8. 사전) FFMpecg (미디어 포맷 변환 도구) 학습 :
>> FFmpeg 이란 디지털 음성 스트림과 영상 스트림에 대해서 다양한 종류의 형태로 기록하고 변환하는 컴퓨터 프로그램입니다 (미디어 포맷 변환 도구)
>> FFmpeg을 기반으로 하는 동영상 플레이어 :
- iOS : AV player, nPlayer
- 안드로이드 : Dice Player, MX 플레이어, 안드로이드용 곰플레이어, 안드로이드용 KMPlayer
- Microsoft Windows : 팟플레이어, 곰플레이어, KMPlayer, MPC-HC, 콘플레이어
- macOS : 무비스트
- 크로스 플랫폼 : VLC, MPlayer
9. 사전) Gstreamer (스트림 변형 및 전송 도구) 학습 :
>> Gstreamer 는 여러가지 데이터 소스들이 유기적으로 다른 어플리케이션이나 프로그램에 스트림이 될수있도록 데이터를 변형하고 사용가능하도록 만들어줍니다
>> Gstreamer 를 사용해 특정 미디어 파일을 특정 미디어 서버에 스트리밍 재생을 수행할 수 있습니다
10. 사전) Aws KVS HLS 비디오 사양 관련 설명 정리 - Video Encode , FPS , GOP
>> 해상도 : 화면 너비와 높이에 걸쳐 있는 픽셀의 수를 통해 측정되며, 픽셀의 수가 많을수록 더 많은 디테일을 표현할 수 있습니다 (가로 픽셀 수 x 세로 픽셀 수)
- SD : 7230*480
- HD : 1280*720
- FHD : 1920*1080
- QHD : 2560*1440
- UHD : 4K - 3840*2160
- DCI : 4K - 4096*2160
>> 프레임 속도 (Frame rate) : 1초에 여러 프레임이 표시되는 속도를 측정하는 것으로 FPS (초당 프레임 수) 라고도 합니다 (프레임 속도가 클수록 비디오가 더 매끄럽고 자연스럽습니다)
- 24fps : 영화, 연결 속도의 불일치를 고려한 스트리밍 영상 콘텐츠, 비디오 게임 제작 시 이 속도를 사용하여 고전적인 영화와 같은 분위기를 연출합니다
- 30fps : 라이브 TV 방송(스포츠 및 뉴스)과 대부분의 TV 프로그램은 이 속도를 사용하여 품질을 높입니다
- 60fps : 4K 영상 해상도가 보편화됨에 따라 많은 시청자가 이 FPS를 채택하고 있습니다 (비디오 게임 기록 등에 사용)
- 120fps 이상 : 슬로우 모션 영상을 생성하고 빠르고 격렬한 액션이 있는 비디오 게임(격투, 슈팅, 스포츠 게임) 제작 시 사용합니다
>> 키프레임 (GOP - Group of Pictures) : MPEG Standard 비디오 압축 기술에서 사용 되는 표현으로 인코딩 된 이미지 프레임 그룹 입니다 (압축률)
- I-frame : 키프레임으로 불리며 GOP 기준이 되는 핵심 프레임입니다 (GOP 첫프레임은 반드시 I 프레임으로 시작)
- P-frame : 순방향 예측 프레임으로 바로 이전에 위치한 I 프레임을 기준으로 차이가 나는 부분의 데이터만 예측하여 저장한 프레임입니다
- B-frame : 양방향 예측 프레임으로 I 프레임과 P 프레임 사이에 껴서 양쪽 프레임을 모두 참조해 두 프레임 사이의 움직임을 예측하여 저장한 프레임입니다
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------
1. 로컬 PC 에서 MP4 파일을 FFMpecg 을 사용해 MKV 파일로 트랜스 코딩 수행
>> Aws Kvs Hls 파일 업로드를 위한 Codec 설정 중요 (video/h264,audio/aac)
2. 로컬 PC 에서 변경 된 MKV 파일을 Gstreamer 사용해 Aws Kvs HLS 에 라이브 스트리밍 업로드 수행
>> 사전) Aws 연결 및 스트리밍 업로드를 위한 AccessKey, SecretKey 정보는 전달 받아야함
>> 사전) 비디오 스트리밍 업로드 시 필요한 특정 StreamName 값도 전달 받아야함
3. Aws 콘솔 대시보드 사이트 접속 후 > Aws Kinesis Video Streams 메뉴 접속 수행
>> Aws Kvs Hls 스트리밍을 재생할 수 있는 샘플 뷰어 프로그램을 사용해도 되지만, AWS 콘솔 대시보드에서 확인 진행
4. 비디오 스트림 메뉴 접속 후 > 특정 StreamName 선택 수행
5. 특정 디바이스 정보 화면에서 [미디어 재생] 버튼 클릭 후 > 실시간으로 동영상이 정상적으로 스트리밍 되고 있는지 확인
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[android] Aws Kvs HLS PutMedia 스트리밍 동영상 업로드 로직 정리 - DataEndpoint, MKV , AWS4Signer
https://blog.naver.com/kkh0977/223875616765?trackingCode=blog_bloghome_searchlist
[Aws KVS PutMedia 비디오 스트림 전송 API 설명 정리]
[안드로이드 Aws HLS PutMedia API 호출에 필요한 GetDataEndpoint 호출 방법]
https://blog.naver.com/kkh0977/223876132661?trackingCode=blog_bloghome_searchlist
[Aws Signature Version 4] Aws SigV4 인증 및 서명 프로토콜 설명 - AWS4Signer API 호출 시 서명 사용
https://blog.naver.com/kkh0977/223874467995?trackingCode=blog_bloghome_searchlist
[안드로이드 Aws Kvs HLS 비디오 스트리밍 putMedia 호출 시 필요한 Signature V4 서명 방법]
https://blog.naver.com/kkh0977/223874442189?trackingCode=blog_bloghome_searchlist
[Aws KVS HLS MKV 파일 설명 - PutMedia API 스트리밍 업로드 시 전송 파일]
https://blog.naver.com/kkh0977/223874472088?trackingCode=blog_bloghome_searchlist
[업무 이슈] android 안드로이드 aws kvs hls 스트리밍 동영상 업로드 이슈 - mp4 파일 ffmpeg 트랜스코딩 mkv 파일 변환
https://blog.naver.com/kkh0977/223878649342?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
728x90
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments