본문 바로가기

Computer/webrtc15

[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.
[WebRTC] Windows 환경에서 Native Code를 빌드해보자 ㅇ환경ㅇwindows 10 64bitㅇvisual studio 2015 1. depot_tools 설치 https://storage.googleapis.com/chrome-infra/depot_tools.zip 에서 depot_tools를 다운로드 하고 폴더를 푼 다음에, 해당 폴더를 경로로 등록한다. 그리고 환경 변수를 다음과 같이 설정한다. set DEPOT_TOOLS_WIN_TOOLCHAIN=0set GYP_MSVS_VERSION=2015set GYP_GENERATORS=ninja,msvs-ninjaset GYP_DEFINES=component=shared_library target_arch=x64 cmd shell(관리자 권한 부여)에서 gclient를 입력한다. (msysgit, python 등.. 2017. 3. 11.
[WebRTC] STUN 과 TURN 에 대하여 #2 - TURN 서버 설치 이전 포스팅에서는 NAT 환경에서 P2P 연결을 위해서 필요한 것들에 대해서 이야기 하였다. 본 포스팅에서는 TURN 서버 설치에 대해서 알아본다. 오픈 소스 TURN 서버로 구글의 rfc-5766-turn-server 가 있고 여기에 추가적으로 기능을 넣은 co-turn 서버가 있다. 다음의 사이트에서 관련 소스를 받거나 정보를 얻을 수 있다. https://github.com/coturn/coturn 소스를 받아서 컴파일 해보자. (ubuntu 16.04 환경) git clone https://github.com/coturn/coturn.gitcd coturn./configure 여기까지 하게 되면 libevent2 환경이 깔려 있지 않으면 오류가 나타난다. ubuntu의 경우 다음의 명령으로 lib.. 2017. 3. 1.
[WebRTC] STUN 과 TURN 에 대하여 #1 - 개요 VoIP 도 그러하지만, WebRTC 역시 Peer 간 연결을 위해서 NAT 환경에 대한 고려가 필요하다. 이를 위해서 IETF에서 표준을 정의한 것이 바로 STUN과 TURN, 그리고 ICE 이다. 1. NAT에 대하여NAT는 외부망과 분리하고 공인망과 내부망의 IP:Port 를 매핑해주는 것이다. 다음 그림을 보면.. 192.168.100.3:3855 에 대해서 NAT는 외부에 145.12.131.7:6282 로 매핑해서 전달한다. 외부에서 보면 145.12.131.7:6282로 접속하면 되는 것처럼 보이지만 NAT종류에 따라서 달라진다. 1.1 Full Cone NAT 클라이언트와 한번 매핑하면 다른 곳에서도 해당 포트로 접속 가능함 1.2 Restricted Cone NAT 클라이언트와 한번 매핑.. 2017. 3. 1.
Android WebRTC 샘플 app을 빌드해보자. 몇년 전에 WebRTC 관련 프로젝트를 진행했었다. 다시 관련 프로젝트를 진행하게 되어, WebRTC 관련으로 다시 정리해 본다. 이전에 WebRTC Android Library를 빌드하는 부분을 포스팅 한적 있었는데, (webrtc android library 컴파일하기) 현재는 빌드 방법이 달라져서 다시 정리한다. 또한 WebRTC android 기본 코드에는 AppRTCDemo라는 android app을 빌드할 수 있는데, 이 앱은 https://appr.tc 에서 브라우저-앱 간 영상 통화를 테스트 할 수 있다. 참고사이트: https://webrtc.org/native-code/android/ [Android Web RTC Library Build]1. Chromium depot_tools 설치.. 2017. 1. 29.