적응형 비트레이트 스트리밍(Adaptive Bitrate Streaming) 프로토콜
공통 구조 요약
구성요소 | 설명 |
Manifest (플레이리스트) | 어떤 세그먼트들이 있는지 정의한 메타파일. 예: .m3u8, .mpd |
Segment (세그먼트) | 실제 미디어 데이터 (영상/음성). 일반적으로 짧은 시간 단위로 나눔 (예: 4~10초) |
적응형 스트리밍 동작방식
개념 : "같은 시점"의 영상에 대해 서로 다른 비트레이트 버전의 세그먼트들이 존재하고, 네트워크 상태에 따라 클라이언트가 선택해서 요청하는 방식이에요.
세그먼트 구조 (Sequence 번호는 동일, 비트레이트별로 따로 존재)
예를 들어, 다음과 같이 여러 화질 버전이 있을 수 있어요:
비트레이트 | 세그먼트 이름 (예시) |
240p (300kbps) | chunk_001_240.m4s, chunk_002_240.m4s |
480p (800kbps) | chunk_001_480.m4s, chunk_002_480.m4s |
1080p (3000kbps) | chunk_001_1080.m4s, chunk_002_1080.m4s |
적응형 스트리밍 구조 예시 (DASH 기준)
- 클라이언트 → .mpd 요청
- 클라이언트 → 초기화 세그먼트 요청 (init)
- 클라이언트 → 비트레이트에 맞는 .m4s 세그먼트 요청
- 네트워크 상태에 따라 다른 비트레이트의 세그먼트로 전환
구현방식
- JavaScript 기반 플레이어(hls.js, dash.js 등)는 manifest 파일에 정의된 규칙만 따름
- ABR 전환을 위해 Manifest 파일을 "다시 받는" 게 아니라, 이미 받아온 Manifest 내의 트랙들(Representation)을 바꾸는 것일 뿐이에요.
'개발기술 > 영상처리' 카테고리의 다른 글
HLS 프로토콜 튜닝 (0) | 2025.03.30 |
---|---|
Encoding, Decoding, Frames 개념 (0) | 2025.03.30 |
영상 스트리밍 처리과정 (0) | 2025.03.26 |
영상처리 인터페이스 및 프로토콜 개략 (0) | 2025.03.13 |