I indexed 669 GB of my GoPro videos using my M1 Max computer and local ML models

2026-06-15 · 2026-06-15_indexed-669gb-gopro-videos-local-ml.md

#local-ml #video-indexing #gopro #m1-max #open-source #embedding #vector-db #davinci-resolve

원문 출처

I indexed 669 GB of my GoPro videos using my M1 Max computer and local ML models

Ilias Haddad의 블로그 글과 Hacker News 토론을 분석한 노트. 저자는 M1 Max 맥북에서 오픈소스 ML 모델을 사용해 669GB의 GoPro 영상 자료를 인덱싱한 경험을 공유한다.

1. 원문 핵심 내용

무엇을 했는가

저자 Ilias Haddad는 총 2,207개의 GoPro 영상 중 628개(668.68GB, 약 15시간 13분 분량)를 M1 Max 컴퓨터에서 로컬 ML 모델로 인덱싱했다. 목적은 사이cling 라이딩 기록에서 흥미로운 순간을 자동으로 찾아내서 DaVinci Resolve 편집 타임라인으로 바로 보낼 수 있게 하는 것.

기술 아키텍처

전체 파이프라인은 여섯 단계로 나뉜다:

  1. 선택: GX로 시작하는 파일명만 골라 GoPro 영상만 필터링 (휴대폰 영상 제외)
  2. 음성 인식 (Transcription): OpenAI Whisper 모델로 오디오 트랙을 텍스트로 변환. 전체 컴퓨팅 시간의 37.3%(25시간 12분)를 차지 — 가장 무거운 단계
  3. 프레임 분석 (Frame Analysis): 영상을 초당 1프레임(1fps)으로 쪼개 57,537개의 프레임 추출. 각 프레임에 얼굴 인식, 객체 탐지, 화면 내 텍스트 인식, 샷 분류, 장면 설명을 실행. 36.8%(24시간 55분)
  4. 시각 임베딩 (Visual Embedding): 각 프레임의 이미지 데이터를 임베딩 벡터로 변환 — 이미지로 검색 가능하게. 17.5%
  5. 오디오 임베딩 (Audio Embedding): 오디오 데이터를 임베딩 — 소리로 검색 가능하게. 6.4%
  6. 텍스트 임베딩 (Text Embedding): 장면 설명, 음성 인식 결과, 얼굴 데이터 등을 텍스트 임베딩으로 변환. 0.9%

저장과 검색

  • 벡터 데이터베이스(Vector DB): 시각, 오디오, 텍스트 임베딩을 세 개의 로컬 벡터 DB 컬렉션에 저장
  • SQL 데이터베이스: 위치, 카메라 이름 등 메타데이터 저장
  • 검색: 자연어 쿼리로 검색 가능. 예: "개 짖는 소리가 나는 사이클링 영상 모두 찾아줘"
  • 고급 모드: Qwen2.5-VL-7B-Instruct 모델을 사용해 5프레임(720p 하향)을 입력하면 "넘어져야 하는 동작" 같은 동작 이해가 가능

성과 지표

지표
인덱싱된 영상 628개 (총 2,207개 중)
총 용량 668.68 GB
총 영상 길이 15시간 13분 18초
총 컴퓨팅 시간 67시간 40분 42초
처리 속도 실시간의 0.22배 (재생 속도보다 약 4.4배 느림)
분석된 프레임 57,537개

핵심 발견

  • NVIDIA RTX 3060(12GB VRAM)이 M1 Max보다 빠름: 같은 작업에서 NVIDIA GPU가 더 좋은 성능을 보였다고 확인
  • Docker 컨테이너는 M1 Max GPU 접근 불가: 데스크톱 앱 버전을 사용해야 Apple Silicon GPU 가속이 됨
  • 프레임 하향 처리: 원본 화질 대신 720p로 하향해서 처리 속도를 높이고 정확도도 유지

프로젝트 정보

  • 프로젝트명: Edit Mind — 오픈소스 데스크톱 앱
  • GitHub: github.com/iliashad/edit-mind
  • DaVinci Resolve, Adobe Premiere Pro, Final Cut Pro와 연동 가능

2. 커뮤니티 반응

HN 점수 76, 댓글 10개(HN 페이지 기준) / 56개(Algolia 기준). 주요 반응을 카테고리별로 정리:

