원문 캡처 · red5.net
원문 캡처 · red5.net

RTMP(Real-Time Messaging Protocol)는 인코더에서 미디어 서버나 스트리밍 플랫폼으로 생방송을 보내는 데 흔히 쓰이는 프로토콜이다. 시청자에게 영상을 전달하는 방식은 별도로 선택해야 하며, 최신 브라우저는 RTMP를 기본 재생 형식으로 지원하지 않는다.

RTMP의 역할과 전송 과정

RTMP는 인터넷을 통해 오디오·비디오·데이터를 전송하는 프로토콜이다. 플래시 시대에 등장했지만, 현재는 주로 인코더가 RTMP 엔드포인트에 생방송을 보내는 수집(ingest) 경로로 쓰인다. TCP를 사용하고 일반적으로 포트 1935에서 연결을 기다리지만, 배포 환경에 따라 다른 포트를 사용할 수 있다. 미디어와 제어 메시지를 청크 단위로 지속 연결을 통해 전송한다. Red5 Pro 문서는 RTMP와 하위 호환되는 Enhanced RTMP(ERTMP)를 설명하며, ERTMP는 지원되는 워크플로에서 코덱 신호 전달 기능을 강화한다.

RTMP는 생방송을 서버로 보내는 경로이지, 시청자가 영상을 받기까지 걸리는 시간을 보장하는 프로토콜은 아니다. 전체 지연은 인코더, 네트워크, 서버 처리, 플레이어, 시청자 전달에 쓰는 프로토콜에 따라 달라진다.

  • 연결: 인코더가 RTMP 서버에 연결하고 핸드셰이크를 완료한다.
  • 게시: 필요한 경우 인증을 거친 뒤 지정된 애플리케이션과 스트림 이름으로 오디오·비디오·메타데이터를 보낸다.
  • 처리: 서버가 입력된 영상을 전달하거나 녹화하고, 트랜스코딩하거나 재생을 위한 형식으로 준비할 수 있다.
  • 전달: 시청자는 최신 브라우저의 기본 RTMP 재생에 의존하지 않고, 애플리케이션에 맞게 선택된 플레이어와 전달 프로토콜로 영상을 받는다.

실제 구성에는 OBS 같은 인코더, RTMP 게시 엔드포인트, 스트림 이름 또는 키, 시청자에게 영상을 전달할 경로가 필요하다. Red5 Cloud 문서는 스트림 생성부터 OBS 설정, 플레이어 삽입까지의 절차를 안내한다.

RTMP를 다른 프로토콜과 비교하면

프로토콜은 인코더에서 서버로 보내는 수집 경로인지, 실시간 상호작용 전송인지, 대규모 시청자 재생인지에 따라 선택해야 한다. 아래 비교는 일반적인 용도를 설명하며, 실제 요구 사항은 제품과 플레이어 문서에서 확인해야 한다.

RTMP는 인코더에서 서버나 플랫폼으로 생방송을 보내는 데 흔히 쓰인다. RTSP는 IP 카메라와 통제된 네트워크의 영상 워크플로에서 자주 사용된다. 어느 쪽이 더 낫다고 단정할 수는 없으며, 카메라나 인코더, 미디어 서버, 최종 전달 경로가 지원하는 형식을 선택해야 한다.

RTMP는 익숙한 수집 방식이고, WebRTC는 실시간 미디어 통신을 위해 설계돼 브라우저 기반 상호작용이 필요한 경우 흔히 쓰인다. 두 워크플로의 자세한 비교는 RTMP와 WebRTC 비교에서 확인할 수 있다.

RTMP는 TCP를 사용한다. SRT는 UDP를 사용하며, 변동이 있는 네트워크에서 안정적으로 영상을 전송하기 위한 메커니즘을 포함한다. 네트워크 상태와 복구 동작이 중요한 기여 전송 경로에서는 SRT가 더 적합한 후보일 수 있다. 반면 목적지가 RTMP 수집을 요구한다면 RTMP가 더 간단할 수 있다.

RTMP는 생방송을 게시하는 데, HLS는 HTTP 기반 재생에 흔히 쓰인다. 둘은 하나의 워크플로에 함께 들어갈 수 있다. 예를 들어 RTMP 소스를 미디어 서버가 받은 다음, 시청자용 HLS 스트림으로 준비할 수 있다. 재생 측면은 HLS 스트리밍 가이드에서 다룬다.

RTMPS는 TLS로 보호되는 연결을 통해 RTMP를 전송하는 방식이다. 수신 서비스가 RTMPS를 요구하거나 전송 중 암호화가 필요한 경우 사용한다. 연결할 서비스에서 엔드포인트, 인증서, 인코더 지원 여부를 확인해야 한다.

구성 선택과 문제 해결

필요한 환경이 학습용인지, 관리형 서비스인지, 직접 운영하는 소프트웨어인지에 따라 구성을 선택할 수 있다. 로컬이나 개발 환경에서 실습하려면 Red5와 OBS로 무료 RTMP 서버 설정하기 안내를 참고할 수 있다. 관리형 인프라를 원한다면 Red5 Cloud RTMP 빠른 시작 가이드에서 스트림과 OBS 게시자를 설정하는 방법을 확인할 수 있다. 직접 배포하고 연동할 소프트웨어를 찾는 경우에는 Red5 RTMP 스트리밍 서버 소프트웨어를 살펴볼 수 있다. Red5 Pro 문서는 RTMP와 ERTMP를 다루며, ERTMP 워크플로에서 강화된 코덱 신호 전달도 설명한다.

게시가 되지 않으면 엔드포인트, 인증 정보나 스트림 키, 방화벽 규칙, 인코더 로그, 현재 네트워크 용량부터 확인한다. 연결에 성공했다고 해서 시청자 전달 경로까지 제대로 설정됐다는 뜻은 아니다.

증상먼저 확인할 항목다음 조치
인코더가 연결되지 않음엔드포인트, 포트, 애플리케이션 경로, 인증 정보, 방화벽인코더 설정을 수신 서비스의 최신 문서와 대조한다.
스트림에 연결되지만 화면에 나타나지 않음스트림 이름, 키, 게시 권한, 서버 로그의도한 애플리케이션과 시청자 전달 경로가 같은 스트림을 사용하는지 확인한다.
게시가 불안정함업로드 용량, 패킷 손실, 인코더 부하, 비트레이트아키텍처를 바꾸기 전에 비트레이트를 낮춰 보고 인코더와 서버 로그를 살핀다.

자주 묻는 질문

RTMP는 OBS 같은 인코더에서 미디어 서버나 스트리밍 플랫폼으로 생방송을 보내는 데 흔히 쓰인다. 서버는 받은 스트림을 적절한 전달 프로토콜과 플레이어, 배포 워크플로에 맞춰 시청자용으로 준비할 수 있다.

RTMP URL은 인코더가 연결할 게시 엔드포인트를 지정한다. 보통 프로토콜, 서버 호스트, 필요한 경우 포트와 애플리케이션 경로가 포함된다. 서비스에 따라 스트림 이름이나 키를 URL에 넣거나 별도 입력란에 제공할 수 있다.

RTMP는 Real-Time Messaging Protocol의 약자다. 플래시 재생은 최신 브라우저 워크플로에서 쓰이지 않지만, RTMP는 여전히 생방송 수집 프로토콜로 널리 사용된다.

인코더, 서버, 목적지가 지원한다면 RTMP는 생방송을 서버로 보내는 실용적인 선택이다. 이후에는 시청자, 지연 요구 사항, 네트워크 상태, 운영 방식에 맞춰 재생과 배포 기술을 선택해야 한다.