(이전에 게재된 곳: https://www.red5.net/blog/rtmp-vs-rtsp)
RTMP와 RTSP는 수십 년 동안 미디어 전달 분야에서 중심적인 주제로 자리 잡아 왔습니다. 두 프로토콜 모두 인터넷이 오늘날과 같은 실시간 정보 및 엔터테인먼트 허브로 발전하는 데 큰 역할을 했습니다. 이 블로그에서는 RTMP와 RTSP가 무엇인지, 각각의 프로토콜이 어떻게 작동하는지, 장단점은 무엇인지, 그리고 라이브 스트리밍 상황에서 어느 곳에 가장 적합한지 배울 수 있습니다. 또한 두 프로토콜의 사양을 비교하고, 일반적인 사용 사례를 살펴보며, 여러분의 스트리밍 과정에 가장 적합한 선택이 무엇인지 판단하는 데 도움을 드립니다
스트리밍 프로토콜이란?
RTMP 개요
RTMP란?
ERTMP란?
RTMP 작동 방식
RTMP 사용의 장단점
RTSP 개요
RTSP란?
RTSP 작동 방식
RTSP 사용의 장단점
rtmp vs rtsp 비교
RTMP vs RTSP 사양 비교
RTMP vs RTSP 사용 사례
IP 카메라 -- RTSP
IoT 기기 -- RTSP 또는 RTMP
모바일 기기 -- RTSP
유튜브, 트위치, 페이스북 -- RTMP
구형 하드웨어 인코더 -- RTMP
결론
Red5 무료 체험
스트리밍 프로토콜은 오디오와 비디오 데이터가 인터넷을 통해 어떻게 전송되는지를 정의하는 일련의 규칙입니다. 이러한 규칙은 스트리밍 과정에서 송신자와 수신자가 서로를 이해할 수 있도록 보장합니다. 스트리밍 프로토콜이 없다면, 서로 다른 장치와 네트워크에서 라이브 비디오 스트리밍과 주문형 재생이 불가능할 것입니다.
RTMP 개요
RTMP란 무엇인가?

RTMP(실시간 메시징 프로토콜)
은 미디어 스트리밍 시장에서 오랜 역사를 가진 애플리케이션 수준의 비디오 스트리밍 프로토콜입니다. 이 프로토콜은 Macromedia에서 개발되었으며, 현재는 Adobe가 소유하고 있습니다. RTMP는 인터넷을 통해 플래시 플레이어와 미디어 서버 간에 주문형(VOD) 및 실시간(Live) 미디어를 전송하기 위해 설계되었습니다. 비록 플래시 플레이어는 빠르게 사라지고 있지만, RTMP 프로토콜은 여전히 다양한 활용 사례에서 널리 사용되고 있습니다.
ERTMP란 무엇인가?

RTMP와 ERTMP(Enhanced RTMP) 는 오디오, 비디오 및 데이터 스트리밍을 위한 TCP 기반 프로토콜입니다.
ERTMP는 Red5 Pro v14.0에서 도입된 확장형 RTMP로, H.265 지원, 고급 코덱, 초저지연(ultra-low latency) 등의 기능을 추가하면서도 이전 버전과의 호환성을 유지합니다.
자세한 내용은 ERTMP 문서에서 확인할 수 있습니다.
RTMP 작동 방식

RTMP는 클라이언트-서버 아키텍처로 작동하며, OBS Studio와 같은 스트리밍 소프트웨어가 RTMP 서버에 연결하여 라이브 콘텐츠를 전송합니다.
일반적인 스트리밍 과정에서 RTMP가 작동하는 방식은 다음과 같습니다:
스트림 시작: 인코더가 RTMP 서버와 연결을 설정합니다.
핸드셰이크 과정: 클라이언트와 서버가 세션을 설정하기 위해 정보를 교환하는 과정입니다.
데이터 전송: 오디오, 비디오, 메타데이터가 실시간 청크 단위로 전송됩니다.
배포: 서버가 스트림을 처리하여 시청자에게 전달합니다.
필요한 기능에 따라 무료와 유료 RTMP 서버 옵션이 있습니다. 예를 들어, 오픈 소스 Red5 RTMP 서버는 단일 비트레이트 전송을 지원하지만 서버 측 트랜스코딩 기능은 포함되어 있지 않습니다. 이 기능은 Red5 Pro와 Red5 Cloud에서 제공되어 RTMP에 적응형 비트레이트 스트리밍을 가능하게 합니다.
RTMP 사용의 장점과 단점
장점
RTMP는 TCP 기반으로 동작하므로 안정적인 전송이 가능합니다.
YouTube, Facebook 등 여러 소셜 플랫폼에서 여전히 지원됩니다.
Red5 Pro와 같은 미디어 서버와 결합하면 뛰어난 인제스트(ingest) 옵션을 제공합니다.
기존 스트리밍 소프트웨어와의 통합이 쉽습니다.
단점
플래시가 폐지되어 브라우저에서 직접 재생이 제한됩니다.
서버 측 트랜스코딩이 없으면 단일 비트레이트 전송만 가능합니다. 지연 시간이 낮도록 최적화된 최신 프로토콜에 비해 지연 시간이 더 깁니다.
많은 전문 라이브 스트리밍 환경에서는 전용 서버가 필요합니다.
RTSP 개요
RTSP란?
미디어 스트림을 실제로 전송하기 위해서, 실시간 전송 프로토콜(RTP)과 실시간 제어 프로토콜(RTCP)을 함께 사용합니다.
실시간 스트리밍 프로토콜(RTSP)은 낮은 지연 시간 스트림 전송을 위해 설계된 네트워크 제어 프로토콜입니다. 1996년경 RealNetworks, Netscape, 그리고 컬럼비아 대학교의 전문가들에 의해 개발되었으며, 스트림 내 데이터가 어떻게 패키지되어 전달되어야 하는지 정의합니다. 또한 연결 양쪽이 전송 경로를 준비하기 위해 어떻게 동작해야 하는지도 규정합니다. 실제 미디어 스트림 전달은 실시간 전송 프로토콜(RTP)과 실시간 제어 프로토콜(RTCP)을 함께 사용하여 수행됩니다.
RTSP 작동 방식
RTSP는 효율적인 RTP 프로토콜을 사용하여 스트리밍 데이터를 더 작은 청크로 분할해 더 빠르게 전달합니다. UDP 패킷 전달과 결합하면, RTSP는 Red5 Pro 및 Red5 Cloud와 함께 사용할 때 500밀리초 이하의 매우 낮은 지연 시간 스트리밍을 달성할 수 있습니다.
일반적인 작업 흐름에서 RTSP 클라이언트는 IP 카메라나 피드를 배포하는 미디어 서버와 같은 RTSP 서버에 연결합니다. RTSP는 일시 정지, 재생, 녹화와 같은 재생 기능을 제어할 수 있어 감시 및 모니터링 시스템에 유연성을 제공합니다. 많은 IP 카메라는 기본적으로 RTSP 서버 역할을 하여 IP 카메라 스트리밍을 단순화합니다. 이러한 구성은 낮은 지연 시간이 중요한 유사한 라이브 스트리밍 시나리오에 RTSP를 자연스럽게 적합하게 만듭니다.
RTSP 사용의 장단점
장점
UDP 전송을 통해 매우 낮은 지연 시간을 제공합니다.
수많은 IP 카메라에서 기본적으로 지원됩니다.
보안 네트워크와 같은 통제된 환경에서 잘 작동합니다.
실시간 비디오가 필요한 라이브 스트리밍 시나리오에 효율적입니다.
단점
플러그인이나 추가 소프트웨어 없이는 브라우저 지원이 제한적입니다.
RTMP 스트리밍에 비해 설정이 더 복잡합니다.
전문 플레이어나 미디어 서버와의 통합이 필요합니다.
RTMP나 HTTP 기반 프로토콜만큼 CDN 친화적이지 않습니다.
각 프로토콜이 어떻게 작동하는지 자세히 살펴보았으니, 이제 각 프로토콜이 언제 유용한지 살펴보겠습니다. RTMP와 RTSP의 선택은 일반적으로 어떤 프로토콜이 더 좋은지보다는 라이브 비디오 스트리밍에 사용되는 특정 장치에 따라 결정된다는 점을 유의해야 합니다. RTMP와 RTSP는 보통 서로 대체할 수 없습니다.
RTMP 대 RTSP

RTMP와 RTSP 사양 비교
RTMP와 RTSP 중 어느 것을 사용할지는 라이브 비디오 스트리밍의 사용 사례와 사용되는 장치에 크게 좌우됩니다. 하지만 먼저 이 두 스트리밍 프로토콜의 사양부터 비교해 보겠습니다.


RTMP는 TCP를 기반으로 동작하여 높은 신뢰성과 다양한 플랫폼과의 호환성을 제공합니다. 반면 RTSP는 UDP 기반의 RTP 프로토콜을 사용하여 훨씬 낮은 지연 시간을 구현합니다. RTMP는 유튜브, 트위치 등 많은 소셜 스트리밍 플랫폼에서 인제스트(입력)용으로 널리 지원되는 반면, RTSP는 많은 IP 카메라가 자체 RTSP 서버 역할을 하기 때문에 IP 카메라의 표준 프로토콜로 자리잡고 있습니다.
두 프로토콜 모두 최신 비디오 코덱을 지원하지만, ERTMP는 RTMP에 고급 기능을 추가하여 확장된 버전입니다. 두 프로토콜 모두 직접 브라우저 재생에는 적합하지 않으나, 미디어 서버를 통해 스트림을 WebRTC나 HLS로 재패키징할 수 있습니다. RTMP는 CDN과 전용 서버와 잘 확장되는 반면, RTSP는 장치 기반 라이브 스트리밍 시나리오에 가장 적합합니다. 따라서 가장 적합한 선택은 스트리밍 과정에서 신뢰성이 더 중요한지 초저지연이 더 중요한지에 따라 결정됩니다.
RTMP 대 RTSP 사용 사례

사용 사례 (Use Case)
IP 카메라 – RTSP
대부분의 IP 카메라는 RTSP 프로토콜을 지원하므로 선택이 매우 쉽습니다. IP 카메라는 RTMP가 발명되기 훨씬 이전부터 존재했으며, RTSP가 (과거부터 그리고 지금도) 매우 효과적인 솔루션이었기 때문에 변경할 필요가 없었습니다. 따라서 RTSP의 조기 개발이 IP 카메라에서 RTSP 채택을 촉진했습니다.
IP 카메라는 다양한 목적으로 사용됩니다. 대중 감시 또는 법 집행 기관의 교통 감시, 가정 감시 시스템, 또는 원격 위치에 있는 재미용 기상 카메라까지 여러 용도가 있습니다.
IP 카메라의 작동 방식 때문에, 카메라 자체가 RTSP 서버 역할을 합니다. 즉, IP 카메라 서버에 연결하여 스트림을 수신하려면 RTSP 클라이언트를 사용해야 합니다. Red5 Pro의 Restreamer 플러그인은 클라이언트로서 RTSP 스트림에 연결하고, 이를 WebRTC를 실행하는 브라우저와 같은 다른 Red5 Pro 지원 엔드포인트로 다시 스트리밍할 수 있는 방법을 제공합니다. Restreamer 플러그인에 대한 자세한 내용은 이 글(
https://www.red5.net/blog/ip-camera-live-streaming-rtsp-to-webrtc/)에

드론, 로봇 및 기타 장치들은 라이브 비디오 전송으로 큰 혜택을 얻습니다. 이 비디오는 장치가 보는 장면을 실시간으로 확인할 수 있을 뿐만 아니라 장치 제어에도 도움을 줍니다. RTSP 지원은 종종 드론이나 IoT 소프트웨어에 내장되어 있으며 비디오 피드 접근에 일반적으로 사용됩니다. 하지만 DJI와 같은 일부 제조업체는 RTMP를 사용하기 때문에, 어떤 프로토콜을 사용할지는 특정 장치에 따라 다를 수 있습니다.
예를 들어, 소방관들은 현재 화재 상황에 대한 정보를 수집하여 이를 활용해 작전을 조율할 수 있습니다. 공중 조사는 도로와 전력선을 점검하거나 지질 조사를 수행하는 등 인프라 유지 관리에도 유용합니다. 흥미롭게도, 원격지에서도 의사가 환자와 대화하고 수술할 수 있게 해주는 원격 수술 로봇과 텔레프레즌스 로봇도 있습니다.
드론과 로봇을 제어하는 데 있어 저지연성은 필수적입니다. 영상 신호가 전송되고 돌아오는 사이에 발생하는 지연이 실제 장치의 위치와 차이가 생기면 문제가 발생할 수 있기 때문입니다.
모바일 장치 – RTSP
일반적으로 모바일 기기는 RTSP를 기본적으로 지원하지 않습니다.
그러나 Red5 모바일 SDK 네이티브 앱에서 모바일 장치로부터 그리고 모바일 장치로 라이브 스트림을 전달하기 위해 RTSP를 사용합니다. 구독자나 발행자 클라이언트당 단일 연결을 생성함으로써 Android와 iOS 양쪽 장치 모두 RTSP를 사용하여 다수의 방송자와 다수의 구독자를 간단하게 연결할 수 있습니다.
예를 들어, 단일 c5.large 인스턴스(2CPU 4GB)가 Red5 Pro를 실행하며 720p 비디오를 스트리밍할 경우, 200명의 WebRTC 구독자 또는 920개의 RTSP 연결을 처리할 수 있습니다. 대역폭 비용이 거의 4배 감소하기 때문에, Red5 Pro 모바일 SDK에 대한 추가 비용은 빠르게 회수될 것입니다.
유튜브, 트위치, 페이스북 – RTMP.
2020년이 Flash Media Player의 공식 지원 종료를 의미하지만, RTMP 프로토콜은 여전히 유용하게 사용될 것입니다. 예를 들어, Red5 Pro의 RTMP 구현은 1초 미만의 지연 시간을 달성할 수 있습니다. RTMP가 플래시와 동의어로 여겨지지만, 이 프로토콜은 플래어 자체보다 더 오래 살아남을 것입니다.
과거에 널리 사용되었고 프로토콜의 유연성 덕분에, RTMP는 여전히 대부분의 써드파티 스트리밍 애플리케이션들, 예를 들어 YouTube Live, Twitch, Facebook과 같은 플랫폼에서 인제스트 프로토콜로 사용되고 있습니다.
Zoom은 RTMP를 활용하는 또 다른 흥미로운 서드파티 서비스입니다. Zoom은 사용자 영상 통화의 RTMP 스트림 출력을 지원하여, 자체 웨비나 또는 원격 회의를 제작하는 등의 다양한 활용 사례를 가능하게 합니다.
구형 하드웨어 인코더 - RTMP
일부 하드웨어 인코더(특히 구형)는 RTMP 스트림만 지원합니다. 따라서 어떤 프로토콜을 사용할지 선택하는 것이 명확해집니다.
하지만 많은 하드웨어 인코더가 오픈 소스이며 방화벽을 통과하고 불안정한 네트워크 환경에서도 라이브 스트림 전송을 최적화한다는 이유로 SRT 기반 인코더로 전환하고 있다는 점에 유의해야 합니다.
결론
RTMP와 RTSP는 어느 한 쪽이 우월한 프로토콜을 선택하는 문제가 아니라, 상황에 맞는 프로토콜을 사용하는 문제입니다. RTSP는 IP 카메라, 드론, 그리고 기타 IoT 및 모바일 기기에서 뛰어난 성능을 발휘합니다. 반면에 RTMP는 소셜 플랫폼, 타사 애플리케이션, 그리고 구형 인코더로의 인제스트(송입)에 여전히 중요한 역할을 합니다. 각 프로토콜의 강점을 이해함으로써, 특정 라이브 스트리밍 상황에 가장 적합한 선택을 할 수 있으며, 이를 통해 청중에게 안정적인 스트리밍 전달을 보장할 수 있습니다.