Communitygithub.com

eternityspring/video-shots

Converte um vídeo finalizado em uma tabela de análise quadro a quadro: duração, enquadramento, tipo, movimento de câmera e descrição da cena de cada take.

O que é video-shots?

O `eternityspring/video-shots` é uma skill de agente de IA especializada em análise cinematográfica, que transforma um vídeo completo em uma tabela detalhada, quadro a quadro. A ferramenta automatiza a detecção de cortes usando `ffmpeg` e o cálculo de métricas como duração e movimento (mediana da diferença entre frames), delegando ao modelo de IA apenas quatro julgamentos essenciais: enquadramento, tipo de take, movimento de câmera e descrição da cena. Cada decisão é imediatamente validada por código — por exemplo, se um movimento de câmera for detectado mas a variação de movimento for mínima, o sistema rejeita a classificação. A skill gera uma saída rica, incluindo `shots.json`, uma tabela em Markdown e um relatório interativo em página única (HTML) que contém um player de vídeo sincronizado com os takes, uma linha do tempo de ritmo, tabela com busca e filtros, distribuição de enquadramentos e movimentos, e uma "porta de qualidade" com 14 verificações determinísticas. Tudo em um único arquivo HTML, sem dependências externas e sem necessidade de API keys — apenas Node.js e ffmpeg são necessários. Use quando o usuário pedir para "拉片" (analisar/"desmontar" um vídeo em takes).

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/eternityspring/reelbench-skills/tree/HEAD/skills/video-shots

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que video-shots faz?

拉片:transforma um vídeo finalizado em uma tabela de análise quadro a quadro — duração, enquadramento, tipo de take, movimento de câmera e descrição da cena de cada plano.

A divisão do trabalho está na essência do código: as métricas ficam por conta do código (os pontos de corte vêm da detecção de cena do ffmpeg, a duração é a diferença entre os cortes, e o movimento é a mediana da diferença entre quadros consecutivos). O modelo de IA julga apenas os quatro aspectos que realmente precisa julgar (enquadramento / tipo de take / movimento de câmera / descrição da cena). Em seguida, cada julgamento é verificado imediatamente pelo código — se o movimento declarado for "zoom in/out/pan/tilt" mas a medição real mostrar quase nenhum movimento, a porta barra. O processo visual é feito através de uma tabela de contato (uma grande imagem com os primeiros e últimos quadros de cada take, exibindo mais de vinte takes por tela — a comparação A/B revela o movimento de câmera), sem a necessidade de folhear um a um. Para detecção de cortes perdidos ou excessivos, use o recorte (recut) para adicionar ou mesclar cortes; a renumeração e recálculo de duração são automáticos, e edições manuais nos limites não passam pela porta de qualidade.

Gera shots.json + tabela de takes em Markdown + relatório interativo em página única: player de vídeo embutido (com sincronização de destaque do take durante a reprodução e clique no take para saltar), linha do tempo de ritmo, tabela de takes pesquisável, filtrável e ordenável (em dois modos de exibição: lista e cartão, com quadros-chave inicial e final lado a lado, clique na imagem para expandir), distribuição de enquadramento / tipo de take / movimento de câmera, personagens presentes, portas de qualidade e exportação para JSON. Arquivo único sem dependências, abre com duplo clique offline. 14 portas de qualidade verificadas deterministicamente por script. Sem dependências, sem API keys — apenas Node.js e ffmpeg.

Use quando for solicitado a "拉片".

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

eternityspring/reelbench-skills

把一条视频重建成「只有画面和声音」的干净文件——**源片的元数据一概不搬**: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。 走的是白名单而不是黑名单:不列要删什么,只说带什么过去(画面一条流、声音一条流), 隐私保证来自结构,不来自枚举。 难点不在容器 tag,在**看不见的那几层**:x264 把完整编码参数写成 SEI 塞在码流里、 AAC 把版本号写进 DSE、avc1 的 compressorname 里还有一份——`ffprobe` 一个都看不见。 五个藏身处逐一堵死,每一处都有实测。 默认 `--mode copy`:**画面逐字节照搬**(cmp 验证过),只重编音频,53 秒的片子 1.3 秒跑完; `--mode encode` 完整重编码,多杀掉码流域的东西。 验收不靠声称:把源片所有元数据字符串当「针」,在输出文件里做**字节级扫描**, 扎到一根就红。12 道门全部由脚本确定性检查。 零依赖、零 API key,只要 node 和 ffmpeg。 Use when asked to 清元数据、去元数据、抹掉视频信息、视频隐私、去水印信息、 strip video metadata、remove exif from video、scrub video。

eternityspring/reelbench-skills

把拉片数据和原片合成一条**能直接看的视频**:一边是画面,一边是这一镜的分镜信息 (镜号、起止、时长、景别、类别、运镜、画面描述、台词),**镜头切了信息跟着切**, 镜头表自动滚动并高亮当前这一镜。 版式只看原片的宽高比:**横版 / 方版 → 画面在上、信息在下;竖版 → 画面在左、信息在右**, 画面永远原样缩放,不裁不拉。 镜头表**随播放滚动**:切点处滚一小段把当前镜头带到锚点、随后停住,高亮条同步滑过去。 实现上只截三张图(底板 + 铺开的长图 ×2),滚动与高亮由 ffmpeg 按时间裁窗, **布局全在 scripts/panel.css 里,改它就能改版式**,不用碰脚本。 吃 video-shots 产出的 shots.json(有 frames/ 就把关键帧当缩略图用)。 零 npm 依赖,用 ffmpeg 合成、无头浏览器渲面板。 Use when asked to 导出视频、合成视频、分镜视频、带分镜信息的视频、解说版视频、 video with shot info、annotated shot video。

Habilidades Relacionadas