HLS(HTTP Live Streaming)

HLS(HTTP Live Streaming)

HTTP 기반의 비디오 스트리밍 프로토콜로, 애플에서 개발했고 현재 가장 널리 사용돼요.

  • 라이브라는 이름이 있지만 VOD(주문형)라이브 스트리밍 둘 다 지원합니다.
  • 비디오 파일을 잘게 조각(세그먼트) 내서 HTTP로 전송하고,
    클라이언트가 조각들을 받아서 순서대로 재생합니다.

  1. HTTP 기반이라 웹 서버로 쉽게 배포 가능 (추가 장비 불필요)
  2. 모든 디바이스에서 재생 가능 (모바일, 데스크탑 등)
  3. 네트워크 상황에 따라 자동으로 화질 조절 (적응 비트 전송률)

  • 인코딩: 다양한 디바이스에서 재생 가능한 포맷(H.264/H.265)으로 변환
  • 세그먼트 분할: 비디오를 6초 정도 길이로 쪼갬
  • 인덱스 파일 생성: 어떤 순서로 세그먼트를 불러올지 기록
  • 여러 화질로 복제: 예) 480p, 720p, 1080p → 적응 비트 전송률용
  • 보통 CDN이 중간에서 빠르게 전달하고 캐시도 담당
  • 인덱스 파일을 보고 세그먼트를 순서대로 요청해서 재생
  • 네트워크에 따라 자동으로 품질 조절

네트워크 상태에 따라 스트리밍 화질을 실시간 조절하는 기능입니다.

  • 느려지면 저화질로 자동 전환해서 끊기지 않게 하고,
  • 좋아지면 고화질로 자동 업그레이드해줍니다.
  • HLS가 미리 다양한 화질로 세그먼트를 만들어 두기 때문에 가능해요.

대부분의 스트리밍 프로토콜은 빠른 전송을 위해 UDP를 쓰는데,
HLS는 신뢰성 있는 전송이 더 중요해서 TCP를 사용합니다.

  1. HTTP = TCP 기반이라 자연스럽게 따라감
  2. 실시간성이 아주 중요하지 않음 (몇 초 지연돼도 괜찮음)
  3. 인터넷 환경이 좋아져서 TCP 속도도 충분함
  4. 적응 비트 전송률이 끊김을 완화해줌

HLS는 HTTP 기반 스트리밍 프로토콜로, 비디오를 몇 초 단위로 쪼개서 전송하는 방식입니다. 모든 디바이스와 서버에서 HTTP를 쓰기 때문에 호환성과 배포가 좋고, 적응 비트 전송률 기능으로 네트워크 상태에 따라 자동 화질 조절이 가능합니다. 다른 프로토콜은 속도 때문에 UDP를 쓰지만, HLS는 HTTP 기반이라 TCP를 사용하고, 실시간성이 아주 중요하지 않기 때문에 문제가 되지 않습니다.

Related Content