[webRTC 뽀개기] webRTC란

2020. 7. 15. 14:48web tech/webRTC

webRTC가 무엇인가


 

webRTC의 약자는 Web Real-Time Communications입니다.  모바일폰 , TV, 컴퓨터가 공통된 하나의 플랫폼에서 모두 real-time으로 대화하는 세상을 꿈꾸며 구글에서 제시한 오픈 소스 프로젝트입니다.

 

webRTC를 이용하면 웹 애플리케이션에 비디오채팅 기능, P2P(peer to peer) 데이터 공유 기능을 쉽게 추가할 수 있습니다.

 

 

* 지원범위 : Chrome / Opera / Firefox / 데스크톱 / 안드로이드의 Chrome / ios 및 Android 기본 application에서도 사용가능합니다.

 

webRTC 기본 체계


webRTC를 이용해 다른 웹브라우저에 대한 P2P 설정을 빠르고 쉽게 설정할 수 있습니다.

웹브라우저에 내장되어 패킷 손실, 연결 끊김, NAT(Network Address Translation: 네트워크 주소변환 )통과 등을 처리하는 프레임워크나 라이브러리를 제공하고 있습니다. 기타 플러그인이나 타사 소프트웨어 필요없이 오픈소스로 제공하고 있습니다.

 

제공되는 webRTC API에는 미디어 캡처 - 오디오 및 비디오 인코딩/디코딩 - 전송계층 -  세션 관리

가 포함되어 있습니다.

 

 

 

1. 미디어 캡쳐

첫 번째 애플리케이션이 동작하는 단계는 사용자 장치의 카메라와 마이크 액세스하는 것입니다. 사용 가능한 기기의 유형을 감지하고 이런 기기에 액세스하고 stream을 관리할 사용자 권한을 얻습니다.

 

2. 오디오 및 비디오를 인코딩 및 디코딩

인코딩과 디코딩이 사용되는 단계입니다. 비디오 프레임, 오디오 웨이브를 작은 chunk(단위)로 나누고 압축하는 프로세스입니다.

 * 이 알고리즘을 코덱(codec)이라고 합니다.

 비지니스 목표가 다른 여러 회사에서 유지 관리하는 수 많은 코덱이 있습니다. 

WebRTC에는 H.264, iSAC, Opus및 VP8같은 코덱들을 지원합니다. 두 브라우저가 서로 연결되면 두 사용자 간 가장 최적으로 지원되는 코덱을 선택합니다. 

 

* NAT : IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 트래픽을 주고 받는 기술.

 

 

 

 

 

 

 

 

 

 

[reference]

https://www.html5rocks.com/ko/tutorials/webrtc/basics/#ice