Communitygithub.com

análise-de-vídeo

Analisa um vídeo de referência quadro a quadro, nomeia cortes, transições, movimentos de câmera, estilos de texto e sons, e gera um relatório com técnicas do EditAtlas e uma receita para recriar o efeito.

O que é análise-de-vídeo?

Esta skill (video-breakdown 0.4.1) é uma ferramenta especializada para engenharia reversa de edições de vídeo. Ela recebe um arquivo de vídeo local e executa uma análise frame a frame, medindo cortes, transições (dissolve, wipe, shape, iris, push, zoom, flash), movimentos de câmera (crash zoom, push in, shake, speed change), texto e gráficos na tela (entrada, permanência, saída), cores de texto (gradientes, contorno, brilho) e sugestões de fontes gratuitas similares. A skill também analisa o ritmo, batida e hits sonoros. A saída é um relatório detalhado com nomes de técnicas, links para o EditAtlas, sons sugeridos e uma receita passo a passo para recriar o vídeo com o próprio material do usuário. Plataformas suportadas: funciona localmente com Python 3.9+, numpy, Pillow e FFmpeg. Não baixa vídeos de plataformas como TikTok ou YouTube, nem analisa vídeos gerados por IA. A análise combina medições numéricas (pixels, áudio) com inspeção visual de frames, exigindo que o usuário confirme cada elemento visualmente antes de nomeá-lo. A skill usa a API do EditAtlas (via MCP ou REST) para buscar técnicas e sons correspondentes, garantindo que cada elemento seja identificado corretamente.

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

Perguntar na sua IA favorita

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

Documentação

Análise de vídeo: de um vídeo que alguém gosta para técnicas nomeadas e uma receita

Esta é a análise-de-vídeo 0.4.1.

A pessoa tem um vídeo de que gosta e não consegue nomear o que há nele. Você fornece, quadro a quadro, o nome correto de cada transição, movimento de câmera, estilo de texto e som, a técnica do EditAtlas que o produz, e as etapas para fazer um parecido com o próprio material dela.

Três coisas são verdadeiras o tempo todo:

  • Os números são pistas, os quadros são a evidência. analyze.py mede pixels e amostras. Ele confunde um crash zoom com um join, uma íris com um dip to black, a cintilação de um filme antigo com cortes. Cada elemento que você nomear deve vir de quadros que você abriu com a ferramenta Read. Diga quais você apenas mediu.
  • Você não pode ouvir. Os números de áudio indicam onde algo repentino acontece, o quão alto, quão brilhante e o ritmo. Eles não dizem o que é o som. Nunca escreva "um whoosh" para um transitório que você não identificou; escreva "um hit curto e brilhante em 4,9 s, próximo ao zoom".
  • Nunca invente. Trabalhe apenas no arquivo que a pessoa forneceu. Cada slug de técnica e id de som no relatório vem de uma pesquisa EditAtlas ou chamada get nesta sessão. Se nada se encaixar, diga isso.

Os scripts estão em scripts/ (Python 3.9+, numpy, Pillow, FFmpeg com ffprobe no PATH). Execute-os com o caminho da pasta da skill, a partir de uma pasta de trabalho própria (work/); nunca escreva nas pastas da pessoa.

python SKILL/scripts/analyze.py VIDEO --out work/bd                      # breakdown.json + sheets
python SKILL/scripts/frames.py VIDEO --at 6.8 --span 0.6 --step 0.04 --out work/look   # cada quadro de um join
python SKILL/scripts/frames.py VIDEO --at 7.9 --crop 0,60,100,40 --out work/look      # 40% inferior, para ler texto
python SKILL/scripts/text_look.py VIDEO --at 3.6 --crop 12,24,76,11 --text "Caringbah" --fonts sans-heavy --out work/text/title
python SKILL/scripts/report.py work/bd/breakdown.json work/bd/notes.json --out result/breakdown.md --check-api

