A 미디어 서버는 요청하는 클라이언트에 비디오 및 오디오 콘텐츠를 제공합니다. 이 용어는 이러한 기능을 수행하는 소프트웨어 애플리케이션과 미디어 서버 소프트웨어를 실행하는 호스트를 모두 지칭합니다.

미디어 서버의 가장 일반적인 용도는 아마도 주문형 비디오(VOD)를 제공하는 것일 것입니다. VOD에서는 미디어 서버가 저장소에서 사전 녹화된 비디오 콘텐츠를 가져와 인터넷을 통해 전송합니다. 가장 단순한 경우에는 비디오 파일이 웹 페이지에 삽입되고 페이지의 다른 구성 요소와 동일한 호스트에 저장됩니다. 하지만 VOD의 가장 일반적인 사용 사례는 Netflix, Amazon, Hulu와 같은 구독 서비스일 것입니다. 이러한 서비스에서는 전 세계에 위치한 미디어 서버가 콘텐츠 전송 네트워크(CDN)를 통해 수백만 명의 고객에게 비디오를 제공합니다. 아래에서 자세히 설명하겠지만 VOD에는 여러 가지 기술이 있으며, 미디어 서버는 지원하는 비디오 플레이어의 종류에 따라 이러한 기술 중 일부 또는 전부를 지원해야 합니다.

라이브 스트리밍은 미디어 스트리밍 서버의 활용 방식 중 갈수록 인기를 얻고 있는 또 다른 방식입니다. 이 경우 미디어 서버는 콘텐츠가 실시간으로 생성되는 즉시(또는 약간의 지연만 두고) 전송합니다. 유료 시청 방식의 스포츠 경기가 라이브 스트리밍의 한 예입니다. VOD와 달리 라이브 스트리밍에서는 콘텐츠 제공자가 사용자의 동영상 시청 시점을 결정합니다(방송 TV와 마찬가지입니다). 라이브 스트림을 녹화해 두었다가 나중에 VOD로 이용할 수도 있습니다.

다양한 VOD 기술 지원

동영상 전송 기법은 플레이어가 재생을 제어할 수 있는 정도에 따라 상당히 다양합니다. 여기서는 정교함이 높아지는 순서대로 나열합니다:

  • 파일 다운로드 – 동영상이 하나의 파일로 제공되며, 미디어 서버에서 플레이어로 전체 파일이 다운로드될 때까지 재생을 시작할 수 없습니다.
  • 프로그레시브 다운로드 – 비디오는 하나의 파일로 구성되지만, 파일 시작 부분의 메타데이터 덕분에 메타데이터와 소량의 비디오 데이터가 다운로드되는 즉시 재생을 시작할 수 있습니다. 비디오가 재생되는 동안에도 백그라운드에서 다운로드가 계속됩니다.
  • 의사 스트리밍(Pseudo-streaming) – 플레이어는 비디오 데이터를 저장 장치에 다운로드하는 대신 버퍼링하여 재생합니다. 플레이어는 요청할 비디오 구간의 시작 및 종료 시간을 지정할 수 있으며, 미디어 서버(현재는 흔히 스트리밍 미디어 서버라고 함)는 미디어 파일에서 해당 부분을 가져와 전송(“스트리밍”)합니다. 따라서 사용자는 비디오가 스트리밍되는 동안 빨리 감기나 되감기를 하거나 원하는 구간으로 건너뛸 수도 있습니다. Flash와 MP4는 의사 스트리밍에 널리 사용되는 형식입니다.
  • 적응형 비트레이트 스트리밍 – 미디어 파일을 여러 개의 작은 파일로 분할하고 각 세그먼트의 목차 역할을 하는 재생 목록을 생성하므로, 사용자가 동영상의 원하는 부분으로 훨씬 쉽게 이동할 수 있습니다. 또한 콘텐츠 제공업체는 다양한 수준의 음질과 화질을 제공하기 위해 서로 다른 비트레이트로 인코딩된 여러 버전의 동영상을 만들 수 있습니다. 플레이어는 적절한 비트레이트로 인코딩된 세그먼트를 요청함으로써 변화하는 네트워크 상태에 맞춰 버전 간에 원활하게 전환할 수 있습니다. 적응형 비트레이트 스트리밍에 널리 사용되는 인코딩 방식으로는 Apple의 HTTP Live Streaming(HLS)과 Adobe의 HTTP Dynamic Streaming(HDS)이 있습니다.

NGINX Plus는 어떻게 도움이 되나요?

NGINX Plus와 NGINX는 Dropbox, Netflix, Zynga와 같이 트래픽이 많은 웹사이트에서 사용하는 업계 최고의 미디어 서버 솔루션입니다. 전 세계 3억 5천만 개 이상의 웹사이트가 콘텐츠를 빠르고 안정적이며 안전하게 제공하기 위해 NGINX Plus와 NGINX Open Source를 사용하고 있습니다.

NGINX Plus는 이 문서에서 설명하는 모든 기술, 형식 및 인코딩을 지원하며, 여기에는 VOD용 Flash, MP4, HLS 및 HDS가 포함됩니다. HLS의 경우 세그먼트와 재생 목록이 아직 없으면 동적으로 생성할 수도 있습니다. 라이브 스트리밍의 경우 NGINX Plus는 Adobe의 RTMP(Real Time Messaging Protocol), HLS 및 DASH(Dynamic Adaptive Streaming over HTTP)를 지원합니다.

미디어 전송만을 목적으로 하며 그 기능에 국한된 일부 미디어 서버와 달리, NGINX Plus는 리버스 프록시, 고급 부하 분산, 캐싱, 웹 서비스 기능과 스트리밍 미디어를 위해 특별히 설계된 기능을 함께 제공하는 종합적인 애플리케이션 전송 플랫폼입니다.

NGINX Plus의 미디어 스트리밍 기능과 구성 방법에 대한 자세한 내용은 백서 NGINX Plus를 활용한 미디어 제공을 참조하세요.