'2014/05'에 해당되는 글 7건

  1. 2014.05.11 WebRTC를 알아보자 Intro & MediaStream
반응형

WebRTC는 W3C에서 정의한 API로 브라우저와 브러우저 간에 voice calling, video chat, P2P file sharing을 제공하기 우한 것이다. 2011년 구글이 처음 open source project로 발표하였으며 IETF에서 관계된 프로토콜을, W3C에서 browser API에 대한 표준화가 진행중이다. (W3C는 2015년 2월 종료 예정이 미션으로 되어 있음)


주요 Design 또는 Task

1. Web Browser에서 plugin없이 camera와 microphone을 이용하며 이 미디어들을 Capture 하도록 함(API: MediaStream or getUserMedia)

2. Video/Audio를 P2P로 송수신할수 있도록 함(API:RTCPeerConnection)

3. 임의이 데이터를 P2P로 전송할 수 있도록 함(API:RTCDataChannel)


1. MediaStream

MediaStream은 Video와 Audio (또는 둘다 동시) Stream이며, 여러 'tracks'를 가질수 있다. mediastream은 [navigator.getUserMedia()] 를 호출하여 생성한다. 


MediaStream 객체는  window.URL.createObjectURL()에 의해서 생성된 DOM File 또는 Blob Object를 가르키는 URL 객체로 참조된다. 


MediaStream은 0개 이상의 MediaStreamTrack 객체를 가지는데 이 MediaStreamTrack은 1개 이상의 channels를 가진다. MediaStream은 하나의   입력과 출력을 가진다. (다음의 그림 참고(io13webrtc.appspot.com/#16 그림) 


MediaStream은 getUserMedia() 호출에 의한 local media 또는 WebRTC의 PeerConnection API를 통해서 얻어진(다시 말해 네트워크를 통해서 전송되는) non-local media stream으로 분류된다.


다음의 코드는 MediaStream을 얻는 javascript 소스 예이다.


var constraints = {video: true};


function successCallback(stream) {

  var video = document.querySelector("video");

  video.src = window.URL.createObjectURL(stream);

}


function errorCallback(error) {

  console.log("navigator.getUserMedia error: ", error);

}


navigator.getUserMedia(constraints, successCallback, errorCallback); 



constraints는 MediaStream의 내용물을 제어하는데 예를 들어 Media Type, Resolution, Frame rate등을 제어 가능하다. (파라미터는 http://tools.ietf.org/html/draft-alvestrand-constraints-resolution-00#page-4 참고)



반응형
Posted by alias
,