HLS과 DASH의 개념과 차이점

HLS와 DASH의 개념과 차이점

HLS vs DASH
참고: https://edgeone.ai/learning/hls-vs-dash

1) HLS (HTTP Live Streaming)

1-1. 정의

  • Apple이 개발한 HTTP 기반 적응형 스트리밍(ABR) 프로토콜

1-2. 특징

  • ABR(Adaptive Bitrate) 지원
  • 전송은 HTTP/TCP 기반

1-3. 작동 방식 (Master Playlist → Media Playlist → Segment)

  1. 플레이어는 Master Playlist(.m3u8)를 가져온다.
  2. Master에 있는 Variant Stream(품질 후보) 중 하나를 선택한다.
  3. 선택된 Variant가 가리키는 Media Playlist(.m3u8)를 가져온다.
  4. Media Playlist에 나열된 Segment를 순서대로 다운로드하여 재생한다.
  5. LIVE일 경우 playlist를 주기적으로 재요청(reload)해서 새 세그먼트를 따라간다.

1-4. 구성 요소 (핵심 구조: .m3u8 과 Segment의 관계)

(A) Playlist: .m3u8
  • Master Playlist (Variant 선택)
    • 여러 품질(예: 360p/480p/720p …)의 Variant 목록 포함
    • 각 Variant는 “해당 품질의 Media Playlist URL”을 가리킴
  • Media Playlist (Segment 목록)
    • 각 Segment의 재생 길이와 Segment URI가 순서대로 나열됨
    • LIVE일 경우 계속 갱신되며, 플레이어는 이를 재요청해서 따라감

비유: Master Playlist = 메뉴판(품질별 코스), Media Playlist = 선택한 코스의 요리 순서표(세그먼트 목록)

(B) Media Segment
  • .ts (전통적)
    • MPEG-2 TS 기반 세그먼트
  • .m4s (CMAF 기반, fMP4 계열)
    • HLS도 fMP4/CMAF 세그먼트 사용 가능
    • 보통 초기화 구간(init)을 별도로 두며, HLS에서는 EXT-X-MAP 등으로 연결함

1-5. ABR(화질 자동 조정)

  • 플레이어가 다운로드 속도/버퍼량/리버퍼링 위험을 계산하여 다음 세그먼트 요청 전에 더 안정적인 Variant로 전환
  • 전환 단위는 보통 세그먼트 경계

2) DASH (Dynamic Adaptive Streaming over HTTP, MPEG-DASH)

2-1. 정의

  • ISO/IEC 국제 표준(MPEG-DASH) 기반의 HTTP 적응형 스트리밍 기술

2-2. 특징

  • HTTP/TCP 기반
  • 다양한 코덱/디바이스/플레이어 생태계에서 활용

2-3. 작동 방식 (MPD → Representation → Segment)

  1. 플레이어는 MPD(Manifest, .mpd)를 가져온다.
  2. MPD를 파싱하여 트랙/품질 정보를 해석하고, 각 트랙에서 적절한 Representation을 선택한다.
  3. 선택된 Representation의 주소 규칙(또는 목록)에 따라 Segment(.m4s)를 순차 다운로드하여 재생한다.

2-4. 구성 요소

(A) MPD (.mpd)
  • Period: 시간 구간(라이브/광고/챕터 등으로 분할 가능)
  • AdaptationSet: 트랙 묶음(비디오/오디오/자막 등)
  • Representation: 같은 트랙 내의 품질 버전(예: 240p/480p/1080p)
(B) Segment (.m4s 중심, fMP4)
  • Initialization Segment: 코덱 설정/트랙 메타데이터 등 디코더 준비물
  • Media Segment(.m4s): 실제 재생 데이터 조각
  • MPD에서 세그먼트 주소를 제공하는 방식 예:
    • SegmentList: 세그먼트 URL을 목록으로 제공
    • SegmentTemplate: seg_$Number$.m4s 같은 패턴 + duration/timeline로 URL 생성

2-5. ABR(화질 자동 조정)

  • 같은 AdaptationSet(예: 비디오) 안에서 Representation을 교체하는 것이 ABR
  • 전환 단위는 보통 세그먼트 경계

3) HLS vs DASH 차이점

구분 HLS DASH(MPEG-DASH)
Standard Apple 주도(사양은 IETF RFC 문서로 정리됨) ISO/IEC 국제 표준
manifest .m3u8 (텍스트 플레이리스트: Master/Media 분리) .mpd (XML: Period/AdaptationSet/Representation 계층)
Segment Container 전통: .ts, 현대: fMP4/CMAF(.m4s)도 가능 주로 fMP4(.m4s) 기반 (init + media segments)
ABR 보통 세그먼트 경계에서 Variant(Media Playlist) 전환 보통 세그먼트 경계에서 Representation 전환
브라우저/플랫폼 Safari/iOS에서 네이티브 지원이 강한 편 브라우저에서는 보통 MSE 기반 플레이어(dash.js 등)로 재생
실무 CMAF(fMP4) 세그먼트를 공용으로 두고, HLS는 m3u8 / DASH는 mpd를 따로 제공하는 방식이 흔함

3-1. 실무 선택 

  • iOS/Safari 네이티브 호환이 필수면: HLS는 사실상 필수 축
  • 표준 기반/플레이어 생태계/확장성 중심이면: DASH 채택이 자연스러움
  • 대부분 서비스는 CMAF 세그먼트 공용 + (m3u8, mpd) 동시 제공으로 양쪽 커버
Reference
  • DASH MPD Example - https://docs.aws.amazon.com/mediatailor/latest/ug/manifest-dash-example.html
  • MPEG-DASH (Dynamic Adaptive Streaming over HTTP) - https://bitmovin.com/blog/dynamic-adaptive-streaming-http-mpeg-dash/
  • ISO/IEC 23009-1:2022 - https://www.iso.org/standard/83314.html
  • DASH-IF implementation guidelines: restricted timing model - https://dashif.org/Guidelines-TimingModel/
  • Structure of a MPEG-DASH MPD - https://ottverse.com/structure-of-an-mpeg-dash-mpd

댓글

이 블로그의 인기 게시물

[보안] CA인증서, 서버인증서, 클라이언트 인증서와 Openssl

HTTP/HTTPS 프로토콜의 개념과 작동 원리 (WireShark)

TCP/UDP 통신 방식 (WireShark)