HTTP 라이브 스트리밍이란 무엇입니까? | HLS 스트리밍

HLS(HTTP 라이브 스트리밍)은 널리 사용되고 있는 동영상 스트리밍 프로토콜로서 거의 모든 서버에서 작동할 수 있고 대부분의 장치가 지원합니다. HLS로 클라이언트 장치는 스트리밍 품질을 높이거나 낮춰서 변화하는 네트워크 상태에 완벽하게 맞출 수 있습니다.

Share facebook icon linkedin icon twitter icon email icon

HTTP 라이브 스트리밍

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • HLS(HTTP 라이브 스트리밍)의 정의를 알아보세요.
  • HLS의 작동 원리를 알아보세요.
  • 적응 비트 전송률 스트리밍의 장점을 알아보세요.

HLS(HTTP 라이브 스트리밍)란 무엇입니까?

HLS(HTTP 라이브 스트리밍)은 가장 널리 사용되는 비디오 스트리밍 프로토콜입니다. HTTP "라이브" 스트리밍이라 불리지만 주문형 스트리밍이자 동시에 라이브 스트리밍입니다. HLS는 비디오 파일을 다운로드할 수 있는 HTTP 파일 조각으로 나누고 HTTP 프로토콜을 이용하여 전송합니다. 클라이언트 장치는 이러한 HTTP 파일을 로드한 후 비디오로 재생합니다.

HLS의 장점 중 하나는 모든 인터넷 연결 장치가 HTTP를 지원하기 때문에 전용 서버가 필요한 스트리밍 프로토콜보다 간단하게 실행할 수 있다는 것입니다. 또 다른 장점은 HLS 스트리밍은 재생에 지장을 주지 않고 네트워크 상태에 따라 비디오 품질을 높이거나 낮출 수 있다는 것입니다. 이 때문에 사용자가 비디오를 보는 중에 품질이 나빠지거나 좋아질 수 있습니다. 이 기능은 "적응 비트 전송률 비디오 전송" 또는 "적응 비트 전송률 스트리밍"이라 알려져 있으며, 이 기능이 없으면 네트워크가 느려진 경우, 비디오 재생이 완전히 멈출 수 있습니다.

HLS는 Apple이 자사 제품에 사용하기 위해 개발했지만, 현재 다양한 장치에서 사용되고 있습니다.

스트리밍이란 무엇입니까?

스트리밍은 인터넷을 통해 사용자에게 비디오 및 오디오 미디어를 전달하는 방법입니다. 미디어 파일을 한 번에 모두 보내는 대신 한 번에 조금씩 지속적으로 사용자 장치에 보냅니다. 원 미디어 파일은 멀리 떨어진 곳에 저장되어 있거나 라이브 스트리밍의 경우 원격 카메라나 마이크를 이용하여 실시간으로 제작됩니다. 따라서 사용자의 장치가 먼저 모든 파일을 다운로드하지 않고 비디오 또는 오디오를 재생할 수 있습니다.

HTTP란 무엇입니까?

HTTP는 네트워크에 연결된 장치 사이에 정보를 전송하기 위한 애플리케이션 계층 프로토콜입니다. 일반적인 사용자가 액세스할 수 있는 모든 웹사이트와 애플리케이션은 HTTP에서 실행됩니다. HTTP를 통한 데이터 전송은 일반적으로 요청과 응답에 따라 이루어집니다. 거의 모든 HTTP 메시지는 요청이나 요청에 대한 응답입니다.

HTTP를 통한 스트리밍의 경우 표준 요청 응답 패턴이 적용되지 않습니다. 클라이언트와 서버 사이의 연결은 스트리밍 기간 동안 열려 있고 서버는 비디오 데이터를 클라이언트에 보내기 때문에 클라이언트는 비디오 데이터 세그먼트마다 요청하지 않아도 됩니다.

HLS는 어떻게 작동합니까?

서버: HLS 스트리밍은 미디어 파일이 저장된 서버(주문형 스트리밍의 경우)나 스트리밍이 제작된 서버(라이브 스트리밍의 경우)에서 시작됩니다. HLS는 HTTP에 기반하기 때문에 모든 일반 웹 서버에서 스트리밍을 시작할 수 있습니다.

서버에서 두 가지 주요 프로세스가 진행됩니다.

  1. 인코딩: 비디오 데이터의 포맷을 다시 설정하여 모든 장치가 데이터를 인식하고 해석할 수 있게 합니다. HLS 은 H.264나 H.265 인코딩을 사용해야 합니다.
  2. 조각화: 비디오는 몇 초 길이의 세그먼트로 나뉩니다. 세그먼트 길이는 다양하지만 기본 길이는 10초입니다.
    • 비디오를 세그먼트로 나누는 것과 더불어 HLS는 비디오 세그먼트의 인덱스 파일을 만들어 세그먼트의 순서를 기록합니다.
    • HLS는 또한 480p, 720p, 1080p 등의 다양한 품질로 여러 세트의 세그먼트를 복제합니다.

