>  기사  >  웹 프론트엔드  >  WebRTC SFU: 전체 가이드.

WebRTC SFU: 전체 가이드.

PHPz
PHPz원래의
2024-07-19 14:32:17926검색

WebRTC SFU(Selective Forwarding Unit)란 무엇인가요?

선택적 전달 장치(SFU)

SFU는 webrtc에서 다자간 화상 통화, 음성 통화 및 데이터 전송을 수행하는 데 사용되는 서버 기반 아키텍처입니다.

SFU는 여러 기기에서 미디어 스트림을 수신한 다음 어떤 스트림을 어떤 기기로 보내야 하는지 결정하는 기기 간 중개자 역할을 합니다.

WebRTC란 무엇인가요?

WebRTC는 오픈 소스 프로젝트로 이를 사용하여 장치 간 실시간 오디오, 비디오 및 데이터 전송을 가능하게 합니다

WebRTC는 웹 브라우저는 물론 앱에서도 실행되며 WebRTC는 거의 모든 최신 브라우저에서 지원되며 비디오, 오디오 통신의 표준입니다

Image description

SFU 또는 선택적 전달 장치의 작동 방식

SFU 작동 방식에 대한 단계별 가이드는 다음과 같습니다

1단계 클라이언트 연결 및 미디어 캡처

  1. 참가자 연결

각 참가자는 먼저 SFU와의 연결을 설정합니다. 이 프로세스에는 세션 설명이 교환되는 신호 서버가 포함됩니다.

세션 설명에는 세션을 설정하는 데 사용되는 중요한 정보가 포함되어 있습니다.

2. 미디어 스트림 캡처

클라이언트 측에서는 마이크의 오디오, 카메라의 비디오 등과 같은 미디어 스트림이 참가자 장치에서 캡처됩니다. 다음 단계에서는 이러한 스트림이 SFU로 전송됩니다.

2단계: SFU로 스트림 전송

  1. 스트림 인코딩 및 전송: 클라이언트 장치는 비디오 및 오디오용 코덱을 사용하여 미디어 스트림을 인코딩하여 SFU로 보냅니다.

이 작업은 암호화가 필요한 경우 RTP 프로토콜 또는 SRTP 프로토콜을 사용하여 수행됩니다

2. SFU 영수증

SFU 또는 선택적 전달 장치는 연결된 각 장치에서 개별 스트림을 수신하고 각 장치에 대해 별도의 인바운드 스트림을 유지합니다.

SFU의 3단계 스트림 처리

  1. 혼합 금지

MCU와 호환되는 SFU에서는 모든 스트림이 서로 분리되어 있으며 혼합이 없습니다

2. 선택적 전달

SFU는 SFU에 연결된 각 장치로부터 별도의 스트림을 수신한 다음 SFU는 각 참가자에 대해 별도의 스트림을 유지합니다

4단계: SFU를 통한 스트림 배포

  1. 적응:

스트림을 사용자에게 전달하기 전에 SFU는 서로 다른 품질의 비디오 코덱을 선택하고 서로 다른 동시 방송 스트림 중에서 선택하는 등 스트림에 대한 특정 조정을 수행합니다.

수신 클라이언트 CPU 및 대역폭 기능을 기반으로 합니다

2*. 스트림 전달*

SFU는 각 클라이언트가 요청하는 스트림을 전달합니다.

클라이언트 기기는 SFU에서 여러 개의 스트림을 수신하거나 단일 비디오 및 오디오 데이터 스트림을 수신할 수도 있습니다

  1. RTP 또는 SRTP 패킷

미디어는 RTP 또는 SRTP 패킷으로 전송되며, 클라이언트 장치마다 CPU 및 대역폭 제한이 다를 수 있기 때문입니다.

SFU는 스트림이 원활하게 흐르고 장치에서 비디오 품질이 원활하도록 스트림 패킷 흐름을 최적화합니다

5단계 고객접수 및 조회

  1. 디코딩: 각 클라이언트는 SFU로부터 RTP 스트림을 수신하고, 클라이언트는 스트림을 디코딩하여 화면에 렌더링합니다.

  2. 동기화: 오디오 및 비디오 동기화는 중요하며 클라이언트 수준에서 처리됩니다. 클라이언트는 RTP 스트림의 타임스탬프와 시퀀스 번호를 사용하여 비디오 및 오디오 재생을 원활하게 동기화합니다.

SFU vs p2p vs MCU

이 섹션에서는 선택적 전달 장치인 P2P인 SFU와 다중 지점 제어 장치인 MCU 간의 차이점을 고려해 보겠습니다.

