Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

부록 A. m3u8 태그 레퍼런스

본문에서 다룬 m3u8 태그를 한 페이지에서 조회할 수 있도록 정리했다.

각 태그가 등장한 본문 위치도 함께 표기했다.


A.1 기본 태그 (Basic)

태그의미본문
#EXTM3Uplaylist 시작 표식3.3
#EXT-X-VERSION최소 프로토콜 버전3.4.1

A.2 Media Segment 태그

각 segment에 적용되는 태그.

태그의미본문
#EXTINFsegment 길이 + URI3.4.4
#EXT-X-BYTERANGE파일 내 바이트 범위3.4.6
#EXT-X-DISCONTINUITY시퀀스 불연속3.5.3
#EXT-X-KEY암호화 키 정보9.2
#EXT-X-MAPInitialization Segment3.4.5
#EXT-X-PROGRAM-DATE-TIME실제 시각 매핑

A.3 Media Playlist 태그

playlist 전체에 적용되는 태그.

태그의미본문
#EXT-X-TARGETDURATIONsegment 최대 길이3.4.2
#EXT-X-MEDIA-SEQUENCE첫 segment 번호3.4.3
#EXT-X-PLAYLIST-TYPEVOD / EVENT3.5.1
#EXT-X-ENDLISTplaylist 종료3.5.2
#EXT-X-I-FRAMES-ONLYI-Frame만 있는 playlist
#EXT-X-INDEPENDENT-SEGMENTS모든 segment 독립 디코딩3.3.5
#EXT-X-START재생 시작 위치

A.4 Master Playlist 태그

여러 variant를 묶는 playlist 전용 태그.

태그의미본문
#EXT-X-STREAM-INFvariant 정의3.3.1
#EXT-X-MEDIA대체 렌디션 (오디오/자막)3.3.2
#EXT-X-I-FRAME-STREAM-INFI-Frame 전용 playlist3.3.4
#EXT-X-SESSION-DATA세션 메타데이터
#EXT-X-SESSION-KEY세션 레벨 키

A.5 LL-HLS 태그

Low-Latency HLS 전용 태그.

태그의미본문
#EXT-X-PARTpartial segment 정의6.3.2
#EXT-X-PART-INFpart 기본 길이6.3.3
#EXT-X-SERVER-CONTROLblocking reload 등 서버 기능6.4.1
#EXT-X-PRELOAD-HINT다음 part 미리 알림6.5.1
#EXT-X-RENDITION-REPORT다른 화질 상태 알림6.5.2
#EXT-X-SKIPskip된 segment 정보

A.6 자주 쓰는 속성 모음

EXT-X-STREAM-INF

속성예시의미
BANDWIDTH5000000최대 bps
AVERAGE-BANDWIDTH4800000평균 bps
RESOLUTION1920x1080해상도
CODECS“avc1.640028,mp4a.40.2”코덱 식별
FRAME-RATE30.000fps
HDCP-LEVELNONE / TYPE-0 / TYPE-1출력 보호
VIDEO-RANGESDR / PQ / HLG색공간
AUDIO“aud1”오디오 그룹
SUBTITLES“sub1”자막 그룹

EXT-X-MEDIA

속성예시의미
TYPEAUDIO트랙 종류
GROUP-ID“aud1”그룹 식별자
NAME“Korean”표시명
LANGUAGE“ko”언어 (BCP 47)
DEFAULTYES / NO기본 선택
AUTOSELECTYES / NO자동 선택 가능
FORCEDYES / NO강제 선택 (자막)
CHANNELS“2”오디오 채널 수
URI“audio/ko.m3u8”playlist 위치

EXT-X-KEY

속성예시의미
METHODAES-128 / SAMPLE-AES / NONE암호화 방식
URI“https://…/key”키 위치
IV0x…초기 벡터
KEYFORMAT“identity” / “com.apple.streamingkeydelivery” 등DRM 식별
KEYFORMATVERSIONS“1”포맷 버전

EXT-X-PART

속성예시의미
URI“seg.0.m4s”part 위치
DURATION0.200part 길이 (초)
INDEPENDENTYES / NO독립 디코딩 가능 여부
BYTERANGE“1000@0”바이트 범위
GAPYES누락 표시

EXT-X-SERVER-CONTROL

속성예시의미
CAN-BLOCK-RELOADYESblocking reload 지원
HOLD-BACK6.0최전선 거리 (초)
PART-HOLD-BACK0.6part 단위 최전선 거리
CAN-SKIP-UNTIL12.0skip 기능 활성 임계값
CAN-SKIP-DATERANGESYESDATERANGE도 skip 가능

A.7 한눈에 보는 전체 흐름

[Master Playlist]
  #EXTM3U
  #EXT-X-VERSION
  #EXT-X-INDEPENDENT-SEGMENTS
  #EXT-X-MEDIA          (오디오/자막)
  #EXT-X-STREAM-INF     (각 화질)
  #EXT-X-I-FRAME-STREAM-INF (탐색용)

[Media Playlist]
  #EXTM3U
  #EXT-X-VERSION
  #EXT-X-TARGETDURATION
  #EXT-X-MEDIA-SEQUENCE
  #EXT-X-PLAYLIST-TYPE  (VOD / EVENT)
  #EXT-X-MAP            (fMP4)
  #EXT-X-KEY            (암호화)
  #EXT-X-SERVER-CONTROL (LL-HLS)
  #EXT-X-PART-INF       (LL-HLS)

  #EXT-X-PART (LL-HLS)
  #EXTINF + segment URI
  #EXT-X-DISCONTINUITY (필요 시)

  #EXT-X-PRELOAD-HINT (LL-HLS, 끝부분)
  #EXT-X-RENDITION-REPORT (LL-HLS)

  #EXT-X-ENDLIST (VOD/종료)

A.8 명세 위치

  • HLS 공식 명세: RFC 8216 (HLS Protocol) https://datatracker.ietf.org/doc/html/rfc8216
  • LL-HLS 확장: HLS 명세에 통합됨 (2nd Edition draft 등)
  • Apple의 공식 문서: https://developer.apple.com/streaming/

각 태그의 모든 속성과 제약은 원본 명세를 확인하는 것이 가장 정확하다.