webrtc

About WebRTC_basic

growww 2019. 4. 11. 00:14

1. what is WebRTC?

Web Real-Time Communication

웹 기반에서의 실시간 미디어 통신을 위한 표준 및 오픈소스 프로젝트

WebRTC 란 P2P 통신(영상 및 음성 통신용)을 위한 웹 표준

WebRTC 는 브라우저에서 동작하는 유일한 P2P프로토콜

WebRTC 스트림에는 암호화가 필수적이므로 SSL (Secure Sockets Layer)을 사용

UDP 기반의 데이터 통신

 

- WebRTC api

MediaStream (getUserMedia) : 미디어 스트림 동기화. 예를 들어 카메라 및 마이크 입력에서 가져온 스트림은 비디오 및 오디오 트랙을 동기화.

RTCPeerConnection : webRTC의 거의 모든 운용은 PeerConnection 인터페이스로 해결가능, 자신의 SDP를 얻어오는 것과 열결하고 종료하는 모든 라이프사이클을 관장하며 콜백메소드도 제공한다.

RTCDataChannel : 미디어 스트림이 아닌 데이터 스트림을 위한 별도의 인터페이스이다. 각 peer는 최대 65534개의 data channel을 가질수있다.

 

- WebRTC protocol

미디어 전송은 SRTP , 데이터 통신은 SCTP (모두 DTLS 프로토콜 기반)

 

WebRTC bwe

BWE : BandWidth Estimation, WebRTC는 통신기술에서 출발했기 때문에 방송 스트림처럼 불안정한 네트워크를 위한 buffer를 태생적으로 많이 보유할 수가 없다. low latency 기반에서 미디어를 스트리밍 해야하기 때문에 네트워크의 health에 따라 품질에 많은 영향을 받을 수 있다.

WebRTC는 구 peer간의 네트워크 가용한 bandwidth가 어느정도인지 예측하고 판단하여 그것에 맞게 스트림의 양을 조절하는것이 가장 적절한 품질 조절 방법이다.

 

2. why WebRTC?

1초 미만의 low latency 방송을 위한 유일한 기술(그외에는 RTSP 통신튜닝필요)

 

3. where WebRTC?

통화, 방송 등 영상/음성 통신

 

4. how WebRTC?

P2P간 연결을 위해 필요한 서버...

 

Peer to Peer Protocol

P2P는 미디어 및 데이터 전송을 위해서만 사용되며 시그널링을 통해 peer들의 session정보를 전달하는 별도의 중재자가 필요하다

 

Signaling, STUN / TURN / ICE

(나중에 자세히...)

 

5. about WebRTC tech?

- SFU selective forwarding unit

- MCU multi-point control unit

- MESH

6. anything else?

- If your WebRTC stream uses H.264 video, only the audio needs to be transcoded so that your content can be delivered over the standard formats.

 

- WebRTC over TCP bitrate is limited
Depending on your publishing workflow and browser, WebRTC over TCP may be limited to a bitrate of 400 Kbps. We recommend using our WebRTC publish example with the Google Chrome browser to avoid this bitrate limit.

 

- One-to-many and few-to-many WebRTC broadcasts

When ingesting WebRTC streams that you want to deliver to many viewers, we recommend that you use the Transcoder feature in Wowza Streaming Engine to transcode the WebRTC stream into any standard output format, such as AAC audio with H.264 video. Then you can deliver the stream over Apple HLS, Adobe HDS, or MPEG-DASH, which enables you to scale your WebRTC solution without the significant bandwidth that would otherwise be required to deliver your streams to viewers with satisfactory quality.

 

 

[출처]

https://youtu.be/Wf-2GJNm1e4

https://www.wowza.com/docs/webrtc-workflows-in-wowza-streaming-engine

https://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-mediastream

https://webrtcglossary.com/ - 1. 이미지

https://webrtcglossary.com/mixing/ - 5. 이미지

http://www.wowza.com/blog/streaming-protocols-latency - 2. 이미지

'webrtc' 카테고리의 다른 글

SDP(Session Description Protocol)  (0) 2019.08.03
[해석] WebRTC SFU Load Testing (Alex Gouaillard)  (0) 2018.12.13