The project file is the interface: letting AI agents drive a video editor
개요
FableCut은 브라우저에서 실행되며 AI 에이전트가 조작할 수 있는 Premiere 스타일의 동영상 편집기이며, 핵심 디자인 결정은 프로젝트 파일 자체가 인터페이스 역할을 한다는 점입니다.
주요 내용
* 프로젝트 파일 중심 인터페이스: FableCut은 편집 상태를 API 호출 대신 project.json이라는 단일 JSON 문서에 저장합니다. 이 파일은 미디어, 클립, 트랙, 키프레임, 전환, 마커 등 모든 편집 정보를 포함하며, 편집 UI, 내보내기, AI 에이전트 모두 이 파일을 읽고 수정할 수 있습니다.
* SSE를 활용한 실시간 업데이트: SSE(Server-Sent Events)는 단순한 변경 알림 역할만 합니다. 서버는 파일 변경을 감지하면 브라우저에 간단한 변경 신호만 보내고, 브라우저는 프로젝트 파일을 다시 불러와 렌더링합니다. 이는 단방향 통신에 최적화되어 있으며, 이벤트 누락 시에도 다음 페치에서 최신 상태를 반영할 수 있습니다.
* 단순한 동시성 모델: 편집 파일에 정수형 리비전 카운터를 사용하여 동시성 충돌을 관리합니다. 쓰기 작업은 이 카운터를 증가시켜야 하며, 최신 리비전이 아닌 쓰기는 거부됩니다. 이는 운영 트랜스폼이나 CRDT 없이도 인간과 AI 에이전트가 타임라인을 공유할 수 있게 합니다.
* 프레임 정확도를 위한 CSS 애니메이션 제어: FableCut은 CSS @keyframes로 애니메이션된 SVG 오버레이를 사용하며, animation-delay: calc(var(--d, 0s) - t)를 통해 애니메이션의 시간 t를 수동으로 제어하여 미리보기와 내보내기 모두에서 프레임 정확도를 보장합니다.
* FFmpeg와의 차별점: FableCut은 ffmpeg와 같은 도구와 달리 편집 과정을 JSON diff로 처리하여 브라우저에서 150ms 내에 즉각적인 미리보기를 제공합니다. ffmpeg는 최종 인코딩 단계에 사용되며, FableCut은 AI 에이전트와 ffmpeg 사이의 상태 및 미리보기 레이어 역할을 합니다.
* 현재의 한계점: FableCut은 브라우저 기반이므로 내보내기 시 브라우저가 열려 있어야 합니다. 현재 Chromium 브라우저에 최적화되어 있으며, 헤드리스 내보내기 기능은 아직 지원하지 않습니다.
시사점
FableCut의 프로젝트 파일 중심 인터페이스 설계는 AI 에이전트가 인간의 개입 없이도 복잡한 편집 작업을 수행할 수 있는 새로운 가능성을 제시하며, 협업 및 자동화 워크플로우에 대한 접근 방식을 혁신할 수 있습니다.
댓글
GitHub Discussions