-
Notifications
You must be signed in to change notification settings - Fork 2
11 19 회의
Seungheon Han edited this page Nov 30, 2024
·
1 revision
-
Room 생성
- 사용자가 방송 송출을 위해 Room을 생성.
-
Producer 생성
- Room에 대해
createProducer()
호출:- Video Producer 생성.
- Audio Producer 생성.
- Room에 대해
-
PlainTransport 생성
- Producer 생성 시, 미디어 스트림 전송을 위해
PlainTransport
를 새로 생성.
- Producer 생성 시, 미디어 스트림 전송을 위해
-
Consumer 생성
- PlainTransport에서 Consumer를 생성:
- Video Producer만 사용하여 Consumer 생성.
- PlainTransport에서 Consumer를 생성:
-
Record 서버로 데이터 전송
- PlainTransport를 통해 Record 서버에 미디어 스트림 데이터 전송.
-
썸네일 생성
- Record 서버:
- 미디어 스트림 데이터를 수신.
- FFmpeg를 사용해 프레임 캡처.
- 캡처된 이미지를 Object Storage에 저장.
- Record 서버:
-
createProducer()
호출 시 PlainTransport를 생성:- Video Producer와 Audio Producer가 각각 생성됨.
- PlainTransport에서 Consumer를 생성할 때 Video Producer만 사용:
-
consumerService.createConsumers()
메서드로 Consumer 생성. - 예제 코드:
// 단일 Consumer 생성 this.consumer.createConsumer(); // 여러 Producer로 Consumer 생성 const [consumer] = this.consumer.createConsumers([producer]);
-
-
transport.connect()
호출로 Record 서버와 연결. - 이후 Record 서버는 데이터를 처리하고 썸네일 생성 작업 수행.
-
PlainTransport와 Consumer 생성:
- Video Producer를 활용해 Consumer를 생성.
- Consumer 생성 후 Record 서버와 Transport 연결.
-
썸네일 생성:
- Record 서버에서 미디어 스트림 데이터를 받아 FFmpeg으로 처리.
- 생성된 썸네일을 Object Storage에 저장.
- Mediasoup 포트 매핑 문제
- swagger 같은 응답 코드에 다양한 응답 보여주기
- Sudo가 계속 비밀번호를 요청함
- Docker 이미지가 너무 크다
- Git action에서 도커 이미지 빌드 시간을 단축시켜보자
- Docker compose를 이용해서 메모리 사용률을 줄여보자
- 방송 녹화 시 CPU 과부하 문제를 해결해보자
- Release 브랜치? 너 필요해?
- 로딩이 너무 짧아…!
- NestJS ORM으로 무엇을 사용해야 할까?
- WebRTC를 이용한 1:N 스트리밍 서비스에서 시그널링 서버가 필요할까?
- 실시간 채팅 구현: 인메모리 방식을 선택한 이유
- MySQL 아키텍처 개선: DB 의존성 분리와 서버 역할 명확화
- 브라우저 창이 최소화되면 비디오 송출이 안된다…!
- Mediasoup 기본 개념
- DLTS와 Signaling
- Tell, Don't Ask (TDA) 원칙이란
- VPC(Virtual Private Cloud) 학습 정리
- 순환참조: A 서비스 ‐ B 서비스 vs. A 서비스 ‐ B 레포지토리
- Dto 메서드 전략
- WebRTC란?
- 자바스크립트 패키지 매니저(npm, yarn, pnpm)
- shadcn/ui을 이용해 UI 개발 생산성 높이기
- React 이벤트 핸들러 네이밍(on vs handle)
- React-router-dom의 createBrowserRouter을 사용해보기
- fetch vs axios