이 기사에서는 Janus WebRTC 서버와 SFU를 사용하여 화상 통화 앱을 만들겠습니다
또한 Metered.ca SFU에 대해 알아보고 이것이 Janus Server보다 더 나은 옵션인 이유를 알아보겠습니다
Janus는 오픈 소스 범용 WebRTC SFU 서버입니다. 복잡한 WebRTC 프로토콜을 처리하여 실시간 통신 앱을 용이하게 하고 미디어 교환 목적에 맞는 안정적인 서버를 제공하는 모듈형 게이트웨이입니다
모듈형 아키텍처: Janus는 각 플러그인이 특정 기능을 갖는 플러그인 기반 시스템을 갖추고 있습니다. 이러한 모듈성을 통해 사용자 정의 및 확장이 가능합니다
프로토콜 처리: Janus는 webrtc 연결 설정에 필요한 신호 및 협상을 관리합니다.
상호 운용성: Janus는 미디어 코덱을 지원하고 다양한 클라이언트 및 브라우저와 호환되므로 Janus는 광범위한 호환성을 갖습니다.
확장성: 여러 연결을 효율적으로 처리하도록 설계된 Janus는 특정 지리적 영역 내에서 확장 가능합니다. (즉, Janus를 사용하는 모든 사용자가 작은 지리적 영역 내에 있으면 잘 작동합니다)
SFU 또는 선택적 전달 장치는 WebRTC 앱에서 다양한 미디어 참여자 간에 미디어 스트림을 효율적으로 라우팅하는 데 사용되는 미디어 서버 아키텍처입니다.
SFU는 각 참가자로부터 들어오는 비디오 스트림을 수신한 다음 요청에 따라 스트림을 다른 참가자에게 선택적으로 전달합니다.
즉, 모든 참가자가 자신의 스트림을 SFU에 푸시하는 동안 각 참가자는 참가자가 요청한 스트림을 받습니다.
확장성: SFU는 인코딩 및 디코딩과 같은 계산 집약적인 작업을 수행하지 않고 스트림을 사용자에게 전달하기 때문에 많은 수의 연결을 처리할 수 있습니다
낮은 대기 시간: SFU는 처리 없이 스트림을 전달하므로 대기 시간이 짧아집니다. 하지만 사용자가 전 세계에 있다면 metered.ca cloud sou
대역폭 최적화
유연성 및 제어: 참가자는 수신하려는 항목에 대해 더 큰 유연성을 갖습니다. 예를 들어 오디오만 수신하거나 특정 참가자의 비디오 스트림을 수신하려는 경우 다음을 선택할 수 있습니다. 그렇게 하세요
비용 효율성: SFU는 MCU에 비해 처리가 덜 필요하므로 클라우드에서 더 작은 인스턴스를 사용하는 것이 좋습니다
미디어 품질 보존: SFU는 미디어 스트림에 대해 어떠한 처리도 수행하지 않고 요청된 참가자에게 스트림을 전달하기 때문에 미디어 품질을 보존합니다.
더욱 쉬워진 고급 기능 구현
신뢰성 향상: 서버에서 미디어를 처리하지 않으므로 실패 지점이 줄어듭니다. SFU는 중복성을 위해 클러스터링할 수도 있으므로 한 서버에 문제가 발생하더라도 서비스가 계속 활성 상태로 유지되도록 할 수 있습니다.
앱에 Janus SFU를 통합하려면 다음 단계가 필요합니다. 애플리케이션에 Janus를 구현하는 단계별 프로세스는 다음과 같습니다.
시스템 준비
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
우분투나 데비안 같은 곳에 이러한 종속성을 쉽게 설치할 수 있습니다
apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake
Janus 다운로드 및 빌드
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
야누스 구성
구성 파일 편집
필요한 플러그인 활성화
SSL 인증서 설정
SSL 인증서 생성
구성 업데이트
Janus 서버 시작
./configure --prefix=/opt/janus
작동 확인
개발 환경 설정
프런트 엔드 프레임워크 선택
WebRTC 라이브러리 포함
시그널링 서버 구축
영상방 만들기 또는 참여하기
로컬 미디어 스트림 처리
make sudo make install sudo make configs
HTML의 비디오 요소에 로컬 스트림을 연결하여 사용자에게 스트림을 재생합니다
5. Janus에 게시
RTCPeerConnection을 사용하여 SDP 제안 생성
API를 사용하여 Janus에 제안 보내기
야누스로부터 SDP 답변을 받아 원격설명으로 설정
6. 원격 스트림 구독
참여 메시지와 이벤트 메시지를 처리하여 다른 회의 참가자의 알림을 들을 수 있습니다
가입자를 위한 피어 연결을 만듭니다. 즉, 각 원격 참가자에 대해 새 RTCPeerConnection을 만들어야 합니다.
원격 스트림 처리, 원격 스트림 가져오기 및 HTML 비디오 요소에 첨부하여 사용자 웹 브라우저에서 비디오 재생
이벤트 리스너 및 핸들러 구현
Metered Global Cloud SFU는 Metered.ca의 클라우드 기반 선택적 전달 장치입니다
Metered SFU를 사용하면 개발자는 비디오, 오디오, 데이터 전송을 포함한 모든 유형의 애플리케이션을 구축할 수 있습니다
Metered SFU는 독점 SDK 없이 기본 WebRTC API 및 HTTP를 사용하여 실행됩니다.
사용자는 지리적 위치에 따라 가장 가까운 SFU로 자동 라우팅됩니다.
여러 SFU가 고속 상호 연결을 사용하여 전 세계적으로 서로 연결되므로 지연 시간이 최소화됩니다.
글로벌 배포:
플랫폼 독립성
유연한 게시-구독 모델:
확장성
비용 효율성:
연결 설정
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
ㄴ. 로컬 SDP 제안 보내기
ㄷ. SFU 원격 SDP 수신
디. 연결이 완료되었습니다
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
트랙 게시
apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake
ㄴ. SDP 제안 생성 및 전송
업데이트된 SDP 제안을 SFU에 보냅니다
SFU 응답을 받아 SDP에 설정
트랙 구독
SFU에 트랙 구독을 요청하세요
확장성
미디어 유통
대규모 스트리밍
플랫폼 독립성
유연한 게시 구독 모델
비용 효율성
글로벌 SFU 네트워크:
배포 및 유지 관리
측정된 SFU:
야누스
확장성 및 성능
계량형 SFU
야누스
비용 구조
계량형 SFU
야누스
유연성 및 기능
계량형 SFU
야누스
통합 용이성
계량형 SFU
측정된 TURN 서버
API: 강력한 API로 서버 관리를 시작하세요. API를 통해 자격 증명 추가/제거, API를 통해 사용자별/자격 증명 및 사용자 지표 검색, API를 통해 자격 증명 활성화/비활성화, API를 통해 날짜별 사용량 데이터 검색 등의 작업을 수행할 수 있습니다.
글로벌 지리적 위치 타겟팅: 자동으로 트래픽을 가장 가까운 서버로 전달하여 지연 시간을 최소화하고 성능을 최고화합니다. 전 세계 어디에서나 50ms 미만의 지연 시간
전 세계 모든 지역의 서버: 토론토, 마이애미, 샌프란시스코, 암스테르담, 런던, 프랑크푸르트, 방갈로르, 싱가포르, 시드니, 서울, 달라스, 뉴욕
낮은 지연 시간: 전 세계 어디에서나 50ms 미만의 지연 시간.
비용 효율적: 대역폭 및 볼륨 할인이 가능한 종량제 가격.
손쉬운 관리: 사용 로그, 계정이 임계값 한도에 도달할 때 이메일, 청구 기록, 이메일 및 전화 지원을 받으세요.
다중 테넌시:
여러 개의 자격 증명을 생성하고 고객 또는 다른 앱별로 사용량을 구분합니다. 사용 로그, 청구 기록 및 임계값 알림을 받으세요.엔터프라이즈 안정성:
SLA를 통한 99.999% 가동 시간.엔터프라이즈 규모:
동시 트래픽 또는 총 트래픽에 제한이 없습니다. 계량형 TURN 서버는 엔터프라이즈 확장성을 제공합니다5GB/월 무료:
무료 플랜으로 매월 5GB 무료 TURN 서버 사용량을 받으세요포트 80 및 443에서 실행
위 내용은 Janus WebRTC 서버 및 SFU: 실시간 화상 통화 앱의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!