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.pymede 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.pylê 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:
| Parte | O que contém |
|---|---|
format | tamanho, forma (9:16, 16:9), fps, duração |
pacing | planos, joins por minuto, mediana / menor / maior plano, joins nos primeiros 3 s, regularidade |
joins | cada 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)) |
shots | por 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 |
overlays | events: 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) |
audio | loudness, 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:
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.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.joins_NN.png: seis quadros em cada join que não é um corte simples. Nomeie a transição a partir destes.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:
- 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. - 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. - Cor. Execute
text_look.pyem 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. Abralook.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-clusterse 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. - 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.pyimprime 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-fontsos 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. - 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_techniquescom a descrição simples ("círculo fecha para preto depois abre", "palavras entram quicando uma de cada vez", "zoom rápido repentino no sujeito"). Usecategorypara restringir (transition, captions, motion, vfx, color). Termos de pesquisa que funcionam para cada rótulo do analisador estão emreferences/reading-the-numbers.md.get_techniquena melhor uma ou duas, e mantenha aquela cuja descrição corresponda ao que você viu. Copie seuslugenameexatamente. Marque a correspondênciaexact,close(mesma ideia, um detalhe difere) oupartial.- Sons:
search_sfxpelo 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_workflowcom 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:
- Duas ou três frases: que tipo de edição é esta e o que a faz funcionar (ritmo, o efeito característico).
- Os elementos em ordem cronológica com seus nomes e links: a tabela do relatório, ou as linhas principais dela.
- 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 skillsound-design(get_skill). - 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 (
timingfornece durações e uma forma, não a curva), o que cada som realmente é, se o material foi filmado ou gerado. - 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.