Edição de Vídeo
Esta habilidade transforma gravações brutas de alguém falando para a câmera em um vídeo finalizado, um arquivo de legenda SRT correspondente e uma capa, usando uma ferramenta de linha de comando (vedit.py) construída sobre ffmpeg, Whisper e Playwright. Ela comanda toda a edição: escolha dos takes limpos, cortes precisos, variedade de planos, posicionamento de gráficos e B-roll, legendas, normalização de volume, criação da capa e a verificação final de qualidade. Ela depende da habilidade video-scripting para o roteiro e notas de edição, do perfil brand/brand-profile.md para cores, fontes e linhas de conformidade, da habilidade image-generation para imagens estáticas, da habilidade review-loop para a verificação independente e da habilidade scheduling para a postagem. Nada é postado ou agendado a partir daqui.
Ordem de autoridade: brand-profile.md vence em constantes da marca e redação de conformidade; esta habilidade é dona do método.
Antes de começar
- Encontre o workspace de marketing (padrão
marketing/). Se não houver, diga isso em uma linha e ofereça a habilidadebrand-setup; a ferramenta ainda funciona com uma aparência neutra. - Encontre a pasta da peça,
content/<yyyy-mm-dd>-<slug>/. Ela deve conterscript.txt(uma frase falada por linha; marcadores[notas entre colchetes]e[CAPÍTULO N • Título]nunca são falados) e, idealmente,edit-notes.txt(linhasHOOK ON SCREEN:,COVER:,OUTCOME:) esources.txt(as únicas figuras permitidas na tela). Se a pessoa filmou sem roteiro, transcreva primeiro e trate a transcrição limpa como o roteiro. - Leia
## Identidade visual,## Conformidade,## Limitese## CTA & contatono perfil da marca, ebrand/voice-learnings.mdpara palavras e frases em gráficos e capas. - Verifique se a ferramenta está pronta:
python3 <skill>/vedit.py doctor. Se faltar algo, executebash <skill>/setup.shuma vez (ffmpeg, Node, ambiente virtual Python, Whisper, Playwright, fontes). O modelo grande do Whisper tem cerca de 3 GB e transcreve aproximadamente de uma a duas vezes a duração do clipe em uma CPU de laptop; portanto, inicie etapas longas em segundo plano.
O padrão
- Uma leitura limpa de cada linha. O vídeo finalizado contém exatamente uma leitura de cada linha: sem reinícios, sem "o, o", sem meia frase de um take abandonado, sem cortes no final de palavras. Isso é um bloqueador, não um polimento. Um "hum" natural isolado pode permanecer (as pessoas devem soar como elas mesmas), mas nunca na linha de abertura e nunca dois em uma linha.
- Siga a fala real, não o roteiro escrito. As pessoas melhoram as linhas enquanto falam. Uma reformulação ao vivo aparece como uma linha ausente ou de baixa cobertura no localizador de takes; não é um erro. Mantenha a versão delas, corte apenas gagueiras e reinícios genuínos, e corrija qualquer gráfico ou cartão de gancho escrito a partir do roteiro para corresponder ao que foi realmente dito.
- Mantenha os momentos que geram o negócio. Se o roteiro tiver uma linha inicial "quem sou eu" ou uma chamada para ação final, ela permanece onde está.
- Nunca um único take plano. Alterne entre close e plano aberto em cada corte, reenquadre dentro de falas longas, corte para B-roll, conduza a história com gráficos animados. A cabeça falante é a espinha dorsal, não o vídeo inteiro.
- As legendas vêm do áudio final, verificadas contra o roteiro, para que correspondam exatamente ao que é ouvido. Incorporadas nos shorts; apenas SRT nos longas.
- Volume -14 LUFS, pico verdadeiro -1,5 dB, para que soe bem em todas as plataformas.
- Uma capa real do quadro com o título dentro do quadrado seguro da grade, oferecida como uma ou duas variantes.
- A porta de qualidade passa antes de qualquer entrega. Ela retranscreve o render, ouve cada corte individualmente e verifica se cada corte termina em silêncio.
deliverrecusa sem um PASS fresco. - Seja honesto sobre o ouvido. Claude não pode ouvir. A porta verifica palavras e energia, não tom, uma tosse sob uma palavra ou uma emenda ruim de ruído ambiente. Diga isso na entrega, todas as vezes.
O método
Todo comando é python3 <skill>/vedit.py <comando> <slug>. Leia references/project-config.md antes de editar project.json manualmente.
- Reúna tudo primeiro. Liste cada clipe no lote. Emparelhe segundas câmeras pelo som (
scripts/sync_cams.py; uma correspondência real pontua cerca de 0,4 a 0,55, uma não correspondência cerca de 0,03) e câmeras silenciosas, como drones, por movimento e carimbo de data/hora (scripts/sync_cams_visual.py). Crie folhas de contato de cada foto e clipe curto, anote o que é utilizável como B-roll e pergunte imediatamente sobre qualquer câmera que a pessoa mencione mas que não esteja na pasta. Abrareferences/multicam-and-long-form.mdpara os detalhes. - Inicializar.
vedit.py init <slug> --raw <clipe câmeraA> --pack <pasta de conteúdo> [--long] [--cam B=<clipe>]. Ele copia o roteiro, lê as notas de edição e mapeia a paleta de cores e fontes do perfil da marca paraproject.json. Em seguida, preenchavocabcom todos os nomes próprios do roteiro, incluindo o nome do apresentador. - Preparar (lento, em segundo plano):
vedit.py prep <slug>. Master na orientação correta na taxa de quadros da própria câmera, áudio de 16 kHz, câmeras extras sincronizadas e duas transcrições (large-v3 literal mais medium.en). Ele para em material HDR, material com formato errado e áudio de qualidade de chamada de um microfone Bluetooth;references/audio-and-sync.mdtem a rota de resgate. - Takes.
vedit.py takes <slug>alinha a fala ao roteiro como um teleprompter: um salto para trás é um reinício, então cada tentativa de cada linha se torna um take pontuado. Uma segunda audição ouve cada take individualmente para encontrar preenchimentos, repetições e leituras duplas. Leiapicker/takes_report.txt. Em seguida, verifique antes de confiar: abrareferences/whisper-pitfalls.md, porque o Whisper ignora falsos começos repetidos, inventa palavras finais e divide termos desconhecidos. Um corte de reinício proposto permanece a menos que o mapa de energia mostre sem segunda explosão de fala. - Escolhas. Ou a pessoa escolhe no navegador (
vedit.py picker <slug>em segundo plano, depois abrahttp://localhost:8765) ou, se ela pedir ao Claude para escolher, escrevapicker/picks.jsonvocê mesmo com umanotesobre cada alteração em relação à escolha automática. Diga a elas quais linhas estão vermelhas ou âmbar e por quê. Prefira leituras da mesma execução que as linhas vizinhas: elas fluem sem corte. Nunca entregue a partir de escolhas automáticas. - Coreografar (trabalho de design, leia
references/style-notes.mdprimeiro). A partir do roteiro,sources.txte o que está na gravação: um cartão de gancho no quadro 0 a partir deedit_notes.hook_on_screen(3 a 5 palavras, uma promessa, não a resposta); cartõesgraphics.jsonpara os momentos que precisam deles, com apenas figuras que estão emsources.txt;cuesancoradas em linhas ou palavras faladas, nunca em tempos fixos; cortes motivados para B-roll (na palavra que ilustram, ou logo após um olhar ou gesto);framing.face_x/eye_ymedidos em um quadro;exit_tailpara a saída. Visualize os gráficos como imagens estáticas comvedit.py mg-preview <slug>. - Construir.
vedit.py build <slug> plané instantâneo e imprime o resumo do corte;build cueslista qualquer cue que não pôde ser posicionada (corrija, nunca ignore). Itere embuild cutmaisscripts/cut_check.pyaté ficar limpo, faça a capa (etapa 9) para que o quadro do pôster seja incorporado, depoisbuild all. As regras que a construção aplica estão emreferences/edit-rules.md. - Porta.
vedit.py gate <slug>. Ela falha em uma linha lida duas vezes, um gaguejo ou início abandonado deixado, energia de fala sem palavras (uma releitura oculta), uma repetição ou salto em qualquer corte (ouvido individualmente por ambos os modelos), palavras soltas de um take descartado em um corte, um corte que termina em som e (várias câmeras, se existir umgaze.json) a câmera errada. Corrija a causa, reconstrua, repasse pela porta. Em seguida, a passagem de proxy humano: assista a uma folha de contato do render, leia cada legenda (vedit.py captions <slug>) e, para cada linha que você alterou, anote o que estava lá e o que foi mantido. - Capa.
vedit.py frames <slug> --every 5para uma folha de contato; escolha um quadro com contato visual, uma expressão calorosa (não no meio de uma palavra), foco nítido e um adereço que conta a história. Definacover.framee uma ou duasvariants(2 a 4 palavras, grande, uma palavra de destaque, simples e verdadeira), depoisvedit.py cover <slug>. Ela verifica cada caixa de texto contra o quadrado seguro da grade e o rosto, e escrevegrid_tiles.jpgmostrando o que a grade do perfil exibirá. - Revisão. Entregue a folha de contato do render, as capas, o SRT e a lista de cortes para a habilidade
review-loop. As figuras na tela são verificadas contrasources.txt, não aceitas por confiança. - Entregar e lançar.
vedit.py deliver <slug>escreve o vídeo, SRT, capas, lista de cortes (cada linha: take, intervalo de origem, cortes, cada alteração com seu motivo), relatório de QA e, para longas,youtube-chapters.txtdentro decontent/<data>-<slug>/video/.vedit.py release <slug> --to <pasta>copia o vídeo, o SRT e uma miniatura JPG sob um único nome de arquivo, que é o que os agendadores e o YouTube esperam.
Verificações antes de enviar
A entrega para a pessoa sempre inclui:
- Gate PASS, fresco (mais novo que o render).
- Sincronização labial medida no render final:
scripts/lipsync.py build/final.mp4 <t0> <t1>em dois ou três trechos de rosto para câmera, cada um dentro de ±40 ms. - Verificação de legendas lida (
vedit.py captions <slug>, entregue comovN-caption-check.txt): os FIXes parecem sensatos, e cada CHECK é nomeado como uma linha para a pessoa ouvir. - Tempo de execução e volume informados.
- Cada alteração nas escolhas da pessoa, com o motivo, e as linhas que vale a pena ouvir.
- Capa A versus B, e a prévia da grade.
- "Nada foi postado ou agendado."
- "Não consigo ouvir: por favor, ouça antes de publicar."
Adaptações
- Sem roteiro? Transcreva primeiro (
prepfaz ambas as transcrições), limpe a transcrição para uma frase por linha, salve comoscript.txt, depois executetakes. - Visual diferente: tudo visual lê
project.jsonbrand(cores, fontes) ecover.wordmark(uma etiqueta de nome opcional pequena). Altere lá, nunca nos scripts. - Ortografia diferente:
captions.localeen-GB(padrão) ouen-US. - Máquina mais lenta:
"whisper": {"large": "small.en", "medium": "base.en"}emproject.jsontroca precisão por velocidade; a porta ainda funciona. - Negócio regulamentado: coloque a redação obrigatória na tela de
## Complianceem um gráfico ou cartão final, e mantenha cada figura na tela emsources.txt. - Novos modelos gráficos: adicione-os a
scripts/mg/kit.htmle documente-os emreferences/project-config.md. - Aprendizado: quando a pessoa relatar um salto ou repetição que a porta não detectou, anote o caso antes de corrigir o vídeo e adicione o que aprendeu sobre o gosto de edição dela a
brand/performance-learnings.md. O SRT é transcrito da própria voz dela, então a habilidadevoice-looppode aprender com ele.
Lacunas conhecidas
- O localizador de takes pode perder um reinício que muda muito a redação; a regra de releitura da porta é a salvaguarda. Após qualquer alteração manual de corte ou
nin, leiabuild/edl.jsone verifique cada emenda que você tocou. - A verificação de palavras soltas corresponde às palavras da borda do take mantido por texto; portanto, a palavra de um take abandonado que soa como a primeira palavra do take mantido pode passar como uma nota "ad-lib". Mapeie cada nota desse tipo para o tempo de origem através de
build/edl.jsonmanualmente. - Nenhuma verificação automática de sincronização labial na porta: execute
lipsync.pyem cada render final. - As chamadas de câmera em gravações com várias câmeras são manuais (
"cam"nas escolhas), a menos que você forneça umgaze.json; vejareferences/multicam-and-long-form.md. - Legendas "karaokê" palavra por palavra não são construídas; ofereça-as como ideia, nunca mude o estilo de legenda sem ser solicitado.
Arquivos nesta habilidade
| Arquivo | Abra quando |
|---|---|
references/project-config.md | editando project.json, graphics.json, cues, variantes de capa ou escolhas |
references/edit-rules.md | julgando um corte, uma legenda, um gráfico ou uma capa |
references/whisper-pitfalls.md | verificando takes, cortes e notas da porta |
references/style-notes.md | coreografando uma edição (variedade de planos, cortes, cartão de gancho, capas) |
references/multicam-and-long-form.md | uma segunda câmera, um drone, um longa 16:9, capítulos |
references/audio-and-sync.md | áudio ruim, áudio atrasado, ruído de fundo, volume |
references/project-template.json | o project.json inicial |
setup.sh, vedit.py doctor | primeira execução em uma máquina |
Saiba mais
Um guia mais longo com exemplos está em https://builtnotboosted.com/skills/video-editing