2월, 2020의 게시물 표시

[WebRTC] WebRTC란 무엇인가요? WebRTC 시작하기

WebRTC의 역사: Web에서의 끝판왕 목표 중 하나는 영상와 육성을 사용하여 사람간 " 실시간통신(Real Time Communication: RTC) "을 가능하게 하는 것입니다. 이는 우리가 텍스트 입력을 하는것처럼 자연스러워야 합니다. Web에서는 RTC 기술을 접목하는 것이 특히 더 어려웠습니다. Gmail의 video chat이 2008년에 인기를 얻었으며 2011년에는 Google에서 행아웃을 출시했습니다. Google은 RTC에 사용되는 많은 컴포넌트들을 개발한 GIPS라는 회사를 인수하였으며 GIPS에서 개발한 기술들을 오픈소스로 풀어버렸습니다. 그리고 RTC의 기준을 만들기위해 노렸했습니다. 그리고 2011년 5월 에릭슨에서 처음으로 WebRTC를 도입하여 개발하였습니다. WebRTC 어플리케이션들은 여러가지를 해야됩니다: - 스트리밍되는 오디오, 비디오 혹은 다른 데이터를 가져오기 - 다른 WebRTC 클라이언트와 연결할 수 있도록, IP주소, 포트와 같은 네트워크 정보를 받아오고 이를 서로 교환하기(NAT과 Firewall을 통해서도) - Signaling communication을 조직하여 세션을 시작 / 종료 / 에러를 보고합니다 - 미디어와 클라이언트의 정보를 교환합니다(해상도, 코덱 등) - 스트리밍되는 오디오 , 비디오, 데이터를 주고받습니다. 이를 위해 WebRTC는 다음과 같은 API들을 제공합니다: - MediaStream: data stream에 access할 수 있도록 합니다(웹캠, 마이크 등) - RTCPeerConnection: - RTCDataChannel: peer-to-peer간의 generic data 통신 Signaling: Session control, network and media information: WebRTC는 RTCPeerConnection을 사용하여 browsers(peers) 간의 스트리밍 데이터를 통신합니다. 하지만 WebRTC는