미디어 전송
SFU 미디어 플레인이 포워딩을, 자체 컨트롤 플레인이 스케줄링과 인증을 담당하며 엔드투엔드 지연은 200ms 수준으로 안정적입니다.
- SFU 클러스터가 채널 단위로 가까운 노드에 접속합니다
- 약한 네트워크 대응: 동적 비트레이트, 패킷 손실 재전송, 지터 버퍼
- 1:1, 다자간, 라이브가 하나의 채널 모델을 공유합니다
클라우드와 프라이빗 두 가지 형태로 제공합니다. 전체 기능을 자체 서버에 배포하면 계정, 메시지, 녹화 파일이 내부망에 남습니다 전체 스택을 자체 서버에 프라이빗 배포
미디어 플레인은 부드러운 전송을, 컨트롤 플레인은 제어 가능성을, 녹화와 품질은 안정적인 제공을 담당합니다.
SFU 미디어 플레인이 포워딩을, 자체 컨트롤 플레인이 스케줄링과 인증을 담당하며 엔드투엔드 지연은 200ms 수준으로 안정적입니다.
1:1 통화, 다자간 회의, 인터랙티브 라이브, 음성 룸 네 가지 시나리오를 바로 사용할 수 있으며, 실행 가능한 데모도 함께 제공합니다.
클라우드 녹화는 composite, individual, web 세 가지 모드를 제공하며, 녹화 결과는 콜백으로 고객의 스토리지에 전달할 수 있습니다.
실시간 품질 모니터링 대시보드와 사용량 계량을 기본으로 제공하므로, 문제를 추적하고 비용을 확인할 수 있습니다.
통화, 회의, 라이브, 음성 룸은 채널 / 사용자 / 역할이라는 세 가지 개념을 공유하므로, 시나리오를 바꿀 때는 파라미터만 조정하면 됩니다.
발신, 응답, 거절, 종료의 전체 상태 머신을 제공하며 상담, 진료, 소셜 시나리오에 적합합니다.
다중 화면 구독과 레이아웃 전환을 지원하며, 호스트가 멤버를 음소거하고 입장 권한을 관리할 수 있습니다.
방송자는 송출하고 시청자는 구독하며, 마이크 연결과 합성 후 CDN 재송출을 지원합니다.
오디오만 전송하며 방 입·퇴장과 마이크 자리 관리를 제공해 마이크 연결 및 소셜 시나리오에 적합합니다.
미디어 플레인은 채널 단위로 가까운 SFU 노드에 접속하고, 컨트롤 플레인은 스케줄링과 장애 전환을 담당합니다. 네트워크가 불안정하면 비트레이트를 자동으로 낮추고 키프레임을 재전송해 화면이 뭉개지거나 소리가 끊기지 않습니다.
회의와 수업에서 가장 자주 쓰는 두 가지, 화면 공유와 녹화 보관입니다. 화면 공유는 창과 애플리케이션 두 단위를 지원하고, 녹화는 클라우드에서 처리해 단말 성능을 쓰지 않습니다.
Web, 모바일, 데스크톱과 크로스플랫폼 프레임워크를 모두 지원하며, UI Kit이 React와 Flutter 컴포넌트를 기본 제공해 회의 화면 코드를 절반으로 줄일 수 있습니다.
컨트롤 플레인과 미디어 플레인을 분리했습니다. 인증, 스케줄링, 계량은 컨트롤 플레인이, 음성·영상 스트림은 미디어 플레인이 담당하므로 장애와 확장이 서로 영향을 주지 않습니다.
컨트롤 플레인은 Token 발급, 사용량 계량, 콜백 전달을 자체 제공하며, 미디어 플레인은 SFU 클러스터를 기반으로 탄력적으로 확장·축소됩니다.
서버 SDK는 Node, Java, Go, Python, .NET, PHP 6개 언어를 지원하며 동일한 로직으로 동작합니다.
플랫폼별 연동 예시는 문서 센터에서, 부하 테스트와 품질 지표 설명은 지식 베이스에서 확인하실 수 있습니다.
import { RtcServer } from '@feiyan/rtc-server-sdk';
// AppID / AppCertificate: console → App → Keys
const rtc = new RtcServer({
appId: process.env.APP_ID,
appCertificate: process.env.APP_CERTIFICATE,
});
// Sign a room token: channel, user, role (publisher / subscriber)
const token = rtc.signToken({
channel: 'room_9001',
userId: 'user_1001',
role: 'publisher',
ttl: 3600,
});
// Control-plane operations: ban, renew, usage queries
await rtc.banUser({ channel: 'room_9001', userId: 'user_1001' });
const usage = await rtc.queryUsage({ from: '2026-10-01', to: '2026-10-31' }); 더 자세한 파라미터와 지표 설명이 필요하시면 문서 센터에서 검색하시거나 티켓을 제출해 지원을 받으실 수 있습니다.
제품 스크린샷