프로젝트에 대한 긍정적 반응

  • PreownedPlaid: "정말 멋짐. MBP 64GB에서 비슷한 걸 해보고 있었어"
  • ingvay7: "정말 멋진 작업과 워크플로우. Adobe 도구와 잠금에 의존하는 것보다 내가 통제하는 로컬 오픈 파이프라인을 강력히 선호해"
  • nyxtom: "이거야말로 멋진 사용 사례!"
  • justinram11: Google/Apple 포토즈의 자동 메모리 컴필레이션 기능에 기대를 걸며, "AI가 자녀 영상을 나중에 즐길 수 있는 작은 컴필레이션으로 만들어주는 게 점점 쉬워질 것"이라고 언급

유사 프로젝트 비교

  • asenna: 며칠 전 같은 M1 Max에서 거의 동일한 작업을 했고 HN 프론트페이지에도 올랐다고 공유. 자신의 프로젝트 Framedex와 블로그 링크를 공유하며 "로컬에서 할 수 있는 게 정말 많아지고 있어, 기대되는 시야"라고 평가
  • tontonius(Jumper 공동創設자): 대규모 영상 컬렉션 로컬 검색을 위한 Jumper를 소개 — NLE 연동, 인물 검색, MCP, API 기능 포함

기술적 논의

  • esjeon: 669GB가 아니라 실제 처리된 프레임 크기는 10~30GB 수준일 것이라고 계산. 클라우드 GPU 인스턴스로 가속 가능한지 질문
  • WhitneyLand: 프레임 레벨 임베딩은 많이 커버하지만 "액션 관련 검색"에서는 놓치는 부분이 있을 수 있다고 지적. 실제 영상 클립의 임베딩이 실용화되길 바란다고 언급
  • robrain: DaVinci Resolve 21에 이미 AI IntelliSearch 기능이 내장되어 있다고 지적. 단, Studio 버전에서만 가능
  • teovall: DaVinci Resolve의 AI 기능은 모두 로컬 처리되지만, 아직 얼굴 태그 기능은 없다고 보정
  • fl0id: Docker 컨테이너에서도 Apple GPU를 사용할 수 있다고 설명 — podman + runkit + 최근 mesa, 또는 vllm-metal 도커 이미지로 가능

M1 Max vs Windows ARM 비교

  • WarOnPrivacy: M1 Max CPU가 11세대 Intel i9과 비슷하다는 사실에 놀람. Windows ARM 성능도 비슷할까 질문
  • owldown: "비슷하다"는 건 싱글 코어 성능만 해당. 메모리 대역폭에서는 M1 Max가 약 8배 빠름 — 더 넓은 버스, 더 낮은 레이턴시
  • pachouli-please: Apple Silicon의 "유니IFIED 메모리"(시스템 RAM이 VRAM으로 사용)와 전용 AI 가속기가 일반적인 CPU를 압도한다고 설명

Whisper 음성 인식의 한계

  • lifestyleguru: Whisper가 "뺨 때리는 소리"에서 환각(hallucination)으로 복잡한 대화를 만들어낸 경험을 공유 — 비음성 소리에 대한 음성 인식 모델의 취약점
  • 3eb7988a1663: Parakeet 모델이 비음성 소리를 감지하고 제외하도록 학습되어 더 나을 수 있다고 제안
  • dotancohen: Whisper 문서 자체가 비음성 부분을 자르라고 권장한다고 지적 — 모델이 그 부분에서 심하게 환각하기 때문

"재미있는" 질문

  • Beijinger: "포르노 컬렉션에도 작동하나요?" — 이 질문에 여러 댓글이 이어짐
  • pduggishetti: LoRA 파인튜닝이 필요하고, 포르노 콘텐츠 거부가 강한 모델을 사용해야 한다고 설명. YOLO 파인튜닝으로 장면 탐지 + 얼굴 인식 추가도 제안
  • vorticalbox: "시각 기능은 abliterated(윤리 필터 제거된) 모델에서도 완벽히 작동한다"고 보정

