본문 바로가기

미디어서버(Nginx RTMP)

미디어 서버의 종류

미디어 서버를 선정하려면 가장 먼저 고려할 부분은 스트리밍 서버의 타입이다.

 

과거에는 전통적인 스트리밍 서버 - 플레이어 형태의 서비스를 제공했다면

이제는 스트리밍 서버를 굳이 사용하지 않고 웹서버를 가용하고 웹 프로토콜(http)만으로도 Streaming을 하는것처럼 보이게 하는 "Pseudo-Streaming" 방식까지 두가지가 있다.

**pseudo : 가짜, ~인 것 처럼 보이는 

pseudo-streaming :  HTTP 서버(Apache, IIS, nginX) 등을 이용하여 다운로드 방식으로 파일을 전송하면서 재생하는 방식

 

  • Legacy Streaming 서버 : Wowza, Red5 등
  • Pseudo-Streaming 서버 : Apache, NginX 등

특징은 이러하다. 

  Legacy Streaming Server Pseudo-Streaming Server
트랜스코딩 내장 직접 구축
보안, 인증
비용 비싸다 대부분 무료
대역폭 제어 내장 직접 구축

 

트랜스 코딩

Legacy 같은 경우, 미디어파일을 디코딩 후 재압축해주는 과정인 트랜스코딩이 서버를 설치하기만 하면 가능하도록 설계되어있다. 하지만 웹 서버를 사용하여 pseudo-streaming을 하려면 트랜스코딩을 직접 구현해줘야 한다.

--> 인코딩 라이브러리들(ffmpeg)를 활용하여 트랜스코딩 가능

 

보안

Legacy Streaming 서버를 통해 스트리밍 서비스를 받으면 콘텐츠의 주소는

ㆍHLS → HTTP://abc.com/sample.mp4/playlist.m3u8
RTMP → RTMP://abc.com/sample.mp4
RTSP → RTSP://abc.com/sample.mp4

등으로 만들어지게 되는데, 스트리밍 서버를 사용하면 콘텐츠를 보호할 수 있는 1차 장치가 이미 갖추어진 상태에서 시작할 수 있다는 점이 특징이다.

HLS의 경우는 http://로 시작되어 다운로드 받을 수 있을것 같지만, 실제 다운로드를 하면 index파일이 다운로드 되어 실제 동영상의 주소는 알 수가 없다.

 

Pseudo-Streaming 은 Http 통신을 기반으로 이루어지기 때문에 보안에 신경을 쓰지 않게 되면 동영상을 마음대로 받을 수 있게되고, 보안장치가 없이 무분별하게 동영상이 다운받게 되면 서버에 과도한 트래픽 발생, 동영상 보안에도 문제가 생기기 때문에 꼭 따로 보안적업을 진행해야한다.

보통 One-time-url이나 다른 보안방식을 활용하는데, 이러한 보안을 유지하려는 과정에서 또 cpu를 사용하게 되고 트랜스코딩 자체로도 cpu 사용량이 많기 때문에 잘 조절해주어서 로직을 구성해야한다.

 

비용

Pseudo-Streaming Server인 웹서버를 이용하는 가장 큰 이유로

Wowza의 경우 한달 비용이 최소 30만원을 웃돈다.

웹서버는 대부분 무료이고, 미디어 서비스용 프로토콜 모듈만 달아주면 된다.

물론 성능은 Legacy가 훨씬 좋다.

 

대역폭 제어

대역폭 제어란 쉽게 말해서 클라이언트 다수가 동시에 Live Streaming을 시청하려고 접속했을 때 모두에게 버퍼링이 걸리지 않도록 클라이언트가 많아진다면 대역폭을 나눠줘서 접속한 클라이언트들에게 균등하게 데이터들이 전송되도록 하는 것이다. 

Legacy 서버는 설계될 때부터 클라이언트들이 증가했을 때 그에 맞춰 대역폭이 제어되도록 설계되었지만

웹 서버(Pseudo)는 기본적으로 빠르고, 한꺼번에, 많이 전송되도록 설계되고, 그에맞춰 발전되어왔다.

그래서 웹 서버를 미디어서버로 사용하기 위해서는 대역폭에 대한 컨트롤도 해줘야한다.