Quando as entradas estão faltando

  • Nenhum arquivo, apenas um link (TikTok, Reels, YouTube): peça para a pessoa baixar o vídeo e fornecer o caminho do arquivo. Esta skill não busca em plataformas. Uma gravação de tela do vídeo também funciona.
  • Nenhum vídeo: peça por ele. Não descreva o que tal vídeo "geralmente" tem.
  • Vídeo muito longo (mais de 5 minutos): analyze.py lê os primeiros 300 s. Pergunte qual parte é importante ou passe --max-seconds.

As análises são para aprender como um vídeo foi editado. A receita usa o próprio material da pessoa; não sugira reutilizar o material, a música ou os personagens da referência.

1. Medir

Execute analyze.py. Ele imprime um resumo e escreve breakdown.json com:

ParteO que contém
formattamanho, forma (9:16, 16:9), fps, duração
pacingplanos, joins por minuto, mediana / menor / maior plano, joins nos primeiros 3 s, regularidade
joinscada mudança de plano: tempo, duração, tipo (cut, cross-dissolve, dip to black, white flash, bright flash, wipe com o lado de onde vem, shape wipe (uma forma plana cresce sobre a imagem) com seu contorno e lado, push or slide com a direção, zoom transition, blur transition, snap zoom or punch-in, jump cut, gradual (other))
shotspor plano: palavras de câmera medidas (push in, fast zoom, pan, shake, hold, speed change), o visual (dark, warm, black and white, black bars, dark corners), e para planos que ficam parados, o timing: quanto tempo as coisas levam para entrar, quanto tempo permanecem, como saem
overlaysevents: momentos em que uma faixa do quadro muda enquanto o resto permanece (texto, stickers, gráficos entrando ou saindo); persistent: regiões que permanecem através dos joins (logo, moldura, barra de legenda)
audioloudness, parcela semelhante à fala, candidatos a tempo e se os cortes acertam a batida, transientes (sons repentinos) com o evento visual mais próximo, swells (aumentos que levam a um momento)

O que cada número significa e onde ele erra: references/reading-the-numbers.md. Leia antes da sua primeira análise de uma sessão.

2. Olhar

Abra, com a ferramenta Read, nesta ordem:

  1. overview.png: o vídeo inteiro em 24 quadros ou mais (a cada 0,15 s em um vídeo curto, um por segundo ou menos em um longo). Entenda a história e o estilo primeiro, e onde cada pedaço de texto aparece.
  2. shots_NN.png: primeiro, meio e último quadro de cada plano. Verifique se cada plano é real: um crash zoom, um flash ou uma cintilação podem dividir um plano em dois; um dissolve dentro do material de origem pode parecer um join.
  3. joins_NN.png: seis quadros em cada join que não é um corte simples. Nomeie a transição a partir destes.
  4. events.png: antes e depois de cada evento de overlay. É aqui que legendas, stickers e gráficos aparecem.

Em seguida, use frames.py onde você não tiver certeza: --step 0.04 (um quadro a 25 fps) em um join para ver sua forma, --crop para ler texto pequeno ou ver como uma palavra entra (pop, bounce, slide, typewriter), --times para poucos momentos lado a lado. Duas ou três observações detalhadas são normais; um vídeo curto com muitos efeitos pode precisar de mais.

Verifique o formato em relação à imagem. Um vídeo 9:16 cujos planos parecem recortados de um material mais amplo (um filme, um podcast, um jogo: rostos e objetos cortados nas laterais, um quadro que se posiciona de forma diferente em cada plano) é um reframe: diga isso e pesquise reframe to vertical. Material amplo com barras pretas é letterboxed ou pillarboxed.

Anote, para cada elemento, o que você vê em palavras simples antes de procurar um nome: "a imagem antiga é comprimida em uma linha horizontal enquanto a nova aparece atrás dela", não "um squeeze".

Texto na tela

