본문 바로가기

Computer195

[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.
[WebRTC] WebRTC Native API 에 대하여 - #1 PeerConnection 을 생성해 보자 Window에서 C++ 기반의 Native WebRTC App을 개발하기 위해서는 WebRTC Native API 를 사용해야 한다. WebRTC Native API의 핵심은 PeerConnection 에 있는데, 제대로 설명이 된 문서를 구하기는 쉽지 않다. 단 WebRTC Native Library 를 Windows 환경 기반으로 빌드하였다면 내려받은 소스 폴더 중 src\examples\peerconnection\client 에 있는 소스를 분석해 보면 Native API를 사용하는 방법을 알 수 있다. 분석시 참고해야 할 자료는 https://webrtc.org/native-code/native-apis/ 에 나와 있는 다음의 블록 다이어 그램을 봐야 한다. 그리고 Threading Model 부.. 2017. 3. 20.
[WebRTC] windows native app 빌드 환경 설정 #http://stackoverflow.com/questions/39748072/linking-native-webrtc-application-with-visual-studio 에 visual studio로 webrtc 콘솔 프로그램을 빌드하는 환경에 대한 글들이 있다. 실제로 빌드하기 위해서는 추가적으로 해야 할 것들이 더 있는데, 이번 포스팅에서는 WebRTC Windows Native App 빌드 환경 구성에 대해서 논한다. ㅇ 환경 Visual Studio 2017ㅇ Windows에서 빌드된 WebRTC 라이브러리 우선 Visual Studio 에서 [새 프로젝트] 에서 "win32 콘솔 응용 프로그램" 을 선택하여 다음의 코드를 넣는다. #include "stdafx.h" #define WEBRT.. 2017. 3. 17.