Communitygithub.com

1596941391qq/ai-openclaw-skeletons

Skill de pós-produção de vídeo full-stack: Transcrição com Whisper → remoção de silêncios com auto-editor → edição precisa com ffmpeg (PIP com lupa, títulos de capítulo, aceleração, legendas) → animações com Remotion → vídeos de marca com HyperFrames. Ideal para tutoriais, gravações de tela sem pausas, vídeos promocionais e exportação multiplataforma.

O que é ai-openclaw-skeletons?

Este Skill oferece uma solução completa e automatizada de pós-produção de vídeo, integrando seis módulos principais em um fluxo de trabalho coeso. Ele utiliza o Whisper para transcrição de áudio e geração de legendas, o auto-editor para remover automaticamente silêncios e pausas (jump cuts), o ffmpeg para edições avançadas como picture-in-picture com efeito de lupa, títulos de capítulo com fade, aceleração de vídeo e áudio, e destaque visual. Para animações de introdução e conclusão, o Skill se integra ao Remotion, um framework React para criação de vídeos programaticamente. Por fim, o HyperFrames permite a geração de vídeos de marca a partir de HTML/CSS/JS e avatares digitais via API HeyGen. O Skill é voltado para plataformas como Claude Code, Cursor e Codex, funcionando em ambientes que suportam Python, Node.js e ffmpeg. Sua documentação detalhada cobre comandos, parâmetros e armadilhas comuns, garantindo que o usuário possa produzir vídeos de alta qualidade de forma eficiente e consistente.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/1596941391qq/ai-openclaw-skeletons/tree/HEAD/Packs/video-editor-skill-pack

Perguntar na sua IA favorita

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

Documentação

Video Editor Full — Skill de Pós-produção de Vídeo Full-stack

Integra 6 grandes capacidades em um Skill único de pós-produção de vídeo. Da gravação bruta ao produto final, tudo com IA.

Matriz de Capacidades

MóduloFerramentaUsoDependência
TranscriçãoWhisper (base/small/medium)Áudio → Legendas SRTPython + openai-whisper
Remoção de Silêncioauto-editorJump cut automáticoPython + auto-editor
Edição Precisaffmpeg filter_complexPIP lupa, títulos capítulo, aceleração, drawbox destaqueffmpeg 7.0+
Legendasfilter subtitles ffmpegQueimar SRT (suporte YaHei CN)ffmpeg + fonte
AnimaçãoRemotionIntrodução/Conclusão, visualização de dados, gráficos dinâmicosNode.js 18+ + Remotion
Vídeo de MarcaHyperFramesHTML/CSS → Vídeo, Avatar Digital IANode.js + HeyGen API Key

Visão Geral do Fluxo de Trabalho

┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│  Vídeo Bruto │────▶│  Análise &   │────▶│  Planejamento   │
│              │     │  Transcrição │     │  de Conteúdo    │
└─────────────┘     └──────────────┘     └─────────────────┘
                                                   │
                    ┌──────────────────────────────┼──────────────────┐
                    ▼                              ▼                  ▼
            ┌──────────────┐            ┌─────────────────┐  ┌──────────────┐
            │ auto-editor │            │ ffmpeg Edição   │  │ Remotion     │
            │ Rem. Silêncio│            │ PIP+Capítulo+   │  │ Intro/Outro  │
            └──────┬───────┘            │ Aceleração      │  └──────┬───────┘
                   │                    └────────┬────────┘         │
                   └─────────────────────────────┼──────────────────┘
                                                 ▼
                                        ┌─────────────────┐
                                        │  Queimar Legendas│
                                        │  + Exportação    │
                                        └─────────────────┘

Pré-requisitos

# Obrigatório
pip install openai-whisper auto-editor
# ffmpeg deve estar no PATH (recomendado 7.0+)
ffmpeg -version

# Opcional: Remotion (animação intro/outro)
npx create-video@latest --blank

# Opcional: HyperFrames (vídeo de marca)
# Necessita HeyGen API Key, veja templates/hyperframes-config.example.json

Detalhamento dos Módulos


Módulo 1: Análise & Transcrição

Passo 1: Metadados do Vídeo

ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

Focar em: resolução, framerate, duração, codec, bitrate.

Passo 2: Extrair Keyframes (a cada 5 segundos)

mkdir -p frames
ffmpeg -i input.mp4 -vf "fps=1/5" -q:v 2 frames/frame_%03d.jpg

Usar análise visual para determinar áreas de UI importantes, limites de capítulos, alvos da lupa.

Passo 3: Transcrição com Whisper

import whisper
model = whisper.load_model("base")  # Para chinês, base basta; medium é mais preciso mas lento
result = model.transcribe("audio.wav", language="zh")

Após gerar o SRT, é necessária calibragem manual:

  • Nomes próprios (nomes de produtos, termos técnicos)
  • Alinhamento da timeline (especialmente no final, pode haver deriva)
  • Erros de homófonos

Módulo 2: Remoção de Silêncio com auto-editor

# Uso básico: remover todos os segmentos silenciosos
auto-editor input.mp4 --margin 0.2s --output no_silence.mp4

# Modo conservador: remover apenas silêncios > 1 segundo
auto-editor input.mp4 --min-clip-length 1s --margin 0.3s --output no_silence.mp4

# Exportar timeline (não renderiza; para uso posterior com ffmpeg)
auto-editor input.mp4 --export timeline:api

Nota: O auto-editor altera a timeline do vídeo. As legendas DEVEM ser geradas ou realinhadas APÓS a remoção de silêncio.

Ordem recomendada: Vídeo original → auto-editor → Transcrição/Alinhamento legendas → Edição precisa ffmpeg


Módulo 3: Edição Precisa com ffmpeg (Núcleo)

