WebRTC: 메시/MCU/SFU 네트워크 아키텍처

0. WebRTC: 메시/MCU/SFU 네트워크 아키텍처

1. 소개

  1. WebRTC 네트워크 아키텍처에는 Mesh, MCU 및 SFU의 세 가지 유형이 있습니다.
    1. 메시: 비용이 가장 저렴하지만 여러 사람이 실시간으로 상호 작용하는 시나리오를 잘 지원하지 않습니다.
    2. MCU: 다중 사용자 실시간 상호 작용을 지원하고 오디오 및 비디오 스트림의 재디코딩, 믹싱 및 인코딩이 필요하고 서버에 대한 높은 요구 사항과 가장 높은 비용 및 지연이 필요합니다.
    3. SFU: 다중 사용자 실시간 상호 작용을 지원하고 서버 측에서 미디어 스트림을 인코딩 및 디코딩할 필요가 없으므로 서버의 요구 사항을 줄이고 지연을 줄입니다.
  2. 다음은 세 가지 네트워크 아키텍처의 기본 개념, 장단점에 대한 소개입니다.

2. 디렉토리

  1. 메시 네트워크 아키텍처
  2. MCU 네트워크 아키텍처
  3. SFU 네트워크 아키텍처
    1. 동시 방송 및 SVC 모드

1. 메쉬 네트워크 아키텍처

1. 기본 개념

  1. 메쉬 네트워크 아키텍처는 여러 개의 터미널을 쌍으로 연결하여 메쉬 구조를 형성하는 것입니다.
  2. 예를 들어 A, B, C, D 4개의 단말이 다대다 통신을 하는데, A가 자신의 오디오와 비디오 스트림을 공유하고자 할 때 각각 B, C, D로 데이터를 보내야 합니다. B가 미디어를 공유하려면 A, C, D에 각각 데이터를 보내야 합니다.
  3. 예시 이미지는 다음과 같습니다.

이미지.png

  1. 위 그림에서 4명의 참가자의 경우 각 오디오 및 비디오 스트림이 1M 대역폭을 점유하는 경우 각 참가자는 자신의 오디오 및 비디오 스트림을 다른 3명의 참가자에게 보내야 하며 이는 3M 업링크 대역폭이 필요하며 다른 3명의 참가자로부터 이를 얻습니다. 동시에 오디오 및 비디오 스트림에는 3M 다운링크 대역폭이 필요합니다. 즉, 각 참가자는 총 6M 업링크 및 다운링크 대역폭이 필요합니다.

2. 장점

  1. 서버에서 데이터를 전송할 필요가 없으며 STUN/TUTN은 NAT 통과만 담당하며 이는 기존 WebRTC 통신 모델을 사용하여 구현할 수 있으며 미디어 서버를 개발할 필요가 없습니다.
  2. 클라이언트의 대역폭 리소스를 최대한 활용합니다.
  3. 서버 리소스가 절약되고 서버 대역폭이 비쌉니다.

3. 단점

  1. 공유 측에서 미디어 스트림을 공유할 때 미디어 스트림의 복사본을 각 참가자에게 전달해야 하며, 이는 많은 양의 업스트림 대역폭을 점유합니다. 참가자가 많을수록 점유 대역폭이 커집니다.
    1. 또한 클라이언트의 CPU, 메모리 및 기타 기계와 대역폭 리소스가 제한되어 있고 리소스 점유는 참가자 수와 선형 관계가 있어 다자간 통신 규모가 제한됩니다. 문제가 될 수 있습니다.
  2. 다중 사용자 통신 중에 일부 참가자가 NAT 침투를 달성할 수 없고 다른 참가자와 통신하려는 경우 더 안정적인 설계가 필요합니다.
  3. 중앙 집중식 미디어 처리에 도움이 되지 않습니다.예를 들어 미디어 녹음이 불편하고 추가 오디오 및 비디오 스트림을 터미널에서 스토리지 서버로 업로드해야 합니다.

2. MCU 네트워크 아키텍처

