← 목록
기타 2026-07-03 8KB 읽기 7분

크라우니RTC 고성능화·초경량화 마스터플랜 — 음성/영상/다자간/방송/AR/VR

현황 진단 (전수 탐색 2026-07-03)

"크라우니WebRTC"는 단일체가 아니라 4벌 병존 — 통합이 첫 과제다.

계보위치실체판정
A. 크라우니RTC.한선CrownyOS/apps (485줄, sdcard 7종 배포)자체 프로토콜 시도, 캡처 주석뿐·블록 깨짐 = 스텁. 포트 9740/9741이 network/interior와 충돌타(폐기·흡수)
B. 메신저 v3apps/메신저/v3 (signaling.js SSOT)1:1 음성/영상 실동작 (WS 9767). 그룹 mesh 클라 미구현티(코어 편입)
C. CrownyTVMcrowny-turn.js + call-signaling.js + call.js자체 STUN/TURN(RFC5389/5766) :3478 라이브 확인 + 적응 비트레이트/시뮬캐스트 헬퍼티(인프라 정본)
D. 원격지원·화상회의엔진crowny-support :9966 / crowny-project화면공유 시그널링 검증됨 / 상태관리 모듈 미결선티(소비자 편입)
적용할 최근 도구 (전부 실체 확인):
  • 4상통신.한선 (오늘): ±0 소거정정 FEC — 실측: 패킷 -28~57%, 지연 2왕복 고정, 1→N 브로드캐스트 유일해
  • CAF7 (crowny-audio): 4상3진 오디오 코덱 — 압축 71.7%·12×rt·66dB, 네이티브 빌드 존재, 상용화 준비 완료
  • CVF v2 (crowny-video): 4상3진 비디오 — 모션보상 64.6% 절감·34.5dB, 27×15~54×30 셀영상 모드
  • 크라우니브라우저 7티어: 213KB 바이너리, 개도국 저용량 모드
  • ccp 압축기: 실체 미착수(기획) — 본 계획에서 제외, 필요시 후속

아키텍처 원칙 — 2트랙 미디어

[고대역 트랙] 표준 WebRTC 미디어(Opus/VP8) + 시뮬캐스트     ← 기존 브라우저 100% 호환
[저대역 트랙] 비신뢰 DataChannel 위에 크라우니 스택          ← 우리가 통제하는 구간
              = 4상 FEC(소거정정) + CAF7(음성) + CVF 셀영상(영상) + 27트릿 상태벡터(AR/VR)
  • DataChannel(바이너리)은 모든 브라우저에서 동작 → 커스텀 코덱을 클라 개조 없이 JS만으로 탑재
  • 링크 품질에 따라 자동 전환: 수신측 -0 비율 = 그 자체가 채널 품질계 (별도 측정 불요)
  • 어제·오늘 실증한 "백엔드가 4상 구간을 진다" 원칙의 실시간 확장

Phase 계획

P0. 통합·부채청산 (선행 필수 — 1세션)

  1. 시그널링 SSOT 단일화: B signaling.js + C call-signaling.js 병합 → 크라우니RTC코어 (한선씨 정본 + JS 실행본). TURN 자격증명 발급(C) + 통화방 관리(B) 합체
  2. crowny-turn 공용 인프라 승격: turn.crowny.org DNS/게이트웨이 등록, msg·support·game 전 서비스가 공유
  3. A 폐기: 크라우니RTC.한선 아카이브 이동, 포트 9740/9741 반납, sdcard 7종 정리. CAF/지터버퍼 설계 아이디어는 P1로 흡수
  4. 통화.한선의 Google STUN 하드코딩 제거 (자체 :3478로)

P1. 음성 (실시간 음성채팅) — 고성능+초경량 동시

  • 고대역: 표준 Opus 유지 (이미 동작)
  • 저대역: CAF7-over-DataChannel — 8~16kbps 이해가능 음성, 4상 FEC 3사본(오늘 시뮬의 하이브리드 모드), 지터버퍼는 A 설계 흡수
  • KPI: 종단 지연 <300ms · 소거율 500‰에서 통화 유지 · 클라 JS ≤15KB
  • 판정: 티 (CAF7 성숙 + FEC 실증 완료 — 조립 작업)
  • P1 보정 (2026-07-03 실측): CAF7 WASM 탑재는 실증 완료(35KB, 네이티브 바이트 일치)이나
8~16kbps 저대역은 미구현(인터컴 프로파일 profile=0 스펙만 존재, 코드는 profile=1 하드코딩, 임계 강제 시 SNR 10~20dB 붕괴, 20ms 청크 헤더 오버헤드 19.2kbps). → ①잠정: 저대역 음성 = 표준 Opus 8kbps(SDP 강제) + 4상DC는 제어/상태/텍스트 채널 ②별도 트랙 P1b: CAF7 인터컴 프로파일(profile=0, 4000큐브/초) + 헤더리스 프레임 모드 구현 (2~3주 규모)