1.  선택적 포워딩 유닛 SFU

선택적 전달: SFU는 여러 스트림을 수신하고 스트림 콘텐츠를 변경하지 않고 선택적으로 스트림을 장치에 전달합니다

서버 기반: SFU는 서버에 의존하지만 서버는 증기 라우팅에만 사용되며 다른 용도로는 사용되지 않습니다.

장점:

확장성: SFU는 확장성이 뛰어나며 모든 클라이언트 장치로 전송되는 스트림을 관리하여 단일 클라이언트 장치의 로드를 줄여줍니다

낮은 처리 요구 사항: SFU는 스트림을 전달하기만 하고 스트림에서 어떤 처리도 수행하지 않으므로 지연 시간과 CPU 처리 요구 사항이 줄어듭니다.

스트림 유연성:

클라이언트 장치는 여러 개의 스트림을 수신하거나 하나의 스트림만 수신하거나 전혀 스트림을 수신하지 않을 수 있습니다. 이는 모두 클라이언트 장치가 요청하는 스트림과 화면에 표시해야 하는 스트림에 따라 다릅니다.

단점:

대역폭 집약적: SFU는 각 스트림이 서버에 의해 수신되고 SFU에는 모든 스트림을 처리할 CPU와 대역폭이 있어야 하므로 서버 측에서 대역폭 집약적입니다.

2. P2P P2P

P2p 아키텍처에서는 각 참가자가 중간 서버 없이 다른 참가자와 직접 연결됩니다.

그러나 NAT 통과 및 NAT 주변의 스트림 중계를 위해 STUN 서버 또는 TURN 서버가 필요한 경우가 많습니다

턴 서버를 찾고 있다면 Metered TURN 서버 서비스 제공업체

를 고려해 보세요.

Metered는 전 세계에 TURN 서버를 보유한 글로벌 TURN 서버 제공업체로, 최소 지연 시간과 최고의 성능을 위해 TURN 서버에 가장 가까운 사용자에게 연결합니다

단점:

회의에 여러 장치가 있는 경우 각 참가자 장치는 여러 스트림을 처리해야 합니다.

모든 클라이언트 장치에서 CPU 및 대역폭을 많이 사용합니다. 이를 위해 Metered SFU를 고려할 수 있습니다

다중 제어 장치

MCU는 들어오는 모든 스트림을 혼합하고 여러 스트림 중에서 단일 스트림 또는 소수의 스트림을 생성한 다음 이를 모든 클라이언트에 보냅니다.

MCU는 서버에서 많은 CPU 계산과 리소스를 필요로 하며 스트림을 전송할 때 대기 시간도 발생하지만 한 가지 장점은 클라이언트 장치의 계산 및 대역폭 요구 사항을 크게 줄일 수 있다는 것입니다.

과거에는 모바일 장치가 꽤 느리고 네트워크 인프라도 열악할 때 그 당시에는 MCU가 센스를 많이 줬어요

하지만 요즘에는 기술이 발전하면서 지연 시간이 늘어나고 동영상 전송 속도가 느려지는 등 좋지 않은 경험을 제공할 수도 있습니다.

WebRTC에서 SFU의 장점

WebRTC에서 SFU의 장점은 다음과 같습니다

1. 확장성

WebRTC에서 SFU의 가장 중요한 장점은 확장성입니다. P2P 영상 통화의 크기도 조정할 수 있지만 메시를 만들고 크기를 조정하기가 어렵습니다

  • 클라이언트 대역폭 감소

Peer 2 Peer 형식의 여러 클라이언트 장치로 영상 통화를 하는 경우 각 클라이언트는 자신의 스트림을 다른 모든 클라이언트에게 보내야 하며 그 반대의 경우도 마찬가지입니다.

이로 인해 각 클라이언트의 대역폭과 CPU 요구 사항이 기하급수적으로 늘어납니다.

매우 높은 대역폭과 CPU 컴퓨팅 용량이 없는 일부 클라이언트는 영상 통화에 어려움을 겪습니다

2. 품질관리 강화

SFU는 어떤 스트림을 어떤 클라이언트에게 보낼지 지능적으로 결정하여 비디오 품질을 향상시킬 수 있습니다

  • 스트림 적응

SFU는 수신 장치의 대역폭과 CPU 용량에 따라 스트림을 조정할 수 있습니다.

클라이언트 장치의 대역폭이 더 낮은 경우 SFU는 비디오가 버퍼링 없이 원활하게 실행되도록 해당 특정 장치에 낮은 품질의 스트림을 보낼 수 있습니다

