HLS란 가장 널리 상요되는 비디오 스트리밍 프로토콜로써 비디오 파일을 다운로드할 수 있는 HTTP 파일 조각으로 나누고 HTTP 프로토콜l을 이용하여 전송하는 방식입니다. Client 장치는 이러한 HTTP 파일을 로드한 후 비디어로 재생합니다.

HTTP 프로토콜을 사용하다 보니 간단하게 실행할 수 있으며 적응 비트 전송률 스트리밍을 통한 재생에 지장을 주지 않고 네트워크 상태에 따라 비디오 품질을 높이거나 낮출 수 있습니다.

HLS 작동 방식

  1. 인코딩

비디오 데이터의 포맷을 다시 설정하여 모든 장치가 데이터를 인식하고 해설할 수 있게 합니다.

이때 인코딩을 H.264나 H.265을 사용합니다

<aside> 💡

H.265란? 2013년 4월에 발표된 MPEG-H Part.2 규격으로, 기존보다 압축 효율이 높아서 HEVC(High Efficiency Video Coding)라고도 한다. FourCC[1]는 HVC1 혹은 H265이다.

</aside>

  1. 조각화

비디오는 몇 초 길이의 세그먼트로 나뉘다. 세그먼트의 길이는 다양하지만 기본 길이는 6초입니다.

  1. 비디오를 세그먼트로 나누는 것과 더불어 HLS는 비디오 세그먼트의 인덱스 파일을 만들어 세그먼트의 순서를 기록합니다.
  2. HLS는 또한 480p, 720p, 1080p 등의 다양한 품질로 여러 세트의 세그먼트를 복제합니다.
  3. 배포

인코딩된 비디오 세그먼트는 클라이언트 장치가 스트리밍을 요청하면 인터넷을 통해 클라이언트 장치로 전송됩니다.

  1. 클라언트 장치

클라이언트 장치는 스트리밍을 받고 비디오를 재생하는 사용자의 장치입니다.

클라이언트는 파일을 참조하여 비디오를 순서대로 조합하고 필요에 따라 품질을 높이거나 낮춥니다.

TCP

HLS는 UDP가 아닌 TCP를 사용하는 프로토콜입니다.

이는 신뢰성과 효율성 때문으로 적응 비트 전송률 스트리밍에서 TCP의 데이터 전송이 느려질 경우 보상하는 데 도움을 줍니다.