배포: 인코딩된 비디오 세그먼트는 클라이언트 장치가 스트리밍을 요청하면 인터넷을 통해 클라이언트 장치로 전송됩니다. 일반적으로 CDN(콘텐츠 전송 네트워크)이 여러 지역으로 스트리밍을 배포하는 데 도움을 줍니다. CDN도 스트리밍을 캐시하여 클라이언트에 더 신속히 전송할 수 있습니다.

클라이언트 장치: 클라이언트 장치는 스트리밍을 받고 비디오를 재생하는 사용자 스마트폰이나 노트북 같은 장치입니다. 클라이언트 장치는 인덱스 파일을 참조하여 비디오를 순서대로 조합하고 필요에 따라 품질을 높이거나 낮춥니다.

HLS에서 적응 비트 전송률이란 무엇입니?

다른 스트리밍 프로토콜에 비해 HLS가 가진 장점 중 하나는 적응 비트 전송률입니다. 이것은 네트워크 상태 변화에 따라 스트리밍 중 비디오 품질을 조정하는 능력입니다. 이를 통해 네트워크 상태가 나빠져도 비디오를 계속 재생할 수 있고, 반대로 네트워크가 지원할 수 있는 한계까지 비디오 품질을 극대화할 수도 있습니다.

네트워크가 느려지면 사용자의 비디오 플레이어가 이를 감지하고 적응 비트 전송률 스트리밍이 비디오 품질을 낮춰 비디오가 멈추지 않고 재생되게 합니다. 네트워크 대역을 더 많이 활용할 수 있게 되면 적응 비트 전송률이 비디오 품질을 높입니다.

조각화 프로세스 중 HLS가 다양한 품질로 스트리밍 세그먼트를 여러 개 복제하기 때문에 적응 비트 전송률이 가능합니다. 사용자의 비디오 플레이어는 비디오 재생 중 완벽하게 스트리밍을 전환할 수 있습니다.

HLS는 전송 프로토콜로 TCP와 UDP 중 어느 것을 사용합니까?

TCPUDP는 전송 프로토콜로서 인터넷을 통한 콘텐츠 전송을 담당합니다. TCP는 UDP보다 데이터 전송 신뢰성이 높지만 UDP는 전송 중 일부 데이터가 손실될 수 있지만 전송 속도가 훨씬 빠릅니다.

UDP가 빠르기 때문에 많은 스트리밍 프로토콜은 TCP 대신 UDP를 사용합니다. 하지만 HLS는 여러 가지 이유로 TCP를 사용합니다.

  1. HLS는 HTTP를 사용하면 HTTP 프로토콜은 TCP를 사용하도록 제작됐습니다(일부 예외 있음).
  2. 현대적인 인터넷은 스트리밍이 처음 개발됐을 때보다 신뢰성과 효율성이 높습니다. 오늘날 전 세계 많은 지역에서 모바일 연결을 중심으로 사용자 연결이 크게 개선됐습니다. 따라서 사용자는 모든 비디오 프레임 전송을 지원하는 충분한 대역을 갖고 있습니다.
  3. 적응 비트 전송률 스트리밍은 TCP의 데이터 전송이 느려질 경우 보상하는 데 도움을 줍니다.
  4. HLS 스트리밍은 화상 회의 연결처럼 "실시간"이지 않아도 됩니다. 몇 초 지연돼도 비디오 프레임이 손실된 것처럼 사용자 경험에 영향을 주지 않습니다.

스트리밍에 일반적으로 사용되는 다른 프로토콜에는 어떤 것이 있습니까?

HLS와 비슷한 프로토콜이 많이 있습니다. MPEG-DASH와 HDS도 HTTP 상에서 작동하며 적응 비트 전송률 스트리밍을 제공합니다. RTMP 프로토콜에서 작동하는 Adobe Flash는 비디오 스트리밍에 사용되는 대표적인 기술이었습니다. RTMP는 여전히 널리 사용되고 있지만 많은 브라우저들이 더 이상 Flash를 지원하지 않습니다.

Cloudflare는 HTTP 라이브 스트리밍을 지원합니까?

Cloudflare는 주문형 스트리밍과 라이브 스트리밍에 모두 HLS를 지원합니다. Cloudflare Stream은 비디오 스토리지, 인코딩, 사용자 지정 가능한 플레이어를 100개국 200개 도시에 걸쳐 있는 빠르고, 안전하고, 신뢰할 수 있는 Cloudflare 네트워크와 통합합니다. 이로서 전 세계 사용자는 빠르고 품질이 뛰어난 HLS 스트리밍을 받을 수 있습니다. Cloudflare Stream에 대해 자세히 알아보세요.