기타

  • rho138: "Show HN" 포스트가 더 적합하다고 조언 — 저자는 수정을 시도했지만 반영되지 않았다고 답
  • culi: 제목 링크가 "전체 글"로 가べき인데, 저자의 도메인이 차단된 건 아닌지 의심
  • asdfasgasdgasdg: 예시 영상이 사이클링 하이라이트라고 기대하기엔 짧고 반복적이라고 비판 — 저자는 "개 짖는 소리" 검색 결과에서 해당 소리만 있는 장면만 추출된 것이라고 설명

3. 새로운 시각

1. 로컬 AI 영상 인덱싱이 "개인 데이터 주권"의 새로운 표준이 될 수 있다

이 프로젝트의 가장 큰 의미는 기술적 성과 그 자체보다 개인 영상 데이터의 주권을 로컬에서 유지한다는 점에 있다. Google 포토나 Adobe Sensei는 클라우드에서 처리하지만, Edit Mind는 모든 데이터가 사용자의 머신 안에 남아있다. M1 Max의 64GB 유니IFIED 메모리가 사실상 64GB VRAM으로 쓰일 수 있다는 점이 이 흐름을 가속화한다. 향후 개인이 수 TB 규모의 영상 아카이브를 로컬에서 관리하는 게 일반화될 수 있다.

2. 벡터 임베딩 + 다중 모달리티 조합이 "비디오 검색"의 새로운 패러다임

이 프로젝트는 텍스트, 시각, 오디오 세 가지 모달리티를 각각 임베딩해서 벡터 DB에 저장한 후 자연어 쿼리로 검색하는 구조를 보여준다. 이는 단순한 "키워드 매칭"을 넘어 "개 짖는 소리가 나는 장면" 같은 다중 감각 쿼리를 가능하게 한다. WhitneyLand가 지적한 대로 프레임 레벨 임베딩만으로는 액션의 흐름을 완전히 포착하기 어렵지만, Qwen2.5-VL 같은 멀티모달 LLM을 5프레임 단위로 입력하면 동작 이해가 가능해진다. 이는 "비디오 검색"이 이미지 검색의 확장에서 완전히 다른 문제로 진화하고 있음을 보여준다.

3. "Do-it-yourself AI 워크플로우"와 상용 제품의 경계가 모호해지고 있다

DaVinci Resolve 21의 AI IntelliSearch, Jumper, Framedex 등 유사 솔루션들이 이미 존재하지만, Edit Mind의 강점은 오픈소스 + 커스터마이징 가능하다는 점이다. ingvay7이 "Adobe 도구와 잠금에 의존하는 것보다 내가 통제하는 로컬 오픈 파이프라인을 선호한다"고 표현한 것은 많은 크리에이터의 공통된 욕구다. 상용 제품이 편리하지만, 로컬 오픈소스 파이프라인은 데이터 프라이버시, 커스텀 얼굴 데이터, 모델 교체 유연성에서 우위다. 이 경계는 점점 더 모호해질 것이다.

4. 자녀/미래 영향

아인, 석현, 은한에게

아인(딸): 유튜브나 틱톡에서 영상을 편집한다면, Edit Mind 같은 도구는 수 시간의 원본 영상에서 "재미있는 순간"을 자동으로 찾아줘서 편집 시간을 크게 줄여줄 수 있다. 특히 여행 기록이나 일상 브이로그를 만드는 데 유용하다.

석현, 은한(아들들): 성장하면서 스마트폰으로 찍은 영상들이 수백 기가바이트로 쌓일 것이다. 지금 당장은 부모가 대신 정리해주지만, 10년 후면 로컬 AI가 자녀들의 영상 아카이브에서 "축구에서 골 넣은 장면"이나 "웃고 있는 순간" 같은 쿼리로 자동으로 하이라이트를 만들어줄 수 있다. justinram11이 언급한 Google 포토의 자동 메모리 기능은 이미 그 방향을 가리키고 있다.

실용적 조언: 자녀들의 영상을 클라우드에만 의존하지 말고, 로컬 백업과 함께 Edit Mind 같은 오픈소스 도구로 인덱싱하는 습관을 들이면 장기적으로 데이터 주권을 유지할 수 있다. 특히 M1/M2 맥북이 있다면 64GB 모델이 로컬 AI 영상 처리에 매우 효율적이다.

관련 노트

  • [[2026-06-14_local-ai-trends]] — 로컬 AI 모델 동향과 관련됨
  • [[2026-06-10_vector-database-overview]] — 벡터 데이터베이스 기본 개념