- Published on
RTMP(real-time messaging protocol) 공부 기록
- Authors
- Name
- 치우
안녕하세요
수요일 그 전날부터 유난 떠는 빨간날도 지나고, 이제 새해가 조금밖에 남지 않았습니다..
다 들 독감 조심하시고 한 해 마무리 잘 하시길 바랍니다.
오늘은, RTMP 라는 미디어 스트림 전송에 사용되는(obs 같은 스트리밍 프로그램 등) 고런거를 필기하는 시간입니다.
RTMP 란?
RTMP(Real-Time Messaging Protocol)은 Adobe Systems에서 개발한 프로토콜로, 주로 오디오, 비디오, 데이터 전송을 위해 사용됩니다. 이 프로토콜은 실시간 스트리밍과 상호작용 콘텐츠를 지원하는 데 최적화되어 있습니다.
프로토콜의 통신 순서
핸드셰이크: 클라이언트와 서버 간의 연결을 설정하는 과정, 여러 통신 프로토콜에서 보안 인증을 위해 범용적으로 사용하는 통신 규약입니다.
메타데이터 전송: 스트리밍 시작 전에 전송되는 미디어 관련 정보(예: 해상도, 코덱). rtmp 는 딱히 블록화를 하거나 따로 보안 암호화를 위한 데이터 나누기는 하지 않는 듯 합니다. 덕분에 레이턴시가 낮아 특유의 폐쇄성에도 불구하고 여전히 많이 사용되고 있습니다.
데이터 전송: 스트림 데이터가 패킷 형태로 클라이언트에게 전달됨.
RTMP 주요 특징
저지연성: 실시간 스트리밍을 위해 설계되어 짧은 대기 시간(latency)을 보장합니다.
멀티미디어 데이터 전송: 비디오, 오디오, 텍스트 데이터를 전송할 수 있으며, 특히 FLV(Flash Video) 형식과 자주 사용됩니다.
양방향 통신: 클라이언트와 서버 간의 양방향 데이터 전송을 지원합니다.
통상적으로 1935 번 포트를 표준 포트로 사용
RTMP 기반 변형 프로토콜
RTMPS: RTMP에 SSL/TLS를 추가하여 보안을 강화한 프로토콜.
RTMPT: RTMP를 HTTP 프로토콜을 통해 터널링하여 방화벽을 우회.
RTMPTE: RTMPT에 암호화 기능을 더한 프로토콜.
RTMP Live: 실시간 스트리밍에 최적화된 프로토콜.
adobe 사에서 만든 프로토콜, 딱히 오픈 생태계를 감안한 것도 아닌 것으로 보여서 그런지, 생태계 구성 ( 레퍼런스, 관련 개발 커뮤니티 등) 이 별로 활성화되진 않은 것 같습니다.
실시간 스트림 전송 표준으로 쓰이는 다른 녀석들이 있다면 알려주세요 .
여기까지 짧은 정리 끝
새해 복 많이 받으세요