← 목록
비디오 2026-05-19 9KB 읽기 11분

CVF (Crowny Video Format) v1.0

개요

크라우니 생태계의 완전 자립 벡터형 4상균형3진 비디오 포맷. CIF(이미지) + CAF(오디오)를 시공간으로 통합한 세 번째 미디어 포맷.

핵심 철학: 픽셀 그리드가 아닌 씨앗(Seed) 기반 — 변화가 있는 곳만 데이터 존재

무엇을 했는지

1. CVF 포맷 스펙 (3layer + 공식 스펙)

  • /Users/ef/CrownyOS/docs/tip/012_CVF_v1.3layer — T/O/A 3레이어 스펙 문서
  • /Users/ef/crowny-video/CVF_SPEC.md — 공식 스펙 (500줄+)
영상씨앗 (27 트릿 = 1 큐브):
위치XY(6t) + 시간T(3t) + 색상RGB(9t) + 모션DX/DY(6t) + 메타(3t)

프레임 유형 3진 분류:

  • T(+1) = 키프레임: 전체 공간 데이터
  • O(0) = 델타: 변경 영역만
  • A(-1) = 모션: 모션벡터만

2. CVF.한선 표준 라이브러리 (600줄+)

/Users/ef/CrownyOS/crownyc/libs/CVF.한선

API 40+개:

  • 3진 변환: CVF_정수를트릿, CVF_트릿을정수, CVF_트릿을문자, CVF_문자를트릿
  • 색상: CVF_RGB를27색, CVF_RGB를19683색, CVF_27색을RGB, CVF_19683색을RGB, CVF_RGB를9트릿, CVF_9트릿을RGB
  • 씨앗: CVF_씨앗생성, CVF_키씨앗, CVF_델타씨앗, CVF_모션씨앗
  • 코덱: CVF_씨앗인코딩, CVF_씨앗디코딩
  • 프레임: CVF_프레임생성, CVF_프레임인코딩, CVF_프레임디코딩
  • 델타: CVF_델타계산, CVF_델타적용
  • 모션: CVF_모션추정 (블록 매칭), CVF_모션적용
  • GOP: CVF_GOP생성
  • 효과: CVF_블렌드, CVF_페이드인, CVF_페이드아웃, CVF_전환
  • 파일: CVF_메타생성, CVF_헤더생성, CVF_파일저장, CVF_파일파싱, CVF_파일읽기
  • 유틸: CVF_정보출력, CVF_압축률

3. 앱 도구 4종

파일기능줄수
/Users/ef/CrownyOS/apps/CVF뷰어.한선CLI 플레이어/분석기~143
/Users/ef/CrownyOS/apps/CVF편집기.한선편집 도구 (자르기/합치기/효과/재인코딩)~370
/Users/ef/CrownyOS/apps/CVF데모.한선바운싱 사각형 데모 영상 생성~130
/Users/ef/crowny-video/CVF변환기.한선CIF↔CVF/PPM 상호 변환~230

4. cvf.js 웹 코덱

/Users/ef/Downloads/CrownyTVM/public/js/cvf.js

window.CVF API: encode, decode, createFrame, encodeFrame, decodeFrame, createSeed, encodeSeed, decodeSeed, computeDelta, applyDelta, estimateMotion, applyMotion, createGOP, decodeGOP, blendFrames, fadeIn, fadeOut, crossfade, renderFrameToCanvas, createPlayer, captureCanvas, canvasToCVF

5. 네이티브 플레이어 (macOS + Windows)

파일플랫폼기술줄수
/Users/ef/crowny-app/downloads/src/crowny_cvf_mac.mmacOSCocoa + CoreGraphics~380
/Users/ef/crowny-app/downloads/src/crowny_cvf_win.cWindowsWin32 + GDI~375
/Users/ef/crowny-app/downloads/src/build_cvf.sh빌드clang/mingw~15

6. 웹 플레이어 + 편집기

파일기능
/Users/ef/crowny-app/public/cvf-player.htmlCanvas 기반 웹 플레이어 (재생/탐색/전체화면)
/Users/ef/crowny-app/public/cvf-editor.html웹 편집기 (타임라인/자르기/효과/내보내기)

7. 앱 생태계 통합

  • app.crowny.org NATIVE_APPS에 비디오/영상편집 앱 등록
  • READERS에 CVF Player 다운로드 추가
  • File Format Specifications에 CVF 스펙 표시

8. ISA729 opcode (740-749)

10개 비디오 전용 opcode (740-749 대역): VID_FRAME(740), VID_ENCODE(741), VID_DECODE(742), VID_DELTA(743), VID_MOTION(744), VID_APPLY(745), VID_GOP(746), VID_SEEK(747), VID_BLEND(748), VID_SAVE(749)


Phase 2: YouTube→CVF 다운로더 + 생태계 완성 (2026-05-19)

9. crowny-video-dl 다운로더

/Users/ef/crowny-video/bin/crowny-video-dl (519줄, bash)

6단계 파이프라인: yt-dlp → ffmpeg(프레임) → ffmpeg(오디오) → 자막 → CVF 인코딩 → 썸네일

  • 1000+ 사이트 지원 (yt-dlp 전체)
  • 배치 처리 (--batch)
  • 썸네일 CIF 생성 (--thumbnail)
  • MP4 역변환 (--export-mp4)

10. Node.js 인코딩 라이브러리 7종