1. 기본 개념

  1. MCU(Multipoint Conferencing Unit) 솔루션은 서버와 여러 개의 터미널로 구성되어 스타 구조를 형성합니다.
  2. 각 터미널은 공유할 오디오 및 비디오 스트림을 서버로 보내고, 서버는 같은 방에 있는 모든 터미널의 오디오 및 비디오 스트림을 혼합하여 혼합된 오디오 및 비디오 스트림을 생성하여 각 터미널로 전달합니다.
  3. 예시 이미지는 다음과 같습니다.

이미지.png

  1. 위 그림에서 4명의 참가자에 대해 각 오디오 및 비디오 스트림이 1M 대역폭을 점유하는 경우 각 참가자는 오디오 및 비디오 스트림을 MCU 서버로 보내야 하며 이는 1M 업링크 대역폭이 필요합니다.MCU 서버가 혼합 스트림을 수행한 후 오디오 및 비디오 스트림이 여전히 1M이면 MCU 서버가 각 참가자에게 전송하고 각 참가자는 1M 다운링크 대역폭이 필요합니다. 즉, 각 참가자는 총 2M 업링크 및 다운링크 대역폭이 필요합니다.
  2. MCU 네트워크 아키텍처는 디코딩, 트랜스코딩, 스트림 혼합, 인코딩 및 기타 작업이 필요하기 때문에 서버에 많은 압력을 가할 것이며 또한 더 큰 지연을 가져올 것입니다.

2. 장점

  1. 이 기술은 성숙했으며 하드웨어 화상 회의에 널리 사용됩니다.
  2. 오디오 및 비디오 게이트웨이로 사용할 수 있으며 디코딩 및 재인코딩을 통해 서로 다른 코덱 장치의 차별화를 보호하고 더 많은 통합 요구를 충족할 수 있습니다.
  3. 여러 비디오 스트림을 하나의 비디오 스트림으로 혼합하여 모든 참가자가 동일한 사진을 볼 수 있고 사용자 경험이 좋습니다.
  4. 중앙 집중식 미디어 처리에 도움이 됩니다.예를 들어, 미디어 기록 중에 하나의 스트림만 기록하면 되므로 대역폭을 절약할 수 있습니다.

3. 단점:

  1. 재디코딩, 트랜스코딩, 믹싱 및 인코딩에는 많은 계산이 필요하고 많은 CPU 및 메모리 시스템 리소스를 소비하며 더 큰 지연이 발생합니다.
  2. 서버에 많은 부담이 있고 서버에서 혼합할 수 있는 스트림의 수가 제한되어 있습니다.
  3. 참여자 중 한 명에게만 줌인, 화이트닝 필터 처리를 하는 등 여러 참여자 중 한 명에게만 미디어 처리를 하는 것은 불편하다.

3. SFU 네트워크 아키텍처

1. 기본 개념

  1. SFU(Selective Forwarding Unit) 솔루션도 서버와 여러 개의 터미널로 구성되어 별 구조를 형성합니다.
  2. 그러나 SFU는 MCU와 달리 오디오와 비디오 스트림을 혼합하지 않고 특정 단말이 공유하는 오디오와 비디오 스트림을 수신한 후 오디오와 비디오 스트림을 직접 방 안의 다른 단말로 전달한다.
    1. 실제로 오디오 및 비디오 라우팅 리피터입니다.
  3. 예시 이미지는 다음과 같습니다.

이미지.png

  1. 위 그림의 4명의 참가자에 대해 각 오디오 및 비디오 스트림이 1M 대역폭을 점유하는 경우 각 참가자는 오디오 및 비디오 스트림을 SFU 서버로 보내야 하며 이는 1M 업링크 대역폭이 필요하며 동시에 오디오 및 비디오를 얻습니다. SFU 서버에서 다른 세 참가자의 스트림을 수신하려면 3M 다운링크 대역폭이 필요합니다. 즉, 각 참가자는 총 4M 업링크 및 다운링크 대역폭이 필요합니다.