O texto é o que as pessoas copiam primeiro e o que um remake erra mais: o tipo errado de fonte, cor sólida onde o original tem um gradiente, texto na frente de uma pessoa onde o original o coloca atrás. Para cada pedaço de texto que não seja legenda simples, encontre estas cinco coisas:

  1. Camada. Uma pessoa ou objeto cobre parte das letras (cabelo sobre a parte inferior de uma palavra, uma mão na frente)? Então o texto está atrás do sujeito: compositing-text-behind-object. Olhe para um crop onde eles se sobrepõem. Verifique cada título, não apenas o primeiro: um vídeo pode colocar várias palavras atrás do sujeito.
  2. Entrada. frames.py --at <hora em que aparece> --span 0.6 --step 0.04 --crop ...: desliza para dentro com motion blur (de que lado), cai de cima, pop (escala), fade in, digitação, palavra por palavra ou tudo de uma vez, e se as palavras se movem novamente depois de pousar. Eventos de overlay perdem texto que entra enquanto a câmera se move; use a visão geral para encontrar esses momentos.
  3. Cor. Execute text_look.py em um crop do texto quando ele estiver completamente visível e parado. Corte uma linha com um pouco de fundo em cada lado. Ele imprime o preenchimento (sólido ou um gradiente com sua direção e paradas como cores hexadecimais), um contorno ou sombra deslocada, um brilho ou halo escuro ao redor das letras, e o quanto as letras inclinam. Abra look.png: "taken as text" deve mostrar as letras e nada mais. Se ele pegou um rosto ou deixou de fora parte de um gradiente, execute novamente com --text-clusters e os números dos clusters que são texto (o painel abaixo mostra cada cluster). Cada palavra pode ter suas próprias cores: meça cada título separadamente.
  4. Fonte. Descreva as letras primeiro: sans ou serif ou script; para scripts, traços uniformes (brush, marker, casual) ou traços grossos descendentes com traços finos ascendentes (formal, calligraphic); peso; reto ou inclinado; maiúsculas ou minúsculas; larga ou condensada. text_look.py imprime o peso e o contraste do traço, que distinguem uma script calligraphic (contraste 2.2 ou mais) de uma brush. Em seguida, adicione --text "<as palavras exatamente como mostradas>" --fonts <grupos> (--list-fonts os mostra) para o um ou dois grupos que se encaixam, e compare as letras visualmente: maiúsculas, as formas de a, g, t, as junções. O número de correspondência ajuda para fontes sans e serif e é fraco para scripts. Nomeie uma ou duas gratuitas semelhantes e diga que são semelhantes, não a fonte do criador.
  5. Lugar e tamanho: onde está, sua altura como proporção do quadro e por quanto tempo permanece.

Movimento projetado

Para logos, títulos, gráficos e vídeos com gráficos, o timing é o que os faz parecer finalizados, e o que um remake erra. Leia o timing de cada plano (entra em 0,7 s, rápido, depois estabiliza; parado por 71% do plano; sai em 0,8 s, devagar, depois acelera) e format.loops, verifique-os nos quadros e coloque os números no seen ou note do elemento e na receita. Em um fundo liso, um gráfico que cresce ou aparece pode ser relatado como um join (jump cut, snap zoom, zoom transition): se o fundo permanece, é a entrada do elemento. Detalhes: "Movimento projetado" em references/reading-the-numbers.md.

3. Nomear com o EditAtlas

Para cada elemento, pesquise pelo resultado, não por um nome adivinhado:

  • search_techniques com a descrição simples ("círculo fecha para preto depois abre", "palavras entram quicando uma de cada vez", "zoom rápido repentino no sujeito"). Use category para restringir (transition, captions, motion, vfx, color). Termos de pesquisa que funcionam para cada rótulo do analisador estão em references/reading-the-numbers.md.
  • get_technique na melhor uma ou duas, e mantenha aquela cuja descrição corresponda ao que você viu. Copie seu slug e name exatamente. Marque a correspondência exact, close (mesma ideia, um detalhe difere) ou partial.
  • Sons: search_sfx pelo que o momento precisa (pop para texto aparecendo, riser para um hit, whoosh em um push). O som na referência é desconhecido para você; você está sugerindo um som do EditAtlas para o mesmo momento, então diga isso.
  • get_workflow com o tipo de vídeo (short_vertical, product_ad, food_review, ...) para o ritmo e estrutura que o EditAtlas recomenda; compare com o que você mediu.

