905. 멀티캐스트 오디오/비디오 스트리밍 프로토콜 (HLS HTTP Live Streaming) - 세그먼트 단편 파일 분할 + M3U8 인덱스 파일 전송 해상도 대역폭 자동 적응 스트리밍 기술

핵심 인사이트: 10년 전엔 1GB짜리 영화를 다 다운받을 때까지(MP4) 기다려야 볼 수 있었다. 애플(Apple)은 빡쳤다. "야! 영화 1개를 10초짜리 미니 동영상 조각(세그먼트) 10,000개로 무식하게 싹 다 가위질해 놔(단편화)! 그리고 폰에서 10초짜리 조각 하나 받을 때마다 바로바로 재생(스트리밍)시켜버려! 근데 폰이 와이파이 잡다 3G로 떨어져서 속도가 느려지면? 1080p 고화질 10초 조각 주는 거 멈추고, 즉시 480p 저화질 10초 조각으로 바꿔서 던져줘!" 영상이 뚝 끊기는 최악의 참사를 막고 깍두기 화질로라도 버티게 해주는 마법, 이것이 넷플릭스와 유튜브를 지배하는 HLS(적응형 스트리밍) 기술이다.

Ⅰ. 기존 스트리밍의 한계 (RTP/RTSP의 패배)

  • 과거 실시간 방송은 멀티캐스트 전용망과 RTP/UDP라는 특수 프로토콜을 썼습니다.
  • 문제점: 이 특수 프로토콜들은 회사 방화벽(80번 포트 외 차단)을 통과하지 못해 튕겨 나가기 일쑤였고, 스마트폰의 변덕스러운 무선 인터넷(LTE ➜ 3G) 속도 변화에 대처하지 못해 영상이 수시로 버퍼링 뺑뺑이를 돌며 멈췄습니다.

Ⅱ. HLS (HTTP Live Streaming)의 개념 🌟

  • 개념: 애플(Apple)이 개발한 프로토콜로, 거대한 비디오 파일을 잘게 쪼갠 뒤(Segmentation), 깐깐한 전용망 프로토콜 대신 웹서핑할 때 쓰는 가장 흔해 빠진 HTTP(80번 포트) 프로토콜에 태워서 클라이언트에게 끊김 없이 전달하는 적응형(Adaptive) 미디어 스트리밍 기술입니다.
  • 웹 페이지(HTML) 열리듯 동영상 조각이 배달되므로, 전 세계 어떤 깐깐한 방화벽이든, 어떤 구식 공유기든 100% 무사통과하는 무적의 호환성을 가집니다.

Ⅲ. HLS의 핵심 동작 원리 (가위질과 목차장부) 🌟

1. 비디오의 무자비한 가위질 (Segment 단편화)

  • 넷플릭스 서버는 원본 2시간짜리 영화를 딱 '10초(또는 2~6초)' 분량의 자잘한 .ts 확장자 미니 동영상 파일 수만 개로 잘라버립니다.
  • 해상도별 복제: 1080p(고화질) 10초 조각 1만 개, 720p(중화질) 1만 개, 480p(저화질) 1만 개 등 화질별로 세트를 수십 개 만들어 서버에 저장해 둡니다.

2. 마법의 목차 장부: M3U8 인덱스 파일 🌟

  • 동영상 조각이 10만 개나 널부러져 있으니, 폰은 어떤 조각부터 받아야 할지 모릅니다.
  • 서버는 스마트폰에게 가장 먼저 .m3u8 이라는 텍스트 파일(목차 장부) 한 장을 던져줍니다.
  • 이 장부에는 "고화질 1번 조각은 [URL A]에 있고, 중화질 1번 조각은 [URL B]에 있다!"라는 재생 목록 링크가 줄줄이 적혀 있습니다.

3. ABR (적응형 비트레이트, Adaptive Bitrate) 통신 마법 🌟

HLS가 세상을 지배한 이유입니다.

  • 스마트폰(클라이언트)이 장부를 보고 자신의 현재 인터넷 속도에 맞춰 화질을 지 스스로 골라먹습니다.
  • 처음엔 와이파이가 빵빵해서 [고화질 1번, 2번, 3번 조각]을 다운받아 선명하게 봅니다.
  • 갑자기 지하철을 타서 인터넷이 1/10로 느려졌습니다! 폰이 버퍼링이 걸릴 위기를 감지합니다.
  • 폰은 똑똑하게 목차 장부(M3U8)를 보고, 다음 4번 조각부터는 용량이 작은 [저화질 4번, 5번 조각] URL로 바꿔서 다운로드를 요청합니다.
  • 화면은 갑자기 깍두기 화질로 확 구려지지만, 버퍼링(멈춤)이라는 최악의 사태는 100% 방어해 내며 재생을 이어갑니다.

Ⅳ. 멀티캐스트와의 융합

  • 회사 내에서 직원 1,000명이 동시에 사장님 신년사 HLS 방송을 봅니다. 1,000명이 각각 10초짜리 조각을 달라고 요청하면 사내 인터넷망이 뻗습니다.
  • 이를 막기 위해 사내 라우터 단에서 똑같은 10초짜리 영상 패킷 조각을 멀티캐스트(IGMP)로 방송하여 한 번에 1,000명에게 동시에 뿌려주는 융합 솔루션이 기업망에 적용됩니다.

📢 섹션 요약 비유: 과거 스트리밍은 '2시간짜리 거대한 통돼지 바베큐(단일 영상 파일)'를 한 번에 입에 쑤셔 넣는 방식입니다. 목구멍(인터넷 속도)이 좁아지면 고기가 탁 막혀서 질식(버퍼링 멈춤)해 버립니다. **HLS(적응형 스트리밍)**는 통돼지를 한 입 크기의 '10초짜리 작은 큐브 고기(세그먼트 단편 파일)' 수만 개로 잘게 썰어놓은 뷔페식입니다. 폰(손님)은 메뉴판(M3U8 장부)을 쥐고 있습니다. 목구멍(인터넷)이 뻥 뚫려있을 땐 엄청 크고 두꺼운 특A급 고기(1080p 고화질 10초 조각)를 집어삼킵니다. 갑자기 목구멍이 붓고 좁아지면(인터넷 속도 저하), 손님은 질식(버퍼링)을 피하기 위해 재빨리 메뉴판을 보고 가장 작고 싼 찌그러진 고기(480p 저화질 조각)로 메뉴를 바꿔서 쏙쏙 집어먹습니다. 고기 맛(화질)은 뚝 떨어지지만 씹어 삼키는 흐름(재생) 자체는 절대 끊기지 않게 살려내는 극한의 생존 식사법입니다.