피드로 돌아가기
Streaming Rugby Through a Self-Hosted RTMP Proxy with Docker and OBS
Dev.toDev.to
Infrastructure

Docker와 RTMP Proxy로 구축한 저지연 라이브 스트리밍 인프라

Streaming Rugby Through a Self-Hosted RTMP Proxy with Docker and OBS

augustine Egbuna2026년 4월 7일6intermediate

Context

외부 스트리밍 서비스의 불안정한 연결성과 제어권 부족 문제 발생. 다수 모니터 송출 및 녹화 기능이 포함된 독립적인 인제스천 포인트 필요. 브라우저 탭 의존도를 낮춘 안정적인 내부 네트워크 배포 구조 요구.

Technical Solution

  • nginx-rtmp-module을 포함한 커스텀 Docker 이미지 빌드로 RTMP 서버 환경 구축
  • ffmpeg를 활용하여 외부 HLS 스트림을 수집하고 RTMP 포맷으로 리먹싱하여 서버로 전송
  • RTMP direct 방식과 HLS 엔드포인트를 동시에 제공하여 클라이언트별 최적화된 재생 경로 확보
  • -c:v copy 플래그 사용으로 비디오 재인코딩 없이 데이터 흐름을 처리하는 리소스 최적화 전략
  • Python 기반의 Watchdog 스크립트를 사이드카 형태로 배치하여 스트림 상태 모니터링 및 자동 재시작 구현
  • nginx 설정을 통한 로컬 네트워크 기반의 퍼블리싱 권한 제한으로 보안성 강화

Impact

  • RTMP 직접 연결 시 2-4초의 저지연성 확보
  • HLS 재생 시 세그먼트 버퍼링으로 인해 6-10초의 지연 발생
  • 2 vCPUs, 4GB RAM 사양의 $20/월 VPS에서 1080p 단일 스트림 운영 가능

Key Takeaway

현대적인 delivery 프로토콜(HLS, DASH) 시대에도 저지연 인제스천과 서버 간 통신에는 RTMP가 여전히 효율적인 선택지임. 인프라 제어권을 확보하면 대역폭 제한 없는 최적의 스트리밍 파이프라인 설계가 가능함.


네트워크 대역폭 제한 시 ffmpeg의 libx264 코덱과 -b:v 옵션으로 비트레이트를 강제 제한하여 안정성을 확보할 것

원문 읽기