WebRTC Multiple Peer Video Conferencing, Media Server

희희·2021년 10월 17일

WebRTC로 p2p(1:1) 화상통화는 참고할 자료가 많아서 몇분만 시간을 들이면 쉽게 테스트해볼 수 있다.
하지만 내가 구현해야할 것은 3인 이상이 함께하는 다자간 화상회의이다.
WebRTC에서 이를 구현하려면 미디어 서버를 추가적으로 구현해야 한다.

먼저, WebRTC는 원래 1:1용으로 개발되었기 때문에 서버가 없는 p2p 방식을 사용하고 있었다고 한다. 그래서 셋 이상의 사용자가 통신하기 위해서는 다른 부가적인 서버가 필요하다! 그 중 미디어 서버에 대해서 알아보자.

미디어 서버는 SFU, MCU 두 가지 종류로 나눌 수 있다.

SFU

SFU 방식은 서버가 각 사용자들로부터 계속 미디어 스트림을 받고 다른 사용자들에게 모두 전달하는 방식이다. 서버는 미디어 스트림을 따로 가공하지 않기 때문에 서버 부하가 적다.

출처: https://post.naver.com/viewer/postView.nhn?volumeNo=29147132&memberNo=50640104
그림을 보며 MCU와 비교하면 이해가 쉬울 것이다.

MCU


출처: https://post.naver.com/viewer/postView.nhn?volumeNo=29147132&memberNo=50640104
MCU 방식은 서버가 각 사용자들로부터 미디어 스트림을 받아서 가공 후에 각 사용자들에게 전달한다. 따라서 서버 부하가 크고, CPU 사용량이 많아진다. 대신 클라이언트와 네트워크의 부담은 적다.

여담으로 요즘 잘 쓰이는 게더타운도 WebRTC 기반으로 개발되었다고 한다. 게더타운에 거의 하루종일 접속해 있는 상태라 더 신기했다.

WebRTC 외에 Jitsi를 커스텀해서 쓸까 생각중인데 더 조사해보고 결정을 내려야겠다.

0개의 댓글