DeepSeek Harness용 비디오 도구 플러그인: 컷 전환을 기준으로 비디오를 9~16칸의 스토리보드로 압축하며, 각 칸에 번호와 타임스탬프를 표시하고 하단에 볼륨 바를 포함합니다. 자막 또는 음성 전사 텍스트를 칸별로 정렬하며, 모델은 특정 칸을 지정하여 확대 프레임을 요청할 수 있습니다.
스타 수 40
이유
- 모델이 '비디오를 보는' 비용이 너무 높은 문제를 해결합니다: 저자에 따르면 한 장의 이미지는 약 384 토큰이며, 5분 분량의 비디오는 한 장의 이미지로 전체 과정을 확인할 수 있습니다. 반면 프레임별 이미지 방식은 동일한 범위를 커버하는 데 3,072~6,144 토큰이 필요합니다.
- 컷 포인트는 HSV 색상 변화를 감지하여 결정하며, 각 칸에는 세 프레임 중 가장 선명한 프레임을 선택합니다. 빠른 편집 구간에는 더 많은 칸이 할당됩니다. 저자에 따르면 자체 제작한 테스트 영상에서 9개의 하드 컷을 모두 찾았으며, ffmpeg scdet의 기본 임계값으로는 4개만 찾았습니다.
- 긴 영상은 from / to 파라미터를 사용하여 한 번에 2~5분 구간만 확인할 수 있어, 이후 스포일러를 미리 보는 것을 방지합니다. textOnly 옵션을 사용하면 전사 텍스트만 페이지별로 읽고 이미지를 생성하지 않습니다.
- ffmpeg 외에는 런타임 의존성이 없으며 모델 가중치를 포함하지 않습니다. 저장소에는 154개의 테스트가 포함되어 있습니다.
사용법
- Node 20 이상 버전이 필요하며, ffmpeg / ffprobe가 PATH에 있어야 합니다. 일반 프로필에서는
dsh plugin --profile web add dsh-video-storyboard를 사용하고, 데스크톱 버전 프로필에서는 저장소의node scripts/install-dev.mjs를 실행한 후 DSH를 재시작합니다. - 대화에서
video_storyboard({ input: "로컬 비디오 경로" })를 호출하며, 세부 확인이 필요할 때는video_zoom을 사용합니다. 명령줄에서는node bin/storyboard.mjs your-video.mp4 --cells 9 --text를 실행하여 모델이 어떤 데이터를 받는지 미리 확인할 수 있습니다. - 비디오에 자막이 없는 경우, OpenAI 호환
/audio/transcriptions음성 전사 서비스를 별도로 설정해야 합니다(DSH_ASR_KEY설정). 설정하지 않으면 화면과 볼륨 바만 생성됩니다.
리스크
- 사용하는 모델이 이미지 입력을 지원해야 합니다. 칸 수가 많더라도 모든 컷이 반드시 인식된다는 보장은 없으며, 저자는 빠른 팬(panning) 동작이 컷으로 오인될 수 있음을 명시했습니다.
- Bilibili 등 웹 링크를 전달하려면 yt-dlp를 직접 설치하고 cookies.txt 파일을 제공해야 하며, 이는 사용자의 로그인 자격 증명 및 플랫폼 약관과 관련됩니다. 속도 수치는 저자의 자체 테스트 결과입니다.