Computer/webrtc15 WebRTC 미디어 서버, mediasoup 이용해 보기 #1 - Publisher 분석 WebRTC의 미디어 서버 계열은 대체로 수신되는 미디어 영상을 조작하고 전송하는 MCU 와 수신된 미디어를 그대로 포워딩 해주는 SFU 로 나눠진다고 할 수 있다. MCU와 SFU의 장/단점은 이전 포스팅 [WebRTC] MediaServer(MCU/SFU) 정리 에서 확인 가능하다. 이번 포스팅은 SFU 계열의 미디어 서버 인 mediasoup SFU 이용에 대한 것이다. mediasoup 은 core library는 c++로 이루어져 있고, node.js 기반 자바스크립트로 server를 구성할 수 있도록 해주는 node.js api 이다. 최근에 v3 으로 업데이트 되면서 DataChannel 등 흥미로운 기능들이 추가되었다. (https://mediasoup.org/documentation/v3.. 2019. 7. 21. [WebRTC] Janus-Gateway의 Audiobridge Plugin 이용하기 #2: Chrome Browser에서 이용 이전 두 포스팅에서는 1. Janus-Gateway API 분석 2. Audiobridge API 분석 을 설명했었다. 이번 포스팅에서는 Chrome Browser에서 audiobridge 를 이용하는 방법에 대해서 코드를 중심으로 설명한다. 이전 포스팅에서 spec 중심으로 간단한 javascript 코드를 예를 들어 설명했는데, 이번 포스팅은 실제 사용 가능한 javascript 코드를 예를 들어 설명하도록 하겠다. 다음은 상기 1,2 에서 실제 WebRTC 연결 설정까지 필요한 프로토콜을 구현한 코드이다. 이 코드는 HTML 상에서 다음은 실제 console.log 에 출력되는 값들이다.1. connect websocket server addr:wss://XXX.XX.XXX.XXX/api 2. cr.. 2017. 4. 11. [WebRTC] Janus-Gateway의 Audiobridge Plugin 이용하기 #1 : API 설명 이전 포스팅에서는 Janus-Gateway 의 API에 대해서 개략적으로 알아보았다. 이번 포스팅에서는 Janus-Gateway 의 Audiobridge Plugin을 이용하는 방법에 대해서 설명한다. Janus-Gateway 는 WebRTC 기반 서비스 또는 기능은 Plugin 을 통해서 제공한다. 기본적으로 제공하는 Plugin 중 audiobridge 는 음성 그룹 채팅이 가능한 plugin 이다. 그리고 MCU의 특성, 다시 말해 음성 그룹 채팅에 참여하는 Peer 의 음성을 Mixing 해서 전달한다. Mixing 기능을 제공하기 때문에 서버의 CPU를 많이 소모하며, 참여자가 늘어날 수록 CPU 사용율이 Linear 하게 증가되게 된다. Plugin 의 API는 janus 홈페이지에서는 확인이.. 2017. 4. 2. [WebRTC] Janus-Gateway 에 대하여 - API 분석 Janus-Gateway 는 HTTP Rest, WebSocket, RabbitMQ, MQTT, UnixSocket API를 제공한다. 각각 다른 API를 제공하는 것은 아니고, JSON 형태로 API를 제공하며 REST, WebSocket 등등은 이 JSON 값을 전달하기 위한 프로토콜이다. Janus-Gateway의 동작은 다음과 같은 순서로 동작한다. 1. session creation Janus-Gateway는 서비스(Plugin)을 이용하는 클라이언트를 세션으로 관리한다. 세션이 생성되면 이 세션으로 특정 plugin 을 이용하기 위한 요청을 보낼 수 있다. 세션으로 특정 plugin을 이용하기 위해서 생성된 것이 Handle_id 값이다. 이 handle_id 는 Janus-Gateway 와 .. 2017. 4. 1. [WebRTC] Janus-Gateway (MCU) 에 대해서 #1 개요, 설치 1. 개요이전 포스팅(http://alnova2.tistory.com/1118) 에서 MCU/SFU 와 같은 Media Server에 대해서 설명 하였다. 이번 포스팅에서는 MCU 오픈 소스중 하나인 Janus-Gateway에 대해서 논한다. Janus-Gateway 는 다음의 사이트에서 문서를 보거나 소스를 다운로드 받을 수 있다. https://janus.conf.meetecho.com/https://github.com/meetecho/janus-gateway Janus-Gateway는 C로 만들어져 있으며 다른 오픈 소스 MCU 인 Kurento 에 비교해 볼때, 성능적인 면에서 우수하다. (Kurento 의 장점도 있다. 이건 다른 포스팅에서 논하도록 하겠다.) Kurento도 그렇지만 Janus.. 2017. 3. 26. [WebRTC] MediaServer(MCU/SFU) 정리 WebRTC 는 기본적으로 P2P 프로토콜이다. 1:1 통신의 경우 중간에 서버를 경유할 필요가 없이 직접 Peer 간 연결이 되면 되지만 N:N 통신의 경우 Peer들 간에 Mesh 형태로 트래픽이 발생되고 Peer에서 들어오는 Traffic 을 Mixing 해야 한다. 그래서 P2P의 한쪽 Peer에 Server를 두고, 들어오는 Traffic을 Server에서 Mixing 해서 내보내는 MCU(Multipoint Control Unit) 방식과, Mixing 하지 않고 Traffic을 선별적으로 배분해서 보내주는 SFU(Selective Forwarding Unit) 방식이 있다. 이 방식의 장단점은 https://www.slideshare.net/tnoho/sfu 의 다음 그림이 요약해서 설명해 .. 2017. 3. 24. 이전 1 2 3 다음