P2. 영상 (영상채팅)

  • 고대역: VP8 + 시뮬캐스트 3레이어 (crowny-rtc.한선 헬퍼 이미 보유)
  • 저대역: CVF 셀영상-over-DataChannel — 27×15~54×30 "존재감 영상" <64kbps, I/P/Motion 프레임
  • 개도국/가장자리 자동 강등: -0 비율 >300‰ → 셀영상 전환
  • KPI: 셀영상 12fps@64kbps · 강등 전환 <2s · PSNR 30dB+
  • 판정: 티 (CVF v2 완성 — 인코더 실시간화가 관건, 옴 1건: 실시간 인코딩 속도 실측 선행)

P3. 다자간 채팅 (그룹 통화)

  • N≤4: mesh (B의 잔여 그룹 UI 완성 — signaling.js는 이미 GROUP_* 지원)
  • N>4: SFU-lite — ws-server-v3에 선택적 포워딩 + CAF7 서버 믹싱(트릿 도메인 합산 = A의 오디오믹싱 설계 흡수)
  • KPI: 8인 mesh 클라 CPU <30% · SFU-lite 30인/방 · 서버 메모리 ≤50MB/방
  • 판정: 티(mesh) + 옴(SFU-lite — 서버 미디어 처리량 실측 후 규모 확정)

P4. 인터랙티브 방송 채팅 (1→N)

  • 오늘 시뮬이 증명한 4상 최적 영역: 수신자별 ACK 불가 → 4상 5사본 브로드캐스트가 유일해
  • 다운링크: SFU-lite 팬아웃(미디어) + 4상 FEC(저대역 티어) · 업링크: msg :9939(순수 한선씨 라이브) 채팅/반응
  • 셀영상 방송 티어 = 개도국 대량 시청 모드
  • KPI: 1→100 팬아웃 · 채팅 반영 <1s · 방송 저대역 티어 64kbps
  • 판정: 티

P5. AR/VR 채팅 (증강/가상현실)

  • 핵심 통찰: AR/VR 실시간성의 본체는 미디어가 아니라 상태(포즈·앵커·오브젝트) 동기화
  • 27트릿 큐브 상태벡터 = 긴급비콘과 동일 패턴 확장: 위치(9트릿×3축 분할)·회전·이벤트를 1~3큐브/틱
  • 비신뢰 DataChannel + 4상 FEC로 60Hz 동기, 최신값 우선(재전송 무의미 영역 = FEC 적합)
  • 음성 = P1 저대역 트랙 재사용, 크라우니마을 멀티플레이 설계(2026-06-27)와 합류
  • KPI: 상태동기 60Hz · 페이로드 ≤3큐브/틱(≤21바이트) · 8인 룸
  • 판정: 옴→티 (프로토콜은 즉시, 렌더 연동은 크라우니마을 진도에 맞춤)

P6. 블록체인 타임싱크 WebRTC (P0~P5 완료 후 — 2026-07-03 사용자 지시 추가)

  • 크라우니체인(:9729) 앵커 시각 + DataChannel ping-pong RTT 보정으로 NTP 불요 trustless 공통 시계
(학습DB 기존 패턴 보안_블록체인보안_타임동기화 HIT — RTT/2 편도지연 보정 로직 재사용)
  • 적용점: ①다자간 오디오 믹싱 타임스탬프 정렬 ②AV 립싱크 ③AR/VR 틱 정렬(60Hz 슬롯을 체인 시각에 스냅)
④방송 이벤트 순서 보증(채팅-미디어 순서 분쟁 해소) ⑤통화 기록의 체인 앵커링(분쟁 증빙)
  • KPI: 노드 간 시계 편차 <10ms · 앵커 검증 가능 · 오프라인 구간 드리프트 보정
  • 판정: 옴→티 (패턴 존재 + 체인 라이브 — P5 완료 후 착수)

초경량화 공통 목표

항목현재목표
통화 클라 JS 번들call.js 1088줄+코어 ≤30KB gzip, 모달리티별 지연 로드
서버node 3벌 병존시그널링 단일화 + msg처럼 순수 한선씨 이행(장기)
저대역 음성Opus ~32kbpsCAF7 8kbps
저대역 영상VP8 ~300kbpsCVF 셀영상 64kbps
AR/VR 틱(신규)≤21바이트/틱
브라우저213KB 7티어저용량 티어에 저대역 트랙 기본

실행 순서·의존성

P0(통합) → P1(음성) → P2(영상) → P3(다자간) → P4(방송)
                └────────────→ P5(AR/VR, P1 음성만 의존 — 병행 가능)
옴 선결 2건: ①CVF 실시간 인코딩 속도 실측(P2 게이트) ②SFU-lite 서버 처리량 실측(P3 게이트)

참조

  • 전수 탐색: 본 문서 현황표 · 4상 실증: docs 2026-07-03-4상WiFi시뮬-적용검토, 2026-07-03-4상-백엔드브리지-기존클라이언트
  • 배선 기록: docs 2026-06-10-call-av-webrtc-배선 · 브라우저: 2026-06-27-크라우니브라우저-맥윈도우-7티어