개발하는 두더지

실시간 동영상 스트리밍 프로토콜 종류 본문

공유

실시간 동영상 스트리밍 프로토콜 종류

덜지 2017. 12. 6. 10:33

실시간 동영상 스트리밍 프로토콜 종류



Progressive Download


  • HTTP 프로토콜을 사용하여 미디어 파일을 서버에서 클라이언트로 보내며 재생하는 스트리밍 방식
  • 현재 사내 스트리밍 DRM 서비스는 Progressive Download 방식을 이용함
  • 미디어 플레이어는 동영상 파일의 헤더에 위치한 메타데이터에 의존하여 재생을 하므로 moov의 영향을 받음
    moov 헤더 이동방법(http://duzi077.tistory.com/118)
  • 구현이 쉽지만 파일을 네트워크 사용량이 크다. 시청한 만큼의 데이터가 나가는 것이 아니고 한번의 요청으로 전체 파일을 받기때문에 데이터를 받은 만큼 나간다. 

  • Youtube에서 Progressive Download 방식을 사용하다가 Adaptive HTTP Streaming 방식으로 교체했다.
    20초에 한번씩 Chunk를 요청하여 재생시켜주며 실제 시청한만큼의 데이터만 나가기때문에 서버의 부하도 줄일 수 있다.

  • 한가지 해상도의 동영상 소스가 선택되어 다운로드되는 방식이므로 네트워크 상황에 따라 사용자는 버퍼링이 발생한다.




RTSP ( Real Time Streaming Protocol ) / RTMP (Real Time Messaging Protocol ) 스트리밍


  • 사용자가 현재 시청하고 있는 비디오 프레임만을 전송해 주는 별도 웹서버를 사용하는데  서버 측에서 많이 지원하지 않는다.
    왜나하면 대부분 비디오 제공자들은 스트리밍하는데 비싼 전용 서버를 사용하는걸 원하지 않는다.
  • 효율성은 좋지만 Progressive Download보다 복잡하며 비용이 비싸고 제약이 많다.



Adaptive HTTP Streaming


  • RTMP/RTSP (대역폭 효율성, 품질 전환)과 Progressive Download( 전용서버와 프로토콜 불필요) 의 장점을 결합한 방식이다
  • 서버의 작은 조각 단위( 몇초단위)의 비디오를 가지고 스트리밍하게 되며, 플레이어는 이 미디오 조각을 연속된 스트림으로 연결한다.
  • 대중적인 사례는 애플의 HLS(HTTP Live Streaming)이고 HLS 프로토콜은 표준으로 지정되었다.
  • 동영상 컨텐츠를 다양한 해상도로 인코딩해 저장해두고 데이터 단위도 동영상 컨텐츠 하나로 저장하는게 아니라 잘게 쪼개서 저장한다.
  • 사용자가 동영상을 플레이할 때 네트워크 상황에 따라서 적절하게 컨텐츠 해상도를 조절하여 최적의 스트리밍 서비스를 제공한다.
    유튜브 볼때 네트워크 상황에따라 해상도가 자동으로 변경되어 출력되는 상황을 기억해보면 될것 같다.







Comments