apple/HLS
[HLS] Event playlist construction
lgvv
2024. 12. 5. 01:04
Event playlist construction
https://developer.apple.com/documentation/http-live-streaming/event-playlist-construction
- 이벤트 세션 플레이리스트의 기본 구조에 대해 학습
목차
- Adding alternate media to a playlist
- Incorporating Ads into a Playlist
- Video on Demand playlist construction
- Event playlist construction
- Live Playlist (sliding window) construction
- HTTP Live Streaming Overview
- Creating a Multivariant Playlist
Overview
- 이벤트 플레이리스트는
EXT-X-PLAYLIST-TYPE
태그에 의해 EVENT 값으로 판별. - 처음에는
EXT-X-ENDLIST
태그가 없으므로 새 미디어 파일이 플레이리스트에 추가 됨.
Example
- 아래는 세션 시작시 이벤트 플레이리스트의 예시.
#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.00,
fileSequence0.ts
#EXTINF:10.0,
fileSequence1.ts
#EXTINF:10.0,
fileSequence2.ts
#EXTINF:10.0,
fileSequence3.ts
#EXTINF:10.0,
fileSequence4.ts
EXTM3U
- 재생 목록이 확장된 M3U 파일임을 나타냅니다.
EXT-X-PLAYLIST-TYPE
- 전체 플레이리스트에 적용되는 변경 가능성이 있는 정보를 제공하는 태그
- 해당 태그는 EVENT 또는 VOD 값 하나를 포함.
- 태그가 존재하고 EVENT 값을 가지면 서버는 플레이리스트 중 일부를 수정 및 삭제를 하면 안됨. (단, 새로운 라인을 추가 할 수 있음.)
- 태그가 존재하고 VOD 값을 가진 경우에는 플레이리스트 파일을 변경해선 안됨.
EXT-X-TARGET Duration
- 미디어 파일의 최대 duration 값
EXT-X-VERSION
- 재생 미디어 파일의 하위 호환성 버전.
EXT-X-MEDIA-SEQUENCE
- 재생 미디어 파일의 첫번째 URL 시퀀스.
- 시퀀스마다 해당 숫자는 1씩 증가하며, 파일 이름과는 무관.
EXTINF
- 뒤에 오는 URL로 표시되는 레코드 마커.
- 이 값은 전체 duration과 같거나 작아야 함.
- Important.
- 프로토콜 버전3 부터는 해당 값은 실수(float)값으로 지정.
- 반올림 시 오차를 줄이기 위함.
- EVENT 태그를 사용할 때 플레이리스트에서는 어떤 것도 제거할 수 없으며, 오로지 파일 끝에 새로운 세그먼트만 추가 가능.
- 새로운 세그먼트는 이벤트가 끝날 때까지 파일 끝에 추가되며, 이때
EXT-X-ENDLIST
태그가 추가됨. - 다음 예는 새 미디어 URI로 업데이트되고 이벤트가 끝난 후 동일한 재생 목록을 보여줌.
#EXTM3U #EXT-X-PLAYLIST-TYPE:EVENT #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:4 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:10.0, fileSequence0.ts #EXTINF:10.0, fileSequence1.ts #EXTINF:10.0, fileSequence2.ts #EXTINF:10.0, fileSequence3.ts #EXTINF:10.0, fileSequence4.ts
// List of files between 4 and 120 go here.
#EXTINF:10.0,
fileSequence120.ts
#EXTINF:10.0,
fileSequence121.ts
#EXT-X-ENDLIST
```
- 이벤트 플레이리스트는 일반적으로 사용자가 콘서트 또는 스포츠 이벤트와 같이 이벤트의 모든 지점을 검색할 수 있도록 허용할 때 사용.