2. 장점

  1. 데이터 패킷이 직접 전달되기 때문에 인코딩 및 디코딩이 필요하지 않으며 CPU 및 메모리 시스템 리소스의 소비가 적습니다.
  2. 오디오 및 비디오 스트림의 직접 전송은 대기 시간을 크게 줄이고 실시간 성능을 향상시킵니다.
  3. 유연하며 다양한 네트워크 조건 및 터미널 유형에 더 잘 적응할 수 있습니다.
  4. 영상 캐릭터 확대, 화이트닝 필터 처리 등 참여자 개별 미디어 처리 가능

3. 단점

  1. 오디오 및 비디오 데이터 패킷의 직접 전달로 인해 참가자는 여러 비디오를 볼 때 동기화되지 않을 수 있으며 다른 참가자는 동일한 비디오 스트림의 일관되지 않은 이미지를 볼 수 있습니다.
  2. 참가자는 동시에 여러 비디오를 보고 여러 비디오 창에서 표시하고 렌더링하면 문제가 발생할 수 있습니다.
  3. 여러 사람의 실시간 통신을 기록하려면 MCU 네트워크 아키텍처와 비교할 때 여러 스트림을 기록해야 하며 여러 스트림은 또한 많은 재생 어려움을 가져옵니다.

4. 동시 방송 및 SVC 모드

  1. 현재 많은 SFU 네트워크 아키텍처는 WiFi 및 4G와 같은 다양한 네트워크 조건과 Phone, Pad 및 PC와 같은 다양한 터미널 장치에 적응하는 데 사용되는 SVC 모드 및 Simulcast 모드를 지원합니다.

1. 동시 방송 모드

  1. Simulcast 모드는 비디오 공유기가 해상도가 다른 여러 비디오 스트림을 SFU 서버에 동시에 보낼 수 있음을 의미합니다(일반적으로 1080P, 720P, 360P와 같은 3개 채널). SFU 서버는 각 단말의 상황에 따라 수신된 3개의 비디오 스트림 중 하나를 선택하여 전송할 수 있다.
    1. 예를 들어 PC쪽 네트워크가 특히 좋은 경우 PC쪽은 1080P 해상도의 영상을 전송하고, 모바일쪽 네트워크가 좋지 않은 경우 휴대폰은 360P 해상도의 영상을 전송합니다. .
  2. Simulcast 모드는 다양한 네트워크 환경에 유연하고 지능적으로 적응할 수 있습니다.

이미지.png

2. SVC 모드

  1. SVC는 스케일러블 비디오 코딩 기술로, 비디오 코딩 시 비디오는 2개 이상의 레이어로 나뉘는데, 이 레이어 중 적어도 하나는 기본 레이어이고 나머지는 인핸스먼트 레이어입니다.
    1. 기본 계층은 영상 신호의 기본적이고 가장 중요한 정보를 담고 있으며, 수신단은 기본 계층을 수신한 후 기본 품질로 영상을 재구성할 수 있다.
    2. 인핸스먼트 레이어는 비디오 신호의 상세 정보를 담고 있으며, 수신단에서는 기본 레이어와 인핸스먼트 레이어를 함께 복호화하여 보다 높은 화질의 영상을 복원한다.
  2. 예를 들어, 비디오는 여러 레이어로 분할됩니다: 기본 레이어는 240P 인코딩 데이터이고 고급 레이어는 480P 및 720P 세부 추가 인코딩 데이터입니다.네트워크 환경은 적절한 패킷을 선택합니다.
    1. 네트워크 상태가 좋으면 720P, 네트워크 상태가 좋지 않으면 480P 또는 240P를 선택하세요.
  3. 이렇게 하면 네트워크 환경이 아무리 바뀌어도 클라이언트는 원활하게 플레이할 수 있으며 변경되는 것은 그림의 선명도뿐입니다.

이미지.png

Supongo que te gusta

Origin blog.csdn.net/weixin_41910694/article/details/128855210
Recomendado
Clasificación