Skip to content

Mediasoup 기본 개념

GWANGHYEON KIM edited this page Dec 3, 2024 · 2 revisions

1. 핵심 구성 요소

image

🔄 Worker & Router

  • Worker
    • CPU 코어별로 독립적인 워커 생성
    • 실제 미디어 처리를 담당하는 프로세스
  • Router
    • 가상의 컨퍼런스 룸 역할
    • 참가자들의 미디어 스트림 관리

🔗 Transport

  • Producer Transport: 클라이언트 → 서버 미디어 전송
  • Consumer Transport: 서버 → 클라이언트 미디어 전송
  • 각 클라이언트는 두 종류의 transport 필요

🎥 Producer & Consumer

  • Producer: 미디어 스트림 생성 주체
  • Consumer: 미디어 스트림 수신 주체

2. 동작 프로세스

연결 수립 과정

[Client] ←→ [Signaling Server] ←→ [MediaSoup Server]
  • WebRTC 연결 정보 교환 (ICE candidate, SDP)
  • WebSocket 기반 실시간 통신

미디어 스트리밍 흐름

Producer → Producer Transport → Router → Consumer Transport → Consumer
  • Router를 통한 중앙 집중식 미디어 스트림 관리
  • 선택적 미디어 전송 가능

3. 주요 특징

📈 확장성

  • 다중 워커 지원으로 CPU 자원 효율적 활용
  • 대규모 동시 접속자 처리 가능

🔧 유연성

  • 다양한 코덱 지원 (VP8, VP9, H.264, OPUS)
  • 비디오/오디오 품질 조절 가능

⚡ 성능

  • C++ 기반 핵심 엔진
  • Node.js 인터페이스로 개발 용이성 확보

4. 구현 고려사항

🛠 필수 구현 요소

  1. 시그널링 서버
    • WebSocket 기반 실시간 통신
    • 메시지 프로토콜 정의
  2. 에러 처리
    • 네트워크 불안정성 대응
    • 스트림 끊김 복구 로직
  3. 리소스 관리
    • Worker 풀 최적화
    • Router 생명주기 관리

📝 구현 순서

  1. Worker 풀 구성
  2. Router 생성 로직 구현
  3. Transport 연결 처리
  4. Producer/Consumer 관리
  5. 시그널링 서버 통합

👥 팀 강점

🧑‍💻 개발 일지

📌 ALL

📌 FE

📌 BE

💥 트러블 슈팅

📌 FE

📌 BE

🤔 고민

📚 학습 정리

📌 김광현

📌 백지연

📌 전희선

📌 한승헌

🤝 회의록

🗒️ 데일리 스크럼

💬 팀 회고


👨‍👩‍👧‍👦 소개

🌱 문화

🔨 기술 스택

⚙️ 서비스 아키텍쳐

🚧 CI/CD

🌊 Flow

💭 6주를 보내면서

Clone this wiki locally