Notice
Recent Posts
Recent Comments
Link
투케이2K
64. (Aws/Amazon) [Aws Kinesis Video Streams] Aws KVS HLS 비디오 라이브 스트리밍 GetHLSStreamingSessionURL 정리 본문
Aws (Amazon)
64. (Aws/Amazon) [Aws Kinesis Video Streams] Aws KVS HLS 비디오 라이브 스트리밍 GetHLSStreamingSessionURL 정리
투케이2K 2025. 5. 19. 19:54[개발 환경 설정]
개발 환경 : Aws / Amazon Web Services

[설명 정리]
// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------
- 인프라 : Aws / Amazon Web Services
- 기술 구분 : Aws / KVS / HLS / Stream / Video
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------
1. AWS KVS HLS 설명 :
>> HTTP 라이브 스트리밍으로 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜입니다
>> HLS 는 Apple (iPhone, iPad 등) 에서 사용하는 표준 HTTP 기반 스트리밍 프로토콜 이며, 비디오 콘텐츠 스트리밍에 널리 사용되고 있습니다
- HLS 는 Apple 장치에서 지원하는 유일한 형식입니다
>> 미디어는 h.264 또는 h.265 인코딩된 비디오를 포함해야 하며 AAC 인코딩된 오디오는 선택해야합니다
2. HLS 동작 원리 :
>> 원시 입력 (카메라 = 비디오, 오디오) 을 가져와 미디어 전송 및 저장에 사용되는 압축된 스트림 생성
>> 스트리밍 서버는 이 스트림을 일련의 작은 파일로 나눠 웹 서버에 배치
>> 최종 사용자가 HLS 를 통해 웹 서버에 배치된 파일을 읽어 올바른 순서대로 스트림 재생 확인
3. Aws KVS HLS 를 통해 데이터를 제공 받기 위한 요구 사항 :
>> 데이터 보존 기간은 0보다 커야 합니다
>> 각 조각의 비디오 트랙에는 H.264 형식의 AVC(Advanced Video Coding) 또는 H.265 형식의 HEVC 이어야합니다
>> 각 조각의 오디오 트랙(있는 경우)에는 AAC 형식 이어야합니다
4. GetHLSStreamingSessionURL 설명 :
>> GetHLSStreamingSessionURL 는 HTTP 라이브 스트리밍(HLS) URL 을 가져올 수 있는 API 입니다
- 사전) GetDataEndpoint 를 먼저 가져온 이후 해당 엔드포인트로 GetHLSStreamingSessionURL 요청을 진행합니다
>> GetHLSStreamingSessionURL API 호출 시 StreamName 또는 StreamARN 지정이 필요합니다
>> GetHLSStreamingSessionURL API 를 통해서 HLS 마스터 재생 목록에 대한 인증된 URL (암호화된 세션 토큰 포함) 을 확인할 수 있습니다
5. GetHLSStreamingSessionURL 요청 구문 :
POST /getHLSStreamingSessionURL HTTP/1.1
Content-type: application/json
{
"ContainerFormat": "string",
"DiscontinuityMode": "string",
"DisplayFragmentTimestamp": "string",
"Expires": number,
"HLSFragmentSelector": {
"FragmentSelectorType": "string",
"TimestampRange": {
"EndTimestamp": number,
"StartTimestamp": number
}
},
"MaxMediaPlaylistFragmentResults": number,
"PlaybackMode": "string",
"StreamARN": "string",
"StreamName": "string"
}
>> ContainerFormat : 컨테이너 형식 : 미디어 패키징에 사용할 형식을 지정 (기본 값 - FRAGMENTED_MP4)
>> DiscontinuityMode : 불연속 모드 : 조각 사이의 불연속성을 표시하는 플래그가 미디어 재생 목록에 추가되는 시기를 지정
- ALWAYSALWAYS = HLS 미디어 재생 목록의 모든 프래그먼트 사이에 불연속성 마커가 배치
- NEVERNEVER = 불연속성 마커가 어디에도 배치되지 않음
- ON_DISCONTINUITY = 50밀리초 이상의 간격이나 중복이 있는 프래그먼트 사이에 불연속성 마커가 배치
>> DisplayFragmentTimestamp : 디스플레이 프래그먼트 타임스탬프 : HLS 미디어 재생 목록에 프래그먼트 시작 타임스탬프를 언제 포함할지 지정합니다 (기본값 NEVER)
- 유효한 값 : ALWAYS | NEVER
>> Expires : 만료 : 요청된 세션이 만료될 때까지의 시간(초)입니다 (이 값은 300(5분)에서 43200(12시간) 사이입니다)
>> HLSFragmentSelector : 요청된 조각의 시간 범위와 타임스탬프의 소스입니다
>> MaxMediaPlaylistFragmentResults : HLS 미디어 재생 목록에 반환되는 조각의 최대 수입니다
>> PlaybackMode : 재생 모드 : 라이브, 라이브 리플레이 또는 보관된 주문형 데이터를 검색할지 여부입니다
- LIVE : HLS 미디어 재생 목록은 최신 조각이 제공되는 대로 지속적으로 업데이트됩니다
- LIVE_REPLAY : LIVE 지정된 시작 시간의 조각을 포함하여 시작합니다 (예를 들어, 세션의 조각 길이가 2초이면 2초마다 새 조각이 미디어 재생 목록에 추가됩니다)
- ON_DEMAND : HLS 미디어 재생 목록에는 세션의 모든 프래그먼트가 포함됩니다 (최대 지정된 개수까지)
>> StreamARN : HLS 마스터 재생 목록 URL을 검색할 스트림의 Amazon 리소스 이름(ARN)입니다
>> StreamName : HLS 마스터 재생 목록 URL을 검색할 스트림의 이름입니다
6. GetHLSStreamingSessionURL 응답 구문 :
HTTP/1.1 200
Content-type: application/json
{
"HLSStreamingSessionURL": "string"
}
>> HLSStreamingSessionURL : 미디어 플레이어가 HLS 마스터 재생 목록을 검색하는 데 사용할 수 있는 URL (세션 토큰 포함) 입니다
7. GetHLSStreamingSessionURL 에러 발생 정리 :
>> ClientLimitExceededException : 한도를 초과하여 Kinesis Video Streams에서 요청을 제한했습니다
>> InvalidArgumentException : 지정된 매개변수가 제한을 초과했거나, 지원되지 않거나, 사용할 수 없습니다
>> InvalidCodecPrivateDataException : 비디오 스트림의 트랙 중 적어도 하나에 있는 코덱 개인 데이터가 이 작업에 유효하지 않습니다
>> MissingCodecPrivateDataException : 비디오 스트림의 트랙 중 하나 이상에서 코덱 개인 데이터가 발견되지 않았습니다
>> NoDataRetentionException : 데이터를 보관하지 않는 스트림(즉, DataRetentionInHours0이 있는 스트림)에 대해 요청되었습니다
>> NotAuthorizedException : 주어진 스트림에서 작업을 수행할 권한이 없거나 토큰이 만료되었습니다
>> ResourceNotFoundException : Kinesis Video Streams에서 지정한 스트림을 찾을 수 없는 경우 이 오류가 발생합니다
>> UnsupportedStreamMediaTypeException : 재생 세션의 첫 번째 조각에 있는 트랙의 코덱 ID에서 미디어 유형(예: h.264 또는 h.265 비디오, AAC 또는 G.711 오디오)을 확인할 수 없습니다
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Aws GetHLSStreamingSessionURL 설명]
https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetHLSStreamingSessionURL.html
[Aws KVS 비디오 스트림 , 신호 전송 채널 차이점 설명 정리]
https://blog.naver.com/kkh0977/223854439046
[Aws Kvs HSL 비디오 스트림 녹화 영상 관련 학습 정리]
https://blog.naver.com/kkh0977/223855980812
[Aws KVS 비디오 스트림 및 신호 전송 채널 목록 확인 방법]
https://blog.naver.com/kkh0977/223864512412
[Aws STS 임시 보안 자격 증명 설명 정리]
https://blog.naver.com/kkh0977/223846461194
[Advanced Video Coding(H.264) 설명]
https://www.cloudflare.com/ko-kr/learning/video/what-is-h264-avc/
// --------------------------------------------------------------------------------------
반응형
'Aws (Amazon)' 카테고리의 다른 글
Comments