반응형
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
반응형
'# 미디어 [Media]' 카테고리의 다른 글
[📼 미디어] 약어 정리 (0) | 2024.12.13 |
---|---|
[📼 미디어] 📚 용어 정리 (0) | 2024.11.11 |
댓글