WebRTC/OpenVidu 정리

전체적인 흐름
1.
1:1 라이브
(흐름, 방식 개념)
2.
1:N 라이브
(다수의 경우 적용 방식 개념)
3.
채팅 적용
4.
미디어 서버 조사
5.
SFU 서버 적용
상세 일정
1주차
2주차
To Do

1주차

24.01.15 ~ 24. 01.19
1:1 라이브
(~24.01.16)
라이브 확장
1:N 라이브(~24.01.17)
채팅(~24.01.17)
User

2주차

24.01.22 ~ 24. 01.24
미디어 서버 조사 → 선택 (주말)
Kurento
SFU 서버 적용
미디어 서버 구축
SFU에 맞춰 수정

WebRTC

WebRTC(Web Real-time communication)
비디오, 음성 및 일반 데이터가 피어간 실시간으로 전송되도록 지원하는 오픈 소스
ICE(Interactive Connectivity Establishment)
peer를 통한 연결이 가능하도록 해주는 프레임워크
STUN(Session Traversal Utilities for NAT) 서버
클라이언트 자신의 IP를 알려줌
Server Reflexive Address: 공인망 IP 응답
TURN(Traversal Using Relays around NAT) 서버
서버와 연결하고 모든 정보를 해당 서버에 전달
Relayed Address, Server Reflexive address: 공인망 + 사설망 IP 모두 응답
NAT(Network Address Transilation)
단말에 공개 IP 주소 할당
WebRTC 종류
Signaling(Mesh)
SFU(Selective Forwarding Unit) 서버
MCU(Multi-point Control Unit) 서버
서버 구축
1.
시그널링 서버 - 약속잡기(만나서 무엇을 할지)
a.
방 존재여부 → 방 생성
b.
최대인원 충족여부
c.
소켓이 속해있는 방 확인
d.
해당 방의 다른 유저에게 signal/answer 등 보냄
e.
연결이 끊겼을 경우 처리
2.
stun 서버 - 약속잡기(어디서 만날지) → ip 알아봐주는 서버
3.
turn 서버 - 만남의장소 (coturn)
4.
미디어 서버 - sfu, mcu 개발 시 필요한 서버
용어 정리
MediaStream
사용자의 카메라와 마이크 같은 곳의 데이터 스트림에 접근
RTCPeerConnection
암호화 및 대역폭 관리
오디오 또는 비디오 연결
RTCDataChannel
영상, 오디오 외의 실시간 데이터 전송 방식
알아봐야할 개념/용어
Data Channel
참고자료

OpenVidu