HLS
HLS(HTTP Live Streaming)이란, HTTP 프로토콜 위에서 오디오 또는 비디오와 같은 콘텐츠를 전송하는 프로토콜이다.
HLS는 다음과 같은 특징을 가진다.
- 라이브 스트리밍이나, VOD(Video On Demand)에 사용될 수 있다.
- 라이브 스트리밍의 경우, 캡처된 비디오 데이터가 실시간으로 세그먼트로 변환되고, 클라이언트는 이 세그먼트를 다운로드 함으로써 시청할 수 있게 된다.
- 여러 적응형 비트레이트 스트리밍을 통해 클라이언트는 네트워크 속도에 맞게 속도나 품질을 정할 수 있다.
이는 WebSocket과 함께 사용 돼, WebSocket에서 클라이언트와의 상호작용 등을 처리하고, HLS에서 비디오 스트리밍을 처리하는 방식으로, 라이브 스트리밍 서비스를 개발할 수 있다.
Encode and deliver stream media
위 그림을 살펴보면 다음과 같다.
- 오디오 또는 비디오 입력 을 받고, 각각
AC-3
(오디오),HEVC
(비디오) 포맷으로 인코딩 한다. - 인코딩 된 데이터를
fragmented MPEG-4
또는MPEG-2 transport stream
으로 출력한다. - 서버에서 Stream Segmenter가 인코딩 된 짧은 미디어 파일들을 작게 분할한다.
- 미디어 파일들이 웹 서버를 통해 클라이언트로 전달된다.
- 각 세그먼트들은 인덱스가 있어, 클라이언트는 순서대로 요청한 다음 연속적으로 표시해 세그먼트 간의 간격이 없도록 한다.
이러한 과정이 인덱스 파일의 EXT-X-ENDLIST
태그를 전달받을 때까지 계속 지속된다.