3. 클라이언트의 처리 부하 감소

SFU는 스트림 관리에 필요한 대부분의 데이터 처리를 처리하므로 클라이언트 장치 자체는 모든 무거운 작업에서 해방됩니다.

모바일 기기나 CPU 파워인 처리 능력이 낮은 기기에 도움이 됩니다

  • CPU 사용량이 적음

클라이언트 장치는 처리를 위해 SFU로 들어오는 다중 스트림을 인코딩하고 디코딩할 필요가 없습니다. 대신 SFU가 이를 수행합니다.

따라서 이러한 장치는 더 적은 배터리를 소모하고 더 낮은 온도로 작동하며 더 적은 CPU 시간을 필요로 합니다

  • 사용자 경험

CPU 처리 감소로 인해 인터페이스가 더 부드러워지고 장치가 더 시원해지며 전반적으로 더 나은 사용자 경험이 제공됩니다

4. 미디어 처리의 유연성

SFU는 미디어 스트림을 처리하는 방법과 참가자 클라이언트 장치에 비디오를 표시하는 방법에 대해 더 큰 유연성을 제공합니다

  • 개별 스트림 제어

클라이언트가 다운로드하거나 회의 참가자가 다운로드할 스트림과 화면에 스트림을 표시할 방법을 선택할 수 있습니다.

또한 다양한 품질의 스트림을 다운로드하거나 SFU가 클라이언트 장치 대역폭 용량 및 CPU 성능을 기반으로 최상의 스트림을 선택하도록 자동으로 만드는 기능도 있습니다

  • 고급 기능 지원

SFU 또는 선택적 전달 장치는 다음과 같은 다양한 고급 기능을 지원합니다

동시 캐스팅(단일 비디오 스트림의 여러 품질을 전송하는 기능), 확장 가능한 비디오 코덱 등  

5. 향상된 유연성과 보안

SFU를 통과하는 모든 스트림은 엔드 투 엔드 암호화되어 SFU조차도 어떤 스트림이 통과하는지 알 수 없습니다.

종단간 암호화에는 DTLS, SRTP 등의 암호화 프로토콜이 사용됩니다

SFU는 상호 작용을 기록할 수 있지만 규정 준수 목적으로 스트림을 차단할 수도 없습니다.

Image description

측정된 TURN 서버

  1. API: 강력한 API로 서버 관리를 TURN하세요. API를 통해 자격 증명 추가/제거, API를 통해 사용자별/자격 증명 및 사용자 지표 검색, API를 통해 자격 증명 활성화/비활성화, API를 통해 날짜별 사용량 데이터 검색 등의 작업을 수행할 수 있습니다.

  2. 글로벌 지리적 위치 타겟팅: 가장 짧은 대기 시간과 최고의 품질 성능을 위해 자동으로 가장 가까운 서버로 트래픽을 전달합니다. 전 세계 어디에서나 50ms 미만의 지연 시간

  3. 전 세계 모든 지역의 서버: 토론토, 마이애미, 샌프란시스코, 암스테르담, 런던, 프랑크푸르트, 방갈로르, 싱가포르, 시드니, 서울, 달라스, 뉴욕

  4. 낮은 지연 시간: 전 세계 어디서나 50ms 미만의 지연 시간.

  5. 비용 효율적: 대역폭 및 볼륨 할인이 가능한 종량제 가격.

  6. 손쉬운 관리: 사용 로그, 계정이 임계값 한도에 도달할 때 이메일, 청구 기록, 이메일 및 전화 지원을 받으세요.

  7. 표준 준수: UDP, TCP, TLS 및 DTLS에서 RFC 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928을 준수합니다.

  8. 다중 테넌시: 여러 자격 증명을 생성하고 고객 또는 다른 앱별로 사용량을 구분합니다. 사용 로그, 청구 기록 및 임계값 알림을 받으세요.

  9. 엔터프라이즈 신뢰성: SLA를 통한 가동 시간 99.999%.

  10. 엔터프라이즈 규모: 동시 트래픽 또는 총 트래픽에 제한이 없습니다. 계량형 TURN 서버는 엔터프라이즈 확장성을 제공합니다

  11. 월 5GB 무료: 무료 플랜으로 매월 5GB의 TURN 서버 사용량을 무료로 받으세요

  12. 포트 80 및 443에서 실행

  13. TURNS + SSL을 지원하여 심층 패킷 검사 방화벽을 통한 연결을 허용합니다.

  14. TCP와 UDP 모두 지원

  15. 무료 무제한 STUN

위 내용은 WebRTC SFU: 전체 가이드.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.