기술 ·
RTMP 완전 정리: 모든 라이브 스트림 뒤에 있는 프로토콜
핵심 요약
- RTMP(Real-Time Messaging Protocol)는 스트리밍 소스에서 YouTube 같은 플랫폼으로 영상/오디오 데이터를 실어 나르는 연결 방식이에요.
- "스트림 키"는 사실 RTMP URL 뒤에 붙는 비밀번호예요 — 둘이 합쳐져서 YouTube에 이 데이터가 어느 채널의 방송인지 알려줘요.
- RTMP를 몰라도 쓸 수 있지만, 이게 뭔지 알아두면 스트림이 멈췄을 때 문제를 훨씬 덜 헷갈리게 해결할 수 있어요.
YouTube 스트림 키를 찾아본 적이 있다면, 바로 옆에 RTMP가 언급된 걸 봤을 거예요 — 보통 OBS나 다른 스트리밍 툴에 키와 함께 붙여넣으라고 안내되는 "RTMP URL"로요. 둘 다 무슨 일을 하는지도 모른 채 그냥 복사해서 붙여넣는 마법의 문자열로 취급하기 쉬워요. 쉽게 풀어서 설명해 드릴게요.
RTMP가 실제로 무엇인가
RTMP는 Real-Time Messaging Protocol의 약자예요. 영상과 오디오 데이터를 포장해서 아주 낮은 지연으로 한 곳에서 다른 곳으로 계속 전송하는 방식이에요 — 라이브 스트림에 정확히 필요한 방식이죠. 원래는 Macromedia(나중에 Adobe)가 플래시 영상을 위해 만든 것이지만, 플래시가 사라진 지금까지도 살아남았어요. 단순하고 안정적이며, YouTube, Twitch, Facebook Live 같은 주요 플랫폼이 여전히 인제스트(수신) 형식으로 받아들이기 때문이에요.
파일을 업로드하는 것보다는 전화 통화에 가깝다고 생각하면 돼요: 연결이 열리면 어느 한쪽이 끊을 때까지 데이터가 한 방향(인코더에서 YouTube 서버로)으로 계속 흘러가요.
스트림 키가 들어가는 자리
RTMP 연결은 데이터를 어디로 보내야 할지 알기 위해 두 가지가 필요해요: 서버 URL(예를 들면 rtmp://a.rtmp.youtube.com/live2 같은 형태)과 스트림 키요. 스트림 키는 이 방송이 어느 채널의 것인지 식별하는, 사실상 비밀번호 역할을 하는 길고 고유한 문자열이에요. YouTube는 이 스트림 키를 이용해서 영상을 올바른 곳으로, 연결된 YouTube 계정이라면 본인이 설정해 둔 특정 방송으로 라우팅해요.
이래서 스트림 키가 민감한 정보예요: 이걸 가진 사람은 누구나 본인 채널의 라이브 슬롯으로 방송할 수 있어요. 그래서 서비스가 저장한 뒤에는 절대로 다시 화면에 보여주면 안 되는 이유이기도 해요 — 새 키로 교체하게만 해줘야 해요.
RTMP 레이어에서 스트림이 실패하는 이유
"스트림이 시작되지 않아요" 문제 대부분은 다음 중 하나의 RTMP 레이어 이슈에서 비롯돼요.
- 잘못되었거나 만료된 스트림 키 — 라이브 스트림 설정을 초기화하면 YouTube가 새 키를 발급해요. 예전에 캐시해 둔 키는 아무 데도 연결되지 않아요.
- 네트워크 불안정 — RTMP는 연결을 계속 열어 두는 방식이라, 연결이 불안정하면 인코더가 계속 재연결을 시도하고, YouTube에는 계속 시작했다 멈췄다 하는 스트림으로 표시돼요.
- 인코더 설정 불일치 — 비트레이트, 해상도, 키프레임 간격 설정이 YouTube의 수신 기준과 맞지 않으면 연결은 수락되지만 영상이 실제로 라이브로 표시되지 않을 수 있어요.
Loopcast 같은 클라우드 기반 스트리밍 서비스는 송신 쪽에서 이런 실패 지점 대부분을 없애요 — 연결이 가정용 인터넷이 아니라 안정적인 서버 인프라에서 이뤄지고, 영상은 RTMP로 전송되기 전에 미리 일관된 형식으로 정규화되기 때문에 방송 중간에 인코더 불일치 문제가 생기지 않아요.
같은 프로토콜이 여러 플랫폼에서 작동하는 이유
RTMP는 YouTube가 만들어서 소유한 게 아니라 공유 표준이기 때문에, 위에서 본 서버 URL과 스트림 키 패턴은 Twitch, Facebook Live, Kick에서도 동일해요 — 실제 주소와 키만 다를 뿐이에요. 이게 Loopcast의 수동 스트림 키 필드가 이제 YouTube 외에도 연결할 수 있게 된 이유예요: 릴레이 자체는 RTMP 연결 반대편에 어느 플랫폼이 있는지 전혀 신경 쓴 적이 없어요. 그저 고정된 목적지가 아니라 설정 가능한 목적지가 필요했을 뿐이에요. Instagram과 TikTok은 예외예요 — 다른 플랫폼들과 달리 셀프서비스로 쓸 수 있는 RTMP URL/키를 공개하지 않기 때문에, 프로토콜 자체는 문제가 없어도 붙여넣을 게 아무것도 없어요.
스트리밍을 하려면 이걸 다 알아야 하나요?
아니요. 이건 완전히 선택적인 배경지식이에요 — 한 번 설정해 두면 RTMP를 다시 생각하지 않고도 몇 년 동안 24/7 YouTube 스트림을 운영할 수 있어요. 딱 한 번 쓸모가 있어요: 뭔가 문제가 생겨서 스트림 키, 연결, 인코더 설정 중 무엇이 원인인지 알아내려고 할 때요.
자주 묻는 질문
RTMP는 안전한가요?
표준 RTMP는 암호화되어 있지 않지만, YouTube를 포함한 대부분의 플랫폼은 실제 수신 연결에 암호화 버전인 RTMPS를 지원해요. 어느 쪽이든, 스트림 키 자체가 실질적인 보안 경계 역할을 해요 — 비공개로 유지하세요.
같은 스트림 키를 두 개의 스트리밍 툴에서 동시에 쓸 수 있나요?
아니요 — 스트림 키는 한 번에 하나의 소스에서만 데이터를 받을 수 있어요. 두 곳에서 동시에 쓰면 한쪽 연결이 실패하거나 스트림이 소스 사이를 오가며 깜빡이게 돼요.
YouTube Studio에서 확인할 때마다 스트림 키가 왜 다르게 보이나요?
라이브 스트림 설정을 초기화하거나 키가 유출된 것으로 표시되면 YouTube가 새 스트림 키를 발급할 수 있어요. 키가 예상치 못하게 바뀌었다면, YouTube Studio → Go Live → Stream에서 현재 키를 다시 복사해서 저장해 둔 곳에 붙여넣으세요.
모든 플랫폼이 완전히 같은 RTMP URL을 쓰나요?
아니요 — 각 플랫폼은 자체 수신 주소를 가지고 있어요(YouTube는 rtmp://a.rtmp.youtube.com/live2, Twitch는 rtmp://live.twitch.tv/app 등이에요). 모두 같은 RTMP 프로토콜을 쓰지만요. 그래서 한 플랫폼의 스트림 키를 다른 플랫폼의 URL에 붙여넣으면 아무 의미가 없어요 — 프로토콜은 같아도 주소와 키는 둘 다 플랫폼마다 달라요.