반응형
HLS (HTTP Live Streaming)에서 사용하는 m3u8 파일 구조에 대한 설명은 아래의 도표와 같습니다.
지시어 | 형식 | 예제 | 설명 |
#EXTM3U | #EXTM3U | #EXTM3U | 파일의 최상 단 가장 첫 줄에 명시하며 해당 파일이 m3u8 포멧임을 명시하는 지시어입니다. |
#EXT-X-ENDLIST |
#EXT-X-ENDLIST | #EXT-X-ENDLIST | 플레이 리스트에서 재생할 콘텐츠가 더 이상 존재하지 않는 경우에 명시하는 지시어입니다. 해당 지시어가 명시 된 이후의 내용들은 무시합니다. |
#EXTINF |
#EXTINF: <재생 시간:초>,<제목> | #EXTINF:10.0, segment0.ts | 세그먼트의 재생 시간과 이름을 명시하는 지시어입니다. |
#EXT-X-VERSION |
#EXT-X-VERSION: <HLS 프로토콜 버전> | #EXT-X-VERSION:4 | HLS 프로토콜 버전을 명시하는 지시어입니다. |
#EXT-X-TARGETDURATION | #EXT-X-TARGETDURATION: <시간: 초> | #EXT-X-TARGETDURATION:10 | 각 세그먼트 파일의 최대 재생 시간을 명시하는 지시어입니다. |
#EXT-X-MEDIA-SEQUENCE | #EXT-X-MEDIA-SEQUENCE: <첫 파일의 일련번호> | #EXT-X-MEDIA-SEQUENCE:0 | 가장 먼서 실행이 되어야하는 세그먼트 파일의 일련번호를 명시하는 지시어입니다. |
#EXT-X-KEY |
#EXT-X-KEY: <encrypt method>,<key>,<IV> |
#EXT-X-KEY:METHOD=AES-128, URI="https://example.com/key.key", IV=0x123456789ABCDEF0123456789ABCDEF0 |
암호화 된 세그먼트 파일을 복호화 작업에 필요한 암호화 정보를 명시하는 지시어입니다. |
#EXT-X-DISCONTINUITY |
#EXT-X-DISCONTINUITY | #EXT-X-DISCONTINUITY | 해당 지시어가 선언 된 줄을 기준으로 이전 줄과의 재생하는 컨텐츠의 정보가 변경되었음을 표시하는 지시어입니다. 예를 들어 이전 콘텐츠와 이후 콘텐츠의 파일 포맷, 파일이 갖고 있는 미디어 트랙의 개수, 인코딩 정보, 재생 시간 정보 등이 변경되면 이 지시어를 플레이리스트에서 정보가 바뀌는 파일 사이에 명시하여 플레이어가 새로운 정보를 사용해야 하는 시점을 알려 주는 용도로 사용합니다. |
#EXT-X-STREAM-INF |
#EXT-X-STREAM-INF | #EXT-X-STREAM-INF:BANDWIDTH=800000, RESOLUTION=640x360, CODECS="avc1.4d401f,mp4a.40.2" low.m3u8 |
하나의 영상을 여러 화질 옵션으로 제공하기 위한 태그 정보를 표시하는 지시어입니다. |
#EXT-X-KEY에 대한 Methods Defined 정보는 아래와 같습니다.
- NONE: 암호화 작업을 수행하지 않습니다.
- AES-128: AES-128 암호화 사용합니다.
- SAMPLE-AES: 샘플 기반 AES 암호화 사용합니다.
#EXT-X-STREAM-INF에 대한 태그 정보는 아래와 같습니다.
- PROGRAM-ID: 플레이 리스트 파일에 있는 콘텐츠가 갖는 고유 값 정보
- CODEC: 해당 콘텐츠에 적용된 코덱 정보
- RESOLUTION: 해상도 정보
- AVERAGE-BANDWIDTH: 평균 대역폭 정보 [Bits Per Second]
- BANDWIDTH: 최대 대역폭 정보 [Bits Per Second]
- FRAME-RATE: 프레임 속도 정보
- HDCP-LEVEL: HDCP (High-bandwidth Digital Content Protection) 보호 수준 정보
🚀 REFERENCE
더보기
RFC 8216: HTTP Live Streaming
This document describes a protocol for transferring unbounded streams of multimedia data. It specifies the data format of the files and the actions to be taken by the server (sender) and the clients (receivers) of the streams. It describes version 7 of thi
datatracker.ietf.org
HTTP Live Streaming (HLS) - Apple Developer
Find presentations, documentation, sample code, and development resources for using HTTP Live Streaming (HLS).
developer.apple.com
반응형
'# 미디어 [Media]' 카테고리의 다른 글
[📼 미디어] 약어 정리 (0) | 2024.12.13 |
---|---|
[📼 미디어] 📚 용어 정리 (0) | 2024.11.11 |
댓글