0. WebRTC: 메시/MCU/SFU 네트워크 아키텍처
1. 소개
- WebRTC 네트워크 아키텍처에는 Mesh, MCU 및 SFU의 세 가지 유형이 있습니다.
- 메시: 비용이 가장 저렴하지만 여러 사람이 실시간으로 상호 작용하는 시나리오를 잘 지원하지 않습니다.
- MCU: 다중 사용자 실시간 상호 작용을 지원하고 오디오 및 비디오 스트림의 재디코딩, 믹싱 및 인코딩이 필요하고 서버에 대한 높은 요구 사항과 가장 높은 비용 및 지연이 필요합니다.
- SFU: 다중 사용자 실시간 상호 작용을 지원하고 서버 측에서 미디어 스트림을 인코딩 및 디코딩할 필요가 없으므로 서버의 요구 사항을 줄이고 지연을 줄입니다.
- 다음은 세 가지 네트워크 아키텍처의 기본 개념, 장단점에 대한 소개입니다.
2. 디렉토리
- 메시 네트워크 아키텍처
- MCU 네트워크 아키텍처
- SFU 네트워크 아키텍처
- 동시 방송 및 SVC 모드
1. 메쉬 네트워크 아키텍처
1. 기본 개념
- 메쉬 네트워크 아키텍처는 여러 개의 터미널을 쌍으로 연결하여 메쉬 구조를 형성하는 것입니다.
- 예를 들어 A, B, C, D 4개의 단말이 다대다 통신을 하는데, A가 자신의 오디오와 비디오 스트림을 공유하고자 할 때 각각 B, C, D로 데이터를 보내야 합니다. B가 미디어를 공유하려면 A, C, D에 각각 데이터를 보내야 합니다.
- 예시 이미지는 다음과 같습니다.
- 위 그림에서 4명의 참가자의 경우 각 오디오 및 비디오 스트림이 1M 대역폭을 점유하는 경우 각 참가자는 자신의 오디오 및 비디오 스트림을 다른 3명의 참가자에게 보내야 하며 이는 3M 업링크 대역폭이 필요하며 다른 3명의 참가자로부터 이를 얻습니다. 동시에 오디오 및 비디오 스트림에는 3M 다운링크 대역폭이 필요합니다. 즉, 각 참가자는 총 6M 업링크 및 다운링크 대역폭이 필요합니다.
2. 장점
- 서버에서 데이터를 전송할 필요가 없으며 STUN/TUTN은 NAT 통과만 담당하며 이는 기존 WebRTC 통신 모델을 사용하여 구현할 수 있으며 미디어 서버를 개발할 필요가 없습니다.
- 클라이언트의 대역폭 리소스를 최대한 활용합니다.
- 서버 리소스가 절약되고 서버 대역폭이 비쌉니다.
3. 단점
- 공유 측에서 미디어 스트림을 공유할 때 미디어 스트림의 복사본을 각 참가자에게 전달해야 하며, 이는 많은 양의 업스트림 대역폭을 점유합니다. 참가자가 많을수록 점유 대역폭이 커집니다.
- 또한 클라이언트의 CPU, 메모리 및 기타 기계와 대역폭 리소스가 제한되어 있고 리소스 점유는 참가자 수와 선형 관계가 있어 다자간 통신 규모가 제한됩니다. 문제가 될 수 있습니다.
- 다중 사용자 통신 중에 일부 참가자가 NAT 침투를 달성할 수 없고 다른 참가자와 통신하려는 경우 더 안정적인 설계가 필요합니다.
- 중앙 집중식 미디어 처리에 도움이 되지 않습니다.예를 들어 미디어 녹음이 불편하고 추가 오디오 및 비디오 스트림을 터미널에서 스토리지 서버로 업로드해야 합니다.
2. MCU 네트워크 아키텍처
1. 기본 개념
- MCU(Multipoint Conferencing Unit) 솔루션은 서버와 여러 개의 터미널로 구성되어 스타 구조를 형성합니다.
- 각 터미널은 공유할 오디오 및 비디오 스트림을 서버로 보내고, 서버는 같은 방에 있는 모든 터미널의 오디오 및 비디오 스트림을 혼합하여 혼합된 오디오 및 비디오 스트림을 생성하여 각 터미널로 전달합니다.
- 예시 이미지는 다음과 같습니다.
- 위 그림에서 4명의 참가자에 대해 각 오디오 및 비디오 스트림이 1M 대역폭을 점유하는 경우 각 참가자는 오디오 및 비디오 스트림을 MCU 서버로 보내야 하며 이는 1M 업링크 대역폭이 필요합니다.MCU 서버가 혼합 스트림을 수행한 후 오디오 및 비디오 스트림이 여전히 1M이면 MCU 서버가 각 참가자에게 전송하고 각 참가자는 1M 다운링크 대역폭이 필요합니다. 즉, 각 참가자는 총 2M 업링크 및 다운링크 대역폭이 필요합니다.
- MCU 네트워크 아키텍처는 디코딩, 트랜스코딩, 스트림 혼합, 인코딩 및 기타 작업이 필요하기 때문에 서버에 많은 압력을 가할 것이며 또한 더 큰 지연을 가져올 것입니다.
2. 장점
- 이 기술은 성숙했으며 하드웨어 화상 회의에 널리 사용됩니다.
- 오디오 및 비디오 게이트웨이로 사용할 수 있으며 디코딩 및 재인코딩을 통해 서로 다른 코덱 장치의 차별화를 보호하고 더 많은 통합 요구를 충족할 수 있습니다.
- 여러 비디오 스트림을 하나의 비디오 스트림으로 혼합하여 모든 참가자가 동일한 사진을 볼 수 있고 사용자 경험이 좋습니다.
- 중앙 집중식 미디어 처리에 도움이 됩니다.예를 들어, 미디어 기록 중에 하나의 스트림만 기록하면 되므로 대역폭을 절약할 수 있습니다.
3. 단점:
- 재디코딩, 트랜스코딩, 믹싱 및 인코딩에는 많은 계산이 필요하고 많은 CPU 및 메모리 시스템 리소스를 소비하며 더 큰 지연이 발생합니다.
- 서버에 많은 부담이 있고 서버에서 혼합할 수 있는 스트림의 수가 제한되어 있습니다.
- 참여자 중 한 명에게만 줌인, 화이트닝 필터 처리를 하는 등 여러 참여자 중 한 명에게만 미디어 처리를 하는 것은 불편하다.
3. SFU 네트워크 아키텍처
1. 기본 개념
- SFU(Selective Forwarding Unit) 솔루션도 서버와 여러 개의 터미널로 구성되어 별 구조를 형성합니다.
- 그러나 SFU는 MCU와 달리 오디오와 비디오 스트림을 혼합하지 않고 특정 단말이 공유하는 오디오와 비디오 스트림을 수신한 후 오디오와 비디오 스트림을 직접 방 안의 다른 단말로 전달한다.
- 실제로 오디오 및 비디오 라우팅 리피터입니다.
- 예시 이미지는 다음과 같습니다.
- 위 그림의 4명의 참가자에 대해 각 오디오 및 비디오 스트림이 1M 대역폭을 점유하는 경우 각 참가자는 오디오 및 비디오 스트림을 SFU 서버로 보내야 하며 이는 1M 업링크 대역폭이 필요하며 동시에 오디오 및 비디오를 얻습니다. SFU 서버에서 다른 세 참가자의 스트림을 수신하려면 3M 다운링크 대역폭이 필요합니다. 즉, 각 참가자는 총 4M 업링크 및 다운링크 대역폭이 필요합니다.
2. 장점
- 데이터 패킷이 직접 전달되기 때문에 인코딩 및 디코딩이 필요하지 않으며 CPU 및 메모리 시스템 리소스의 소비가 적습니다.
- 오디오 및 비디오 스트림의 직접 전송은 대기 시간을 크게 줄이고 실시간 성능을 향상시킵니다.
- 유연하며 다양한 네트워크 조건 및 터미널 유형에 더 잘 적응할 수 있습니다.
- 영상 캐릭터 확대, 화이트닝 필터 처리 등 참여자 개별 미디어 처리 가능
3. 단점
- 오디오 및 비디오 데이터 패킷의 직접 전달로 인해 참가자는 여러 비디오를 볼 때 동기화되지 않을 수 있으며 다른 참가자는 동일한 비디오 스트림의 일관되지 않은 이미지를 볼 수 있습니다.
- 참가자는 동시에 여러 비디오를 보고 여러 비디오 창에서 표시하고 렌더링하면 문제가 발생할 수 있습니다.
- 여러 사람의 실시간 통신을 기록하려면 MCU 네트워크 아키텍처와 비교할 때 여러 스트림을 기록해야 하며 여러 스트림은 또한 많은 재생 어려움을 가져옵니다.
4. 동시 방송 및 SVC 모드
- 현재 많은 SFU 네트워크 아키텍처는 WiFi 및 4G와 같은 다양한 네트워크 조건과 Phone, Pad 및 PC와 같은 다양한 터미널 장치에 적응하는 데 사용되는 SVC 모드 및 Simulcast 모드를 지원합니다.
1. 동시 방송 모드
- Simulcast 모드는 비디오 공유기가 해상도가 다른 여러 비디오 스트림을 SFU 서버에 동시에 보낼 수 있음을 의미합니다(일반적으로 1080P, 720P, 360P와 같은 3개 채널). SFU 서버는 각 단말의 상황에 따라 수신된 3개의 비디오 스트림 중 하나를 선택하여 전송할 수 있다.
- 예를 들어 PC쪽 네트워크가 특히 좋은 경우 PC쪽은 1080P 해상도의 영상을 전송하고, 모바일쪽 네트워크가 좋지 않은 경우 휴대폰은 360P 해상도의 영상을 전송합니다. .
- Simulcast 모드는 다양한 네트워크 환경에 유연하고 지능적으로 적응할 수 있습니다.
2. SVC 모드
- SVC는 스케일러블 비디오 코딩 기술로, 비디오 코딩 시 비디오는 2개 이상의 레이어로 나뉘는데, 이 레이어 중 적어도 하나는 기본 레이어이고 나머지는 인핸스먼트 레이어입니다.
- 기본 계층은 영상 신호의 기본적이고 가장 중요한 정보를 담고 있으며, 수신단은 기본 계층을 수신한 후 기본 품질로 영상을 재구성할 수 있다.
- 인핸스먼트 레이어는 비디오 신호의 상세 정보를 담고 있으며, 수신단에서는 기본 레이어와 인핸스먼트 레이어를 함께 복호화하여 보다 높은 화질의 영상을 복원한다.
- 예를 들어, 비디오는 여러 레이어로 분할됩니다: 기본 레이어는 240P 인코딩 데이터이고 고급 레이어는 480P 및 720P 세부 추가 인코딩 데이터입니다.네트워크 환경은 적절한 패킷을 선택합니다.
- 네트워크 상태가 좋으면 720P, 네트워크 상태가 좋지 않으면 480P 또는 240P를 선택하세요.
- 이렇게 하면 네트워크 환경이 아무리 바뀌어도 클라이언트는 원활하게 플레이할 수 있으며 변경되는 것은 그림의 선명도뿐입니다.