처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.04 53

LLM에게 영상을 '보게' 하는 법: 프레임 선택이 승부를 가른다

Hacker News 원문 보기

비전 LLM에 영상을 통째로 넣는 일이 점점 흔해지고 있다. 하지만 실무적으로 한 편의 영상에 넣을 수 있는 이미지는 대략 150장이 한계다. 문제는 '어떻게 뽑느냐'가 아니라 '어떤 150장을 고르느냐'다. 이 선택이 모델이 실제로 영상을 본 것인지, 아니면 영상에 대한 슬라이드쇼만 본 것인지를 가른다. MIT 라이선스로 공개된 로컬 파이프라인 claude-real-video의 개발 노트는 바로 이 지점을 파고든다.

왜 요약본이 아니라 영상인가

같은 사건을 다룬 글이 토큰을 훨씬 적게 쓰는데도 굳이 영상을 넣는 이유는 분명하다. 기사는 누군가가 이미 사건을 압축한 결과물이다. 사람이 보고, 중요하다고 판단한 것만 남기고 나머지를 버린 것이다. 화면 구성, 타이밍, 글쓴이가 무관하다고 여겨 잘라낸 장면은 복구되지 않는다. LLM이 그 글을 읽으면 저자의 선택 안에서만 학습할 뿐, 보지 못한 선택에 이의를 제기할 수 없다.

반면 영상을 직접 주면 압축 단계가 모델로 넘어온다. 리뷰어가 말한 데모가 아니라 데모가 실제로 어떻게 보였는지, 아무도 받아 적지 않은 튜토리얼에서 스쳐 지나간 오류 메시지, '간단한 설정'이 사실 열한 번의 컷 편집으로 이뤄졌다는 사실까지 모델이 직접 포착한다. 증인의 진술서를 읽는 것과 스스로 증인이 되는 것의 차이이며, 비싼 토큰 값을 치를 만한 이유다.

균일 샘플링의 실패와 적응형 장면 검출

오늘날 대부분의 '영상 이해'는 자막과 일정 간격으로 뽑은 프레임의 조합이다. 1초당 혹은 10초당 한 장 식이다. 이 균일 샘플링은 양방향으로 동시에 실패한다. 말하는 사람의 거의 똑같은 프레임으로 모델을 파묻으면서, 정작 무언가 일어난 그 1초는 건너뛴다. 원인은 하나다. 샘플러가 무엇이 바뀌었는지 전혀 모르기 때문이다.

모든 설계를 규정하는 제약은 토큰 예산이다. 이미지는 컨텍스트 윈도에 넣을 수 있는 가장 비싼 자산이다. '영상당 100~150장'을 받아들이는 순간 추출은 더 이상 문제가 아니게 되고, 선택이 문제가 된다. 남기는 모든 프레임이 자기 자리를 스스로 벌어야 한다. 1차 통과는 ffmpeg의 장면 점수를 이용해 장면 전환마다 프레임을 잡되, 컷 없이 긴 장면도 최소한의 프레임을 남기도록 낮은 밀도의 바닥선을 둔다. 다만 고정 임계값은 애니메이션이나 느린 카메라 워크에서 무너진다. 캐릭터가 찌그러졌다 늘어나거나 화면이 천천히 패닝하는 장면은 끊임없이 변하지만 급격하지 않아 점수가 선을 넘지 못한다. 해법은 메타데이터만 훑는 사전 통과로 프레임별 점수를 구한 뒤, 이동 평균의 배수를 넘을 때만 남기는 것이다. 움직임이 많은 영상은 스스로 기준을 올리고, 조용한 영상은 내린다. 아무도 튜닝할 필요가 없다.

실제 영상이 만들어낸 3채널 중복 제거

중복 제거는 하나의 비교기로 시작했다가 실제 영상에 망신당할 때마다 채널을 하나씩 늘려 왔다. 첫 채널은 16×16 RGB 서명으로 축소해 어느 채널이든 25/255 넘게 변한 셀을 세고, 8% 미만이면 프레임을 버린다. 흑백이 아니라 RGB인 이유는 밝기가 같은 빨강-초록 컷이 흑백 비교기에는 동일하게 보이기 때문이다. 비교 대상도 직전 한 장이 아니라 최근 유지된 4개 프레임의 슬라이딩 윈도인데, 인터뷰-리액션-인터뷰처럼 A-B-A로 오가는 편집에서 이미 본 장면이 다시 들어오는 것을 막기 위함이다.

하지만 퍼센트 임계값은 작은 피사체에 구조적으로 눈이 먼다. 넓은 화면의 0.5%를 차지하는 사람은 아무리 움직여도 8%를 바꿀 수 없어, 정작 중요한 1초가 지워진다. 이 문제는 벤치마크가 아니라 실제 영상 2,181편을 돌린 사용자가 찾아냈다. 패치는 32×32 격자에서 소수의 셀이라도 45/255 넘게 강하게 변하면 퍼센트와 무관하게 새 프레임으로 인정하는 것이다. 세 번째 채널은 자막 교체, 화이트보드에 나타나는 잉크 한 줄, UI 업데이트처럼 16×16에서는 0.0%로 측정되는 국소 변화를 잡기 위해 192×192 서명에서 작동한다. 필름 흔들림과 그레인을 걸러내기 위해 ±1픽셀 이동을 허용하고, 화면이 정적일 때만 실행되며, 더 엄격한 2차 허용 통과로 연기처럼 흐릿하게 번지는 변화를 죽인다. 결정적으로 트리거될 때마다 감쇠 쿨다운으로 문턱을 올려, 매초 '가라앉는' 깃발 하나가 프레임 예산을 통째로 먹어치우는 일을 막는다.

결과물의 의도된 밋밋함, 그리고 한계

텍스트는 영상에 자막이 실려 있으면 그것을, 없으면 로컬 Whisper를 쓴다. 최종 산출물은 JPEG 몇 장, 텍스트 전사, 그리고 모델에게 패키지 읽는 법을 알려주는 매니페스트뿐이다. 이 의도된 밋밋함이 모델을 가리지 않는 이식성을 만든다. 가장 새로운 표면은 MCP 서버로, pip로 설치해 crv-mcp를 띄우면 Claude Desktop, Claude Code, Cursor 같은 클라이언트가 URL이나 파일에 watch_video를 호출해 융합된 결과를 받는다. 여기서도 두 가지 예산 결정이 그대로 이어진다. 프레임은 인라인으로 돌려보내기 전 긴 변 기준 768px로 리사이즈하고, 분석은 소스별로 캐시해 같은 영상에 대한 후속 질문이 재다운로드나 재추출을 하지 않게 한다.

다만 이 접근의 한계는 개발자 스스로 분명히 긋는다. 키프레임과 융합된 전사는 화면에 무엇이 있었고 무슨 말이 오갔는지는 전하지만, 카메라가 어떻게 움직이는지, 컷의 리듬이 어떤지, 목소리의 톤이 어떤지는 담지 못한다. 그것은 별개의 지각 문제다. 그럼에도 '답하기 전에 모델이 실제로 이 영상을 보게 하라'는 일상적 요구에 대해서는, 선택과 융합만으로도 자기 기계 위에서 놀랄 만큼 넓은 범위를 감당한다. 영상 이해에서 화려하지 않지만 진짜 승부처는 결국 프레임 선택이라는 점을 이 파이프라인은 담담하게 보여준다.

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.