2021년 MacBook에서 Gemma4-31B로 1년치 영상을 로컬 색인하기(50GB 스왑)
6 days ago
8
영상 아카이브의 병목은 편집 도구보다 검색 불가능성이었고, 라벨 없는 클립을 영어로 질의 가능한 인덱스로 바꾸는 데 초점을 맞춤
로컬 우선 설계로 각 클립 옆에 .description.md 사이드카 파일을 만들고, rating·조명·위치·전사·키워드·산문 설명을 한 번의 비전 호출에서 추출함
파이프라인은 ffprobe, exiftool, Nominatim, ffmpeg, WhisperX, insightface, 비전 모델을 묶어 메타데이터·GPS·프레임·전사·얼굴 임베딩을 생성함
2021년 16인치 MacBook Pro M1 Max 64GB가 LM Studio에서 Gemma 4 31B Q4를 실행했고, 대량 처리 중 스왑은 최고 50.89GB까지 올라감
구조화 스키마와 enum 제약은 환각을 줄였고, 대량 색인은 로컬 31B로 처리한 뒤 어려운 10~20%만 클라우드 모델로 재평가하는 구성이 가능했음
문제의 출발점: 편집보다 검색
Maasai Mara에서 반년 가까이 머무는 동안 iPhone, DJI Pocket, 드론, Nikon Z8, Ray-Ban Meta로 촬영한 영상이 계속 쌓였지만, 대부분 다시 열어보지 못한 채 남아 있었음
Mara Hilltop의 소셜 채널은 콘텐츠 부족이 아니라 편집 시간 부족 때문에 3개월 동안 멈춰 있었음
Claude Code와 Opus 4.5/4.6으로 개발 작업은 장시간 에이전트 실행과 병렬 작업이 가능해졌고, KaribuKit의 첫 유료 숙소 출시와 겹치면서 영상 편집 시간은 더 줄어듦
처음 떠올린 해법은 Eddie AI, Higgsfield MCP, Submagic, Buffer를 조합한 월 $140 SaaS 스택이었지만, 실제 병목과 맞지 않았음
생성형 AI 영상은 실제 여행 브랜드와 맞지 않았고, 투숙객이 실제 장소를 기대하는 상황에서 잘못 표시된 AI 장면은 신뢰를 해칠 수 있었음
현실적인 게시 빈도는 주 3~5개가 아니라 주 2~3개에 가까워, 초기 계획은 두 번째 주부터 실패할 가능성이 컸음
이미 보유한 DaVinci Resolve Studio와 Resolve 21의 IntelliSearch, Smart Bins, Voice to Subtitle은 Eddie가 제공하는 기능의 약 70%를 커버함
남은 구성은 Claude Code가 오픈소스 DaVinci Resolve MCP로 Resolve를 제어하고, 정보성 클립에 한해 ElevenLabs로 보이스오버를 처리하는 구조였으며, 비용은 월 $22로 줄어듦
진짜 병목: AI 편집기보다 먼저 필요한 인덱스
시중 AI 영상 편집기는 영상이 이미 라벨링되어 있다고 가정하지만, 실제 아카이브는 IMG_*.mov, DJI_*.mp4, Mara june 2024 backup final FINAL 같은 이름으로 흩어져 있었음
Eddie는 전사 검색은 가능하지만, 라벨 없는 아카이브에서 “황금빛 시간대 언덕 위 코끼리” 같은 장면을 찾을 수 없었음
파일명, 부모 폴더, GPS 좌표, 전사 텍스트만으로는 “프레임 안에 기린이 있는 일출 와이드샷” 같은 시각적 내용을 알 수 없음
실제 지렛대는 편집기 위가 아니라 그 앞단에 있었고, 먼저 아카이브를 영어로 질의 가능한 형태로 만드는 인덱스가 필요했음
로컬 우선 인덱서 설계
전체 구조는 SimbaStack에서 클라이언트용으로 만드는 AI 네이티브 빌드와 비슷했지만, 직접 클라이언트이자 엔지니어였기 때문에 의사결정이 빨랐음
네 가지 제약
로컬 우선이어야 했음
Mara Hilltop 아카이브는 물리 SSD에 있고 개인 영상은 노트북에 있었으며, 수천 개의 멀티 GB 클립을 클라우드에 올리는 것은 비용과 프라이버시 양쪽에서 맞지 않았음
중앙 DB보다 사이드카 파일을 원했음
각 클립 옆에 .description.md를 두고 일반 텍스트로 grep 가능하게 만듦
인덱서가 나중에 망가져도 파일은 남고, 드라이브 사이를 이동해도 데이터와 함께 이동함
비전 호출 한 번에 필요한 정보를 모두 뽑아야 했음
추출 프레임에 대한 비전 패스가 비싼 작업이므로, 나중에 알고 싶은 정보까지 첫 호출에서 얻도록 스키마를 처음부터 넓게 잡았음
포함 항목은 rating, technical quality, lighting, time of day, color palette, audio quality, people count, keywords, faces, location, transcript, prose description 등이었음
세 가지 비전 백엔드를 선택할 수 있게 했음
기본값은 Claude Max 구독의 CLI로, 한계 비용이 없었음
속도가 필요할 때는 Anthropic API를 사용함
대량 처리에는 LM Studio를 향한 로컬 백엔드를 사용했고, 이 로컬 백엔드가 핵심이었음