3.1 PIP Lupa (Picture-in-Picture)

# Chave: usar force_original_aspect_ratio no crop para evitar esticamento
PIP_W, PIP_H = 300, 188  # Dimensões alvo da janela PIP

# Trecho filter_complex:
# crop → scale (manter proporção) → pad (preencher com preto) → drawbox (borda amarela)
f"[pip{i}]crop={cw}:{ch}:{cx}:{cy},"
f"scale={PIP_W}:{PIP_H}:force_original_aspect_ratio=decrease,"
f"pad={PIP_W}:{PIP_H}:(ow-iw)/2:(oh-ih)/2:color=0x1a1a2e,"
f"drawbox=x=0:y=0:w={PIP_W}:h={PIP_H}:color=yellow:t=2"
f"[pip{i}s]"

3.2 Título de Capítulo (drawtext com fade)

# Exibir título no ponto de transição do capítulo, com fade in/out
f"drawtext=text='{title}':"
f"fontfile='C\\:/Windows/Fonts/msyh.ttc':"
f"fontsize=28:fontcolor=white:borderw=3:[email protected]:"
f"x=(w-text_w)/2:y=30:"
f"alpha='if(lt(t,{start}),0,if(lt(t,{start}+0.4),(t-{start})/0.4,"
f"if(lt(t,{end}-0.4),1,if(lt(t,{end}),({end}-t)/0.4,0))))':"
f"enable='between(t,{fade_in},{fade_out})'"

3.3 Aceleração

# Acelerar vídeo
f"[vout]setpts=PTS/{SPEED}[vfinal]"
# Acelerar áudio (atempo range 0.5-2.0; acima disso, encadear)
f"[0:a]atempo={SPEED}[afinal]"

3.4 Sincronização Timeline Legendas

Após aceleração, os timestamps das legendas devem ser ajustados:

new_start = original_start / SPEED
new_end = original_end / SPEED

3.5 Template de Construção Completo

Veja scripts/build_template.py


Módulo 4: Animação com Remotion

Ideal para gerar introduções, conclusões, transições animadas e visualização de dados.

# Inicializar projeto Remotion
npx create-video@latest my-intro --blank

# Escrever animação em src/Composition.tsx
# Renderizar para MP4
npx remotion render src/index.ts MyComp out/intro.mp4

Os clipes gerados são concatenados ao vídeo principal com ffmpeg:

# lista concat
echo "file 'intro.mp4'" > list.txt
echo "file 'main.mp4'" >> list.txt
echo "file 'outro.mp4'" >> list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy final.mp4

Instalação do Skill Remotion Agent:

# Skill oficial (recomendado)
git clone https://github.com/remotion-dev/skills.git ~/.claude/skills/remotion

Módulo 5: HyperFrames Vídeo de Marca

Renderiza HTML/CSS/JS em quadros de vídeo. Ideal para branding, site para vídeo.

# Instalação
npm install @anthropic-ai/hyperframes

# Uso básico: HTML → MP4
npx hyperframes render --input composition.html --output brand.mp4

Necessita HeyGen API Key para funcionalidade de Avatar Digital. Template de configuração em templates/hyperframes-config.example.json.


Módulo 6: Exportação Final

Queimar Legendas (Último Passo)

ffmpeg -y -i video_no_sub.mp4 \
  -vf "subtitles='srt_path':force_style='FontSize=13,FontName=Microsoft YaHei,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2,Shadow=1,MarginV=22,Bold=1'" \
  -c:v libx264 -preset slow -crf 17 \
  -c:a copy -pix_fmt yuv420p -movflags +faststart \
  output.mp4

Exportação Multiplataforma

PlataformaResoluçãoProporçãoLimite de Duração
YouTube1920x108016:9Ilimitado
WeChat Video1080x19209:1660s (recomendado)
Xiaohongshu1080x13504:55min
Twitter/X1280x72016:92:20
LinkedIn1920x108016:910min
# Exemplo corte vertical (16:9 → 9:16)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" -crf 18 vertical.mp4

Diretrizes de Qualidade

  1. CRF 17 + slow preset — Qualidade padrão para tutoriais
  2. yuv420p — Compatível com todos os players
  3. faststart — Streaming inicia rápido
  4. lanczos — Algoritmo de redimensionamento preferido
  5. Máximo 2 codificações — Evitar perda geracional
  6. Legendas por último — Garantir alinhamento da timeline

Armadilhas Comuns

  • No Windows, caminhos no filtro subtitles do ffmpeg precisam de / e : deve ser escapado como \:
  • No Windows, Whisper deve usar caminhos do Windows (não usar /tmp/)
  • Range atempo é 0.5-2.0; acima disso, encadear: atempo=2.0,atempo=1.5 = 3x
  • Se a proporção da área de crop PIP for diferente da janela alvo, ocorre esticamento. SEMPRE usar force_original_aspect_ratio
  • auto-editor altera a timeline; legendas anteriores ficam inválidas
  • filter_complex muito longo não pode ser passado na linha de comando; usar -filter_complex_script para escrever em arquivo

Estrutura de Arquivos

video-editor-skill-pack/
├── SKILL.md                          # Este arquivo
├── scripts/
│   ├── build_template.py             # Template de construção edição precisa ffmpeg
│   ├── transcribe.py                 # Script de transcrição Whisper
│   ├── adjust_srt_speed.py           # Ajuste de timeline SRT para aceleração
│   └── analyze_frames.py             # Extração e análise de keyframes
├── templates/
│   ├── hyperframes-config.example.json
│   └── remotion-intro/               # Template intro Remotion (a preencher)
└── examples/
    └── tutorial-video-workflow.md     # Exemplo de fluxo completo de vídeo tutorial

Habilidades Relacionadas