Skip to main content

HLS

HLS(HTTP Live Streaming)이란, HTTP 프로토콜 위에서 오디오 또는 비디오와 같은 콘텐츠를 전송하는 프로토콜이다.

HLS는 다음과 같은 특징을 가진다.

  • 라이브 스트리밍이나, VOD(Video On Demand)에 사용될 수 있다.
  • 라이브 스트리밍의 경우, 캡처된 비디오 데이터가 실시간으로 세그먼트로 변환되고, 클라이언트는 이 세그먼트를 다운로드 함으로써 시청할 수 있게 된다.
  • 여러 적응형 비트레이트 스트리밍을 통해 클라이언트는 네트워크 속도에 맞게 속도나 품질을 정할 수 있다.

이는 WebSocket과 함께 사용 돼, WebSocket에서 클라이언트와의 상호작용 등을 처리하고, HLS에서 비디오 스트리밍을 처리하는 방식으로, 라이브 스트리밍 서비스를 개발할 수 있다.


Encode and deliver stream media

hls

위 그림을 살펴보면 다음과 같다.

  1. 오디오 또는 비디오 입력을 받고, 각각 AC-3(오디오), HEVC(비디오) 포맷으로 인코딩 한다.
  2. 인코딩 된 데이터를 fragmented MPEG-4 또는 MPEG-2 transport stream으로 출력한다.
  3. 서버에서 Stream Segmenter가 인코딩 된 짧은 미디어 파일들을 작게 분할한다.
  4. 미디어 파일들이 웹 서버를 통해 클라이언트로 전달된다.
  5. 각 세그먼트들은 인덱스가 있어, 클라이언트는 순서대로 요청한 다음 연속적으로 표시해 세그먼트 간의 간격이 없도록 한다.

이러한 과정이 인덱스 파일의 EXT-X-ENDLIST 태그를 전달받을 때까지 계속 지속된다.

Related Links