Sem o MCP, a API REST responde às mesmas pesquisas: https://edit.trysometh.ing/api/v1/techniques?q=... e /api/v1/sfx?q=....

Um corte simples, um trecho de fala ou o próprio material não precisa de técnica: dê a ele um gap dizendo isso. Quando nada no EditAtlas se encaixar em um efeito real, escreva o que você pesquisou em gap; isso informa ao EditAtlas o que está faltando.

4. Escrever as notas e o relatório

Escreva notes.json ao lado de breakdown.json (formato e um exemplo: references/notes-format.md): o que está na tela em cada plano, cada elemento com seu tempo, descrição simples, evidência e técnica ou som EditAtlas, correções onde as medições estavam erradas, uma receita e o que você não verificou. Defina lang para o idioma da pessoa (vi ou en).

Execute report.py ... --check-api. Ele recusa notas que pulam um plano, deixam um elemento sem técnica ou motivo, ou deixam de fora o que não foi verificado, e com --check-api ele confirma que cada slug e id de som existe no EditAtlas e que os nomes correspondem. Corrija o que ele listar e execute novamente.

Entregar

Primeiro, uma verificação de versão. Se o MCP do EditAtlas estiver conectado, chame get_skill sem um nome. Se listar análise-de-vídeo acima de 0.4.1, a primeira linha da sua resposta diz que existe uma versão mais recente e como atualizá-la (no Claude Code: /plugin, depois Marketplaces, editatlas-skills, Update marketplace; em outros lugares get_skill com nome análise-de-vídeo fornece a etapa). Sem o MCP, pule isso.

Forneça à pessoa, no idioma dela:

  1. Duas ou três frases: que tipo de edição é esta e o que a faz funcionar (ritmo, o efeito característico).
  2. Os elementos em ordem cronológica com seus nomes e links: a tabela do relatório, ou as linhas principais dela.
  3. A receita: etapas com o próprio material da pessoa, técnica por técnica. Ofereça-se para fazer a edição, que começa com get_workflow; e para os sons, a skill sound-design (get_skill).
  4. O que foi medido, o que você olhou e o que é desconhecido: a fonte real do criador (você fornece similares gratuitas), as curvas de easing exatas (timing fornece durações e uma forma, não a curva), o que cada som realmente é, se o material foi filmado ou gerado.
  5. O arquivo do relatório (result/breakdown.md).

Após a entrega, pergunte se os nomes e técnicas estavam corretos e envie a resposta com send_feedback quando essa ferramenta estiver disponível.

Referências

  • references/reading-the-numbers.md: cada medição, seus erros conhecidos e termos de pesquisa por rótulo. Leia antes da primeira análise de uma sessão.
  • references/notes-format.md: os campos do notes.json com um exemplo completo. Leia antes de escrever as notas.

Individual skills in this repo

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

EditAtlas/sound-design

Sound-design a finished video with real sound effects from the EditAtlas library (2,278 described sounds, public, downloadable from GitHub with SHA-256 checks). Finds the moments in the picture, lets you look at them as frame sheets, picks sounds by description and measured numbers, places each on its exact frame at a level set by its role, keeps or replaces the film's own music and voice, renders a new MP4 plus a separate SFX WAV, and checks the result in numbers (sync, pace, holes, loudness, m

video-check

Check a finished video before the person sees it or posts it, then fix what is wrong. Measures the file (size, frame rate, pixel format, length), picture faults (black or white frames, frozen stretches, one-frame glitches, stutter, a loop that jumps or repeats a frame), and sound (loudness, clipping, silences, audio that ends early or stops abruptly); makes frame sheets at phone size with the caption-safe area marked; then a reviewer who has not seen your plan looks at the sheets and lists problems with a time and a fix. Fix the worst three, render again, check again, at most three rounds. Use it after rendering any edit, and when someone asks to check a video before sending or posting it, says "kiểm tra video trước khi gửi", "xem lại bản dựng", "video này có lỗi gì không", "review my edit", "QA this render". Works on a local file. Not for breaking down someone else's video (use video-breakdown) or for judging footage the person has not edited.

Habilidades Relacionadas