← 목록
기타 2026-07-12 4KB 읽기 5분

CVF v4 → mp4 대체 가능성 적대검증 (2026-07-12)

판정: mp4 대체 불가 (6축 실측, 4축 명확 FAIL + 2축 실사용 FAIL)

비교 아티팩트(프레임 18장 임베드): https://claude.ai/code/artifact/9083b184-397a-421f-aae6-3d1693ee1913 파일: /Users/ef/crowny-image/samples/cvf-mp4-비교보고.html

판정핵심 실측
디코드 성능FAILD파일(733KB) 전체 디코드 2.6s 블로킹 + RSS 1.19GB(픽셀 JS 배열-of-배열, 파일:RAM 1620×). 스트리밍 API 없음
시킹FAIL랜덤액세스 없음 — t=200s 순차 2.04s(전체의 78%). 키프레임 바이트오프셋 인덱스 부재. h264 동일시크 53ms(38×)
해상도/판독성FAIL108×60 고정 — 원본 1080p 강의 글자가 CVF 디코드선 색블록 모자이크로 판독 불가(side_by_side_t60 사진증거)
재생기 존재FAIL브라우저/앱 플레이어 0종. class.html 오늘 CVF 폐지·mp4 롤백. lib decodeVideo는 node 전용
스트리밍/RangeFAILroutes.js Range 배선 있으나 v4 단일 deflate+참조체인이라 부분디코드 불가 + 소비자 없어 죽은 배선
인코드 비용부분/FAIL실시간 0.199×이나 동일목표 h264 단일패스 4.54s 대비 전체 파이프라인 11× 느림, 산출물 9.4× 큼
가장 결정적 반증: crowny-class 프로덕션이 이 감사와 무관하게 오늘 이미 CVF→mp4 롤백(실전이 동일 결론 선행).

두 영상 비교 (동일스펙 108×60/9fps 공정비교)

  • PSNR(vs 원본 108×60): CVF-D 29.09dB vs h264 37.05dB (h264 8dB 우위)
  • 크기: 원본 1080p 21.6MB / 기존CVF 138.6MB / CVF-D 733KB / h264 78KB → CVF-D는 기존 대비 188.98× 줄었으나 h264보다 9.4× 큼
  • 소스특성: 95~200s 정지구간(발표슬라이드), 2133프레임 중 고유 368개 — CVF 정확 반영

오디오 (복구된 워크플로 실측)

  • 컨테이너 내장 없음(v4 헤더 audio:false, 데이터플레인 부재). CAF7/AUUU 미구현.
  • 실체=.cvf.mp3 사이드카: 강의 23편 .cvf 23 + .cvf.mp3 23(1:1, mp3=40.6MB=영상 1.7%). mp3 배치는 07-12 10:08 별도 스크립트(파일시스템상 실종) 산출.
  • 신규 인코딩 갭: batch-cvf.sh·mov-to-cvf.sh는 audio.wav만 만들고 mp3 사이드카 미생성 → 이 경로로 만든 CVF는 헤더 audio:true라도 무음. 동기화=server.js 데모의 mp3 마스터클럭(잔존).

메타데이터 (심을 수 있는 정보)

  • 실기록 헤더 키 ~16(version/width/height/FPS/frameCount/colorMode/GOPSize/coordWidth/duration/encoding/phase/audio/title/creator/timestamp + v4는 인코딩:b5/압축/본문바이트).
  • title/creator 임의값(한글) 기록 PASS — 단 평문·무서명이라 위조도 쉬움. vidId opt는 미반영(FAIL).
  • 예약·미기록 15종(hash/tier/license/author/encryption/compression_ratio 등).

보호 (DRM·무결성) — cvf-drm.js

  • encryptCVF/decryptCVF: 깨짐 — v4 바이너리를 utf-8로 읽어 본문 오염(733KB→1.35MB, 오프셋292부터 불일치).
  • watermarkCVF: 깨짐 — v4 삽입 후 detectWatermark=null. 저수준 embed/extractWatermark는 왕복 PASS이나 watermarkCVF가 재사용 안 함(죽은 유틸).
  • generateLicenseKey: 스텁 — Date.now() 봉인, 대응 검증함수 export 부재(단방향, 검증불가).
  • LicenseManager.create/validate/checkPermission/revoke: 동작 — 유일 기능 경로. 단 인메모리 Map(재시작 시 소실).
  • 무결성: 없음 — v4에 EUUU 마커·sha256·체크섬 전무. validateCVF() 해시검증 로직 있으나 고아+인코더 미기록. 1바이트 변조 시 예외로 실패(우아한 거부 아님).
  • 배선: cvf-drm.js를 require하는 라이브 경로 0(고아 모듈).

결론·권고

CVF v4 = 실험/아카이브용 내부 포맷. mp4 대체 배포는 6조건(소비자 플레이어·키프레임 인덱스·해상도 상향·오디오 내장·TypedArray·인코드 경쟁력) 전부 선행 필요 — 현재 전부 미충족.

인프라 사고 (작업 중 발생·복구)

세션 tmpfs + 메인디스크(/Users/ef) 동시 디스크풀(ENOSPC) → Bash·Write 전면 마비. 워크플로 output/journal 일시 유실 → 사용자 공간확보 후 journal에서 오디오·메타·보호 결과 복구, cvf_o1-1 임시 215MB 정리. 기존 P0 "디스크 스왑98%" 실현. 워크플로 wf_2ecc5bbb-40c.