본문 바로가기

딴 생각하는 공대생/일상  ᕙ(•̀‸•́‶)ᕗ

WebRTC 비디오 코덱 (Simulcast VS. SVC)


다자간 영상 서비스에서 사용하는 비디오 코덱은 구조적으로 3가지 형태로 구분할 수 있다.

 

  • Single Layer
  • Scalable Coding
  • Simulcasting

 

Single Layer 하나의 스트림에 하나의 레이어를 인코딩하여 전송하는 방식이며, Saclable Coding하나의 스트림에 다양한 레이어(다양한 해상도, 프레임, 화질)를 인코딩하여 전송하는 방식이고 Simulcasting하나의 영상을 두 개(or 이상)의 스트림에 다른 해상 해상도로 인코딩해서 전송하는 방식이다.

 

 

 

Scalable coding 과 Simulcasting 방식은 Vidyo 사가 명명한 SFU(Selective Forwarding Unit) 서버를 구성하는데 활용한다.

 

WebRTC 개념원리 > 미디어 연결 방식

크로미움 오픈소스와 WebRTC ORG의 노력으로 우린 편하게 웹을 통해 실시간으로 영상과 음성을 송출할 수 있는 WebRTC 라는 프로토콜을 접할 수 있게 되었다. 누구나 손쉽게 영상회의, 화상채팅 등의

WebRTC org

 

 

SVC

- 계층적으로 미디어 정보를 인코딩 한다.

- 단일 스트림으로 영상을 송출한다.

- 수신 측도 SVC 코덱을 지원해야 한다.

 

 

Simulcast

- 클라이언트에서 다양한 해상도로 인코딩을 한다.

- 인코딩한 영상 수만큼 네트워크 대역을 사용한다.

- 수신자 환경에 맞는 적절한 해상도의 영상을 바로 볼 수 있다.

- 다자간 영상 송수신보다는 일방향 서비스에 더 효율적이다.

 

 

Simulcast VS. SVC

- SVC 가 Simulcast 보다 영상 복원력이 높다.

- Simulcast 가 SVC 보다 많은 대역폭을 필요로 한다.

- Simulcast 가 SVC 보다 클라이언트 CPU 자원 소모가 심하다.

- SFU 서버를 좀 더 효율적으로 구성하기 위해서는 Scalable 코딩을 사용하는 것이 좋다.

 


구분 Single Layer  Simulcast Scalable Coding
지원 코덱 VP8
VP9
H.264
Simulcast VP8
Simulcast SVC
H.246 SVC
Scalable VP9

영상 품질 : Single Layer < Simulcast < Scalabe Coding

 

 

 

WebRTC 개념원리 > chrome://chrome-urls/

WebRTC 디버깅은 참으로 짜증난다. 그냥 그렇다. 기본적으로 크로미움에서 제공하는 툴을 최대한 활용하도록 하자. chrome://chrome-urls/ 크롬에서 제공하는 기능들 리스트업되어 있다. 다양한 기능을

WebRTC org


LIST