멀티미디어
RTMP
다른 이름: Real-Time Messaging Protocol , RTMPS , RTMPT
정의
Real-Time Messaging Protocol. Adobe가 개발한 TCP 기반 저지연 스트리밍 프로토콜. 1935번 포트 사용. 청크(Chunk) 단위 전송으로 멀티플렉싱 지원. 라이브 스트리밍 인제스트(Ingest) 사실상 표준. Flash 종료 후에도 OBS→서버 업로드 프로토콜로 현역
상세 설명
기술 스펙
- TCP 기반: 1935번 포트 (RTMPS는 443 SSL/TLS)
- 청크(Chunk): 기본 128바이트 단위로 메시지 분할 전송
- 메시지 타입: Audio(8), Video(9), AMF 메타데이터(18/15), 제어 메시지(1~6)
- 핸드셰이크: C0/S0, C1/S1, C2/S2 3-way
- AMF(Action Message Format): 바이너리 직렬화 포맷 (AMF0/AMF3)
- 스트림 ID: 최대 65535개 동시 스트림 멀티플렉싱
- Timestamp: 32bit 밀리초 단위 (최대 49.7일, Extended Timestamp로 확장)
- NetConnection, NetStream: Flash Player API 프리미티브
실무 활용
- OBS Studio, XSplit: 트위치/유튜브 라이브 업로드 (인제스트)
- Wowza, Nginx-RTMP, SRS: 미디어 서버 인제스트 엔드포인트
- 중국 라이브 플랫폼: Douyin, Bilibili (RTMP 인제스트 주력)
- IRL 스트리밍: 모바일 인코더 앱 (Larix, CameraFi)
장점
- 저지연: 1~3초 (TCP 기반으로 안정적)
- 인제스트 표준: 모든 라이브 스트리밍 플랫폼 지원
- 멀티플렉싱: 단일 연결로 오디오/비디오/메타데이터 동시 전송
- 성숙한 생태계: FFmpeg, OBS, librtmp 등 오픈소스 풍부
단점 및 제약
- Flash 종속: 브라우저 재생 불가 (Flash Player 2020 종료)
- HTTP 미사용: 방화벽/NAT 통과 어려움, CDN 캐싱 불가
- ABR 미지원: 적응형 비트레이트 없음 (HLS/DASH로 트랜스코딩 필요)
- 표준화 부재: Adobe 독점 스펙, IETF/W3C 표준 아님
호환성
OBS Studio, FFmpeg, Wowza, Nginx-RTMP, SRS, Red5, Adobe Media Server. 브라우저 재생 불가 (HLS/DASH 변환 필수)
표준 정보
표준화 기구: Adobe (독점 스펙, 공식 문서 2012년 이후 미업데이트)
출시 연도: 2002년