Edição de Reels — Nível 1 (Clean & Minimal)
Converte um vídeo gravado em 01-crudo/ em um Reel vertical 9:16, limpo e pronto para revisão: sem silêncios, com legendas karaokê, movimento discreto e fade final.
Regra fundamental: primeiro um DRAFT; a versão final só é feita depois que a pessoa aprovar. Nunca use serviços pagos sem perguntar antes.
Todo o processo é local e gratuito (Python + FFmpeg + Whisper). Os scripts já estão em scripts/. Não os reescreva: use-os.
Passo 0 — Preparar ferramentas (apenas na primeira vez)
Primeiro execute python scripts/verificar_entorno.py: ele verifica Python, FFmpeg (com os filtros usados pelo kit) e Whisper, e indica o que está faltando. Se estiver tudo OK, vá para o Passo 1. Se não, resolva o que for indicado com os comandos abaixo. Verifique silenciosamente se eles existem. Se faltar algo, instale avisando com uma mensagem amigável ("Estou preparando as ferramentas, leva alguns minutos na primeira vez"):
python --version
ffmpeg -version
ffprobe -version
python -c "import whisper"
Se faltar algo:
- Python: peça para a pessoa instalá-lo em python.org (marque "Add Python to PATH") e reinicie o terminal.
- FFmpeg (Windows):
winget install Gyan.FFmpeg— depois reinicie o terminal. No Mac:brew install ffmpeg. - Whisper:
pip install openai-whisper(baixa o modelosmallna primeira vez, é gratuito e roda no computador dela).
Se algo não puder ser instalado, não trave: explique o que falta e ofereça a alternativa mais simples.
Passo 1 — Revisar o material
- Liste o que tem em
01-crudo/(e recursos em02-assets/). - Se houver um único vídeo, use-o. Se houver vários, pergunte qual. Se a pasta estiver vazia, peça para copiar o vídeo para lá.
- Confirme a duração e se tem áudio:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "01-crudo/NOME.mp4" - Faça no máximo uma pergunta de preferências, apenas se necessário (por exemplo: há vícios de linguagem que ela queira cortar manualmente?). Se não, siga com os valores padrão.
Passo 2 — Gerar o DRAFT
Execute o pipeline completo (transcreve → limpa silêncios → exporta vertical):
python scripts/pipeline.py "01-crudo/NOME.mp4"
O que cada passo faz (caso precise executá-los separadamente ou ajustar):
| Passo | Script | Resultado |
|---|---|---|
Transcrição com Whisper (small, tempos por palavra) | scripts/transcribir.py | 02-assets/legendas/NOME.srt e .words.json |
| Remover silêncios (> 0,5 s a -35 dB) | scripts/limpiar_silencios.py | 02-assets/sem_silencio/NOME.mp4 e .timeline.json |
| Exportar 9:16 com legendas, zoom e fade | scripts/exportar_reel.py | 03-output/NOME.mp4 |
Ajustes disponíveis em limpiar_silencios.py (use-os apenas se a pessoa pedir ou o resultado precisar):
--silence-duration 0.35→ corta pausas mais curtas (ritmo mais rápido).--cut-range INICIO FIM(repetível) → corta um trecho exato, em segundos do vídeo original. É a forma de remover vícios de linguagem ("eh", "mmm", "tipo") ou tomadas falhadas: leia-os em02-assets/legendas/NOME.words.json, localize seus tempos e passe-os como faixas. Mostre à pessoa a lista de cortes antes de aplicá-los se forem mais do que alguns.--speed-range INICIO FIM VELOCIDADE(repetível) → velocidade diferente em um trecho (segundos do original), por exemplo--speed 1.32 --speed-range 13 21.8 1.5. Use para acelerar mais as partes lentas ou explicativas e deixar as importantes em velocidade normal. Se a pessoa pedir uma duração máxima (ex.: 55 s), ajuste--speedaté cumpri-la e meça comffprobe.--speed 1.1→ acelera ligeiramente mantendo o tom (entre 0.5 e 2.0). Use apenas se for solicitado.
Para executar novamente apenas o passo de limpeza com ajustes e depois exportar:
python scripts/limpiar_silencios.py "01-crudo/NOME.mp4" --cut-range 12.4 13.1
python scripts/exportar_reel.py "02-assets/sem_silencio/NOME.mp4" "02-assets/legendas/NOME.srt" --output "03-output/NOME_draft.mp4"
Salve o rascunho com sufixo _draft (e _draft2, _draft3… se houver mais iterações) para não sobrescrever versões anteriores. Se usou pipeline.py, renomeie a saída para NOME_draft.mp4.
Padrão de estilo (já incorporado nos scripts — não o altere sem pedir)
- Formato: vertical 9:16, 1080×1920, 30 fps.
- Legendas karaokê: texto branco quente, palavra ativa em dourado suave, fundo azul marinho translúcido e discreto, no máximo duas linhas, dentro da zona segura (longe da borda inferior e dos botões do aplicativo).
- Movimento: zoom e panorâmica de baixa intensidade, no máximo 2,5%. Sem empilhar efeitos nem adicionar gráficos sobre imagens já carregadas.
- Fechamento: fade de saída (imagem e áudio).
- Áudio: original limpo, normalizado para -14 LUFS, sem música ou efeitos decorativos adicionados (o som de abertura é opcional e próprio de cada pessoa, veja abaixo).
- Ritmo: ganchos condensados; se a pessoa pedir para destacar palavras-chave, faça com a cor dourada, sem saturar.
Som de abertura próprio (opcional)
Por padrão, o reel não leva nenhum som adicionado. Se a pessoa quiser uma marca sonora no início, ela deve ser dela: pergunte se ela já tem um arquivo (.wav ou .mp3) ou ajude-a a criar um próprio (por exemplo, sintetizando com FFmpeg ou Python, ou com um recurso que ela tenha direito de usar). Em seguida, misture-o sob a voz ao exportar:
python scripts/exportar_reel.py "02-assets/sem_silencio/NOME.mp4" "02-assets/legendas/NOME.srt" --som "caminho/para/meu_som.wav" --output "03-output/NOME_draft.mp4"
- Se cobrir a voz, abaixe
SOUND_VOLUME(0,55 por padrão) emscripts/exportar_reel.py. - Não baixe nem use sons de terceiros ou pagos sem perguntar e confirmar que podem ser usados.
Passo 3 — Revisar o rascunho antes de entregá-lo
Antes de dizer que está pronto:
- Confirme que o arquivo existe em
03-output/e meça sua duração comffprobe. - Extraia 2–3 quadros para verificar se as legendas aparecem e não saem da zona segura:
Revise-os e delete osffmpeg -y -ss 5 -i "03-output/NOME_draft.mp4" -frames:v 1 "03-output/_chequeo.png"_chequeo.pngao terminar. - Compare a duração original vs. final.
Se algo falhar (Whisper não transcreve, FFmpeg dá erro), explique o problema em linguagem simples, corrija e tente novamente. Não entregue um rascunho com legendas mal sincronizadas ou cortadas.
Passo 4 — Apresentar e aguardar aprovação
Abra o rascunho para que a pessoa o ouça e veja:
- Windows:
start "" "03-output/NOME_draft.mp4" - Mac:
open "03-output/NOME_draft.mp4"
Resuma em poucas linhas:
- Caminho do arquivo e duração (original → final).
- O que foi cortado (silêncios e, se aplicável, vícios de linguagem ou trechos manuais).
- O que foi aplicado (legendas, zoom, fade).
Termine perguntando: "Você aprova ou quer ajustar alguma coisa?" (áudio, legendas, ritmo, zooms, cortes).
Não gere a versão final até receber um sim explícito.
Passo 5 — Iterar e entregar a versão final
- Se pedir mudanças: aplique-as, gere um novo rascunho (
_draft2) e volte ao Passo 3. - Quando aprovar: exporte a versão final com o mesmo comando de exportação, usando
--output "03-output/NOME_final.mp4". - Entregue o caminho do arquivo final e sugira publicá-lo em Reels / TikTok / Shorts.
Regras
- Pergunte antes de usar qualquer serviço pago (APIs, editores na nuvem, bancos de música, vozes com IA). O fluxo padrão não precisa de nenhum.
- Whisper local para transcrever. Não envie o vídeo para serviços externos.
- Não apague nem sobrescreva arquivos de
01-crudo/. O original é sempre preservado. - Salve resultados em
03-output/e arquivos intermediários em02-assets/. - Fale com linguagem simples: a pessoa pode não saber de edição nem de programação.
- Se a pessoa pedir algo fora do nível 1 (animações complexas, motion graphics, várias câmeras, color grading), diga com honestidade: este fluxo cobre limpeza, legendas e movimento discreto; ofereça fazer isso como uma etapa separada.