임베디드 관련 카테고리/Embedded System

스트리밍 프로토콜 비교: HLS, DASH, RTP, RTMP, WebRTC

CBJH 2024. 11. 27.
728x90
반응형

영상 스트리밍 서비스를 구축할 때, 어떤 스트리밍 프로토콜을 선택해야 할지 고민이 많으셨죠? 이 글에서는 가장 널리 사용되는 HLS, DASH, RTP, RTMP, WebRTC의 특징, 장단점, 그리고 어떤 상황에 적합한지를 비교해보겠습니다. 마지막에는 한눈에 볼 수 있는 표로 정리했으니 참고해보세요!


1. HLS (HTTP Live Streaming)

HLS는 애플(Apple)이 개발한 HTTP 기반 스트리밍 프로토콜로, **VOD(주문형 비디오)**와 라이브 스트리밍에서 널리 사용됩니다. 동영상을 짧은 세그먼트로 나누어 HTTP를 통해 전송하기 때문에, 네트워크 상태에 따라 품질을 동적으로 조정(적응형 비트레이트, ABR)할 수 있습니다.

  • 특징:
    • HTTP 기반으로 네트워크 제약이 적고, 방화벽을 우회하기 쉽습니다.
    • 대부분의 브라우저와 디바이스에서 지원합니다.
    • 기본 HLS의 지연 시간은 2~10초이며, LL-HLS를 사용하면 1초 이하의 지연 시간도 가능합니다.
  • 장점:
    • CDN과 쉽게 통합 가능.
    • 네트워크 안정성에 강함.
    • 높은 호환성.
  • 단점:
    • 기본적으로 지연 시간이 높아 실시간성이 요구되는 서비스에는 부적합합니다.

2. DASH (Dynamic Adaptive Streaming over HTTP)

DASH는 MPEG에서 개발한 국제 표준 스트리밍 프로토콜로, HLS와 유사하지만 더 많은 유연성을 제공합니다. 멀티플랫폼 지원이 가능하며, H.264, H.265, VP9 등 다양한 코덱을 선택할 수 있습니다.

  • 특징:
    • HTTP 기반으로 동작하며, 적응형 비트레이트를 지원합니다.
    • 기본 지연 시간은 2~10초 이상입니다.
  • 장점:
    • 국제 표준으로 더 다양한 디바이스와 환경에서 사용할 수 있음.
    • 다양한 코덱과 DRM 지원.
  • 단점:
    • 설정 및 구현이 복잡합니다.
    • 기본적으로 지연 시간이 높습니다.

3. RTP (Real-time Transport Protocol)

RTP는 실시간 전송을 목적으로 설계된 프로토콜로, RTSP와 함께 사용되는 경우가 많습니다. UDP를 기반으로 동작하며, 실시간성이 중요한 라이브 스트리밍에 최적화되어 있습니다.

  • 특징:
    • 실시간 전송을 위해 설계.
    • 지연 시간은 약 500ms~1초 이하입니다.
  • 장점:
    • 매우 낮은 지연 시간.
    • 실시간 제어와 라이브 스트리밍에 적합.
  • 단점:
    • HTTP 기반이 아니기 때문에 방화벽과 네트워크 환경에 영향을 받을 수 있음.
    • 구현이 복잡하며, 네트워크 품질이 낮으면 스트리밍 품질이 저하됩니다.

4. RTMP (Real-Time Messaging Protocol)

RTMP는 어도비(Adobe)가 개발한 프로토콜로, 주로 Flash를 기반으로 사용되었지만 지금은 인코더 입력이나 스트리밍 입력으로 제한적으로 사용됩니다. TCP 기반으로 동작하며, YouTube Live, Facebook Live와 같은 플랫폼에서 여전히 사용됩니다.

  • 특징:
    • TCP 기반으로 동작하며, 지연 시간은 1~2초입니다.
  • 장점:
    • 설정이 간단하며 과거부터 널리 사용되었습니다.
    • 일부 플랫폼에서 여전히 사용 가능.
  • 단점:
    • Flash 기반 기술의 도태로 점점 사용이 줄어들고 있습니다.
    • HTTP 기반 프로토콜에 비해 네트워크 제약이 있을 수 있습니다.

5. WebRTC (Web Real-Time Communication)

WebRTC는 브라우저 간 P2P 통신을 위해 설계된 오픈소스 기술로, 초저지연을 제공합니다. 화상회의, 실시간 게임, 실시간 제어 등 실시간성이 중요한 서비스에서 주로 사용됩니다.

  • 특징:
    • UDP 기반으로 매우 낮은 지연 시간(수백 밀리초).
    • 브라우저 네이티브로 지원(플러그인 필요 없음).
  • 장점:
    • 초저지연이 가능.
    • 브라우저 네이티브 지원.
    • 실시간 통신에 최적화.
  • 단점:
    • P2P 연결이므로 동시 접속자 증가 시 서버 부하가 커질 수 있음.
    • 구현이 비교적 복잡하며 네트워크 품질에 따라 성능 차이가 발생.

6. 한눈에 보는 스트리밍 프로토콜 비교

프로토콜기반지연 시간주요 사용 사례장점단점

HLS HTTP 2~10초 (LL-HLS: <1초) VOD, 라이브 스트리밍 호환성 높음, CDN 통합 용이 실시간성이 낮음
DASH HTTP 2~10초 이상 VOD, 라이브 스트리밍 표준화, 다양한 코덱 지원 설정 복잡, 기본 지연 높음
RTP UDP 500ms~1초 이하 라이브 스트리밍, 원격 제어 낮은 지연, 실시간 전송 구현 복잡, 네트워크 환경에 민감
RTMP TCP 1~2초 라이브 스트리밍, 인코더 입력 설정 간단, 여전히 일부 플랫폼에서 사용 Flash 기반의 점진적 도태
WebRTC UDP <500ms 화상회의, 실시간 게임, 실시간 제어 매우 낮은 지연, 브라우저 네이티브 지원 P2P 환경에 따라 부하 증가, 복잡한 구현

결론

  • HLS/DASH: 네트워크 안정성과 호환성이 중요한 VOD 및 일반 라이브 스트리밍에 적합.
  • RTP/RTMP: 실시간성이 중요한 라이브 스트리밍이나 원격 제어에 적합.
  • WebRTC: 초저지연이 필요한 화상회의, 게임, 실시간 제어에 적합.

각 프로토콜은 상황에 맞는 용도가 있습니다. 실시간성과 호환성 중 무엇을 우선으로 할지 고민해보고 적합한 프로토콜을 선택하세요! 😊

추가적으로 궁금한 점이나 구현 방법이 필요하면 댓글로 남겨주세요!

댓글