파일기능줄수
lib/cvf-encoder.jsPPM→CVF 인코딩 (공간 트릿-트리 + 시간 델타)264
lib/cvf-export.jsCVF→PPM 디코딩212
lib/cvf-thumbnail.jsPPM→CIF 썸네일157
lib/csf-parser.jsCSF 자막 포맷 (SRT↔CSF↔VTT)663
lib/ctp-stream.jsCTP 스트리밍 프로토콜 (GOP 단위)663
lib/cvf-metadata.js메타데이터/태그/검증572
lib/cvf-queue.js배치 큐 (동시3개, 재시도3회)301
lib/cvf-config.js설정 관리106

11. 한선씨 동반 파일 3종 (컴파일 성공)

파일대응 JS줄수
lib/CVF인코더.한선cvf-encoder.js238
lib/CVF내보내기.한선cvf-export.js163
lib/CVF썸네일.한선cvf-thumbnail.js140

12. video.crowny.org 웹 서비스

/Users/ef/crowny-video/server.js (1585줄, 순수 Node.js, 포트 9877)

  • REST API: 업로드/다운로드/변환/목록/삭제
  • YouTube→CVF 변환 잡 큐
  • Canvas 기반 CVF 디코더 내장 웹 플레이어
  • 다크 테마 한국어 UI

13. 한선씨 CLI 래퍼

/Users/ef/crowny-video/CVF다운로더.한선 (436줄)

  • 도움말/다운로드/정보조회/배치처리 4개 명령
  • CVF_ARGS 환경변수 인자 전달

14. 테스트 + 배포

파일기능줄수
test/test.js57개 테스트 (전부 통과)633
install.shmacOS/Linux 설치기714
README.md한/영 이중 문서596
package.json@crowny/video 매니페스트20
public/index.html웹 랜딩 페이지558

관련 파일 경로

Phase 1 (포맷 + 도구):
/Users/ef/CrownyOS/docs/tip/012_CVF_v1.3layer      # 3layer 스펙
/Users/ef/crowny-video/CVF_SPEC.md                    # 공식 스펙
/Users/ef/CrownyOS/crownyc/libs/CVF.한선              # 표준 라이브러리 (825줄)
/Users/ef/CrownyOS/apps/CVF뷰어.한선                  # CLI 뷰어
/Users/ef/CrownyOS/apps/CVF편집기.한선                 # CLI 편집기
/Users/ef/CrownyOS/apps/CVF데모.한선                   # 데모 생성기
/Users/ef/crowny-video/CVF변환기.한선                  # 포맷 변환기
/Users/ef/Downloads/CrownyTVM/public/js/cvf.js        # 웹 코덱 JS
/Users/ef/crowny-app/public/cvf-player.html           # 웹 플레이어
/Users/ef/crowny-app/public/cvf-editor.html           # 웹 편집기
/Users/ef/crowny-app/downloads/src/crowny_cvf_mac.m   # macOS 플레이어
/Users/ef/crowny-app/downloads/src/crowny_cvf_win.c   # Windows 플레이어

Phase 2 (다운로더 + 생태계):
/Users/ef/crowny-video/bin/crowny-video-dl            # CLI 다운로더
/Users/ef/crowny-video/server.js                       # 웹 서비스 (포트 9877)
/Users/ef/crowny-video/lib/cvf-encoder.js             # PPM→CVF 인코더
/Users/ef/crowny-video/lib/cvf-export.js              # CVF→PPM 디코더
/Users/ef/crowny-video/lib/cvf-thumbnail.js           # 썸네일 생성
/Users/ef/crowny-video/lib/csf-parser.js              # CSF 자막 포맷
/Users/ef/crowny-video/lib/ctp-stream.js              # CTP 스트리밍
/Users/ef/crowny-video/lib/cvf-metadata.js            # 메타데이터/태그
/Users/ef/crowny-video/lib/cvf-queue.js               # 배치 큐
/Users/ef/crowny-video/lib/cvf-config.js              # 설정 관리
/Users/ef/crowny-video/lib/CVF인코더.한선             # 인코더 한선씨
/Users/ef/crowny-video/lib/CVF내보내기.한선           # 내보내기 한선씨
/Users/ef/crowny-video/lib/CVF썸네일.한선             # 썸네일 한선씨
/Users/ef/crowny-video/CVF다운로더.한선               # CLI 래퍼 한선씨
/Users/ef/crowny-video/public/index.html              # 웹 UI
/Users/ef/crowny-video/test/test.js                   # 테스트 (57개 통과)
/Users/ef/crowny-video/install.sh                     # 설치 스크립트
/Users/ef/crowny-video/README.md                      # 문서

크라우니 미디어 포맷 비교

포맷대상매직씨앗 구조압축
CIF v2.1정지 이미지CIF!XY+깊이+RGB+너비높이+메타공간 트릿-트리
CAF v7오디오CAF7시간+음향+변화+메타MDCT + -80dB 소멸
CVF v1.0비디오CVF!XY+시간+RGB+모션+메타시공간 트릿-트리 + 델타 + 모션
CSF v1.0자막CSF!시간+위치+스타일+텍스트TOAU 시간 인코딩

잔여 이슈

  • crownyc VM에 VID_* opcode C 구현 (현재 선언만)
  • 하드웨어 디코딩 가속 (WASM SIMD)
  • CAF7 오디오 싱크 완성 (현재 WAV 임베딩)
  • CTP 프로토콜 보안 (인증/암호화)

통계

단계파일 수총 줄수
Phase 1156,963
Phase 22110,261
합계3617,224