Communitygithub.com

andyluu98/VideoMotion

Renderiza o projeto VideoMotion, que já possui áudio e storyboard: baixa fontes do estilo, aplica cores, distribui cenas em paralelo para agentes vm-canh, monta, verifica tecnicamente, renderiza, e combina áudio e legendas. Usado na etapa 7 do /videomotion, ou quando o usuário diz "renderizar cena", "render", "exportar vídeo", "corrigir cena X".

O que é VideoMotion?

Este skill automatiza a renderização final de projetos VideoMotion que já possuem storyboard, áudio e timeline definidos. Ele é executado na etapa 7 do fluxo /videomotion, ou sob demanda quando o usuário solicita ações como "renderizar", "exportar vídeo" ou "corrigir cena X". O skill carrega as fontes definidas no estilo, gera um arquivo CSS com cores de alto contraste, e cria arquivos de pacote para cada cena. Em seguida, distribui a renderização de cada cena para um agente filho dedicado (tipo `videomotion:vm-canh`, executando Sonnet com esforço médio), permitindo processamento paralelo. Após a renderização individual das cenas, o skill monta o vídeo final, realiza verificações técnicas com hyperframes (aceitando apenas `Check passed`), renderiza o vídeo sem áudio, combina o áudio original (mix.wav) com o vídeo renderizado, e gera legendas no formato SRT. Uma verificação final com ffprobe e ffmpeg garante que as dimensões, a duração e a faixa de áudio estejam corretas. O resultado é um arquivo de vídeo MP4 e um arquivo de legenda SRT prontos para entrega.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-dung

Perguntar na sua IA favorita

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

Documentação

Dựng và xuất video

Biến VV, PY như trong skill videomotion. HF là npx -y [email protected]. Đầu vào trong <du-an>: storyboard.json, words.json, timeline.json, mix.wav.

1. Chuẩn bị theo style

  1. Phông của thẻ style (dòng Google Fonts trong thẻ): "$PY" "$VV/tools/fonts.py" <du-an> "VT323" "Be Vietnam Pro:400,700" ra fonts/ và fonts.css.
  2. theme.css: biến :root từ bảng màu thẻ: --bg, --ink, --accent, màu phụ, --cap-bg, --cap-ink (phụ đề đạt tương phản 4,5:1).
  3. Style có nền liền suốt video (bản đồ, giấy, bảng, lưới): viết compositions/_nen.html (id _nen), các cảnh để nền trong suốt.
  4. "$PY" "$VV/tools/assemble.py" <du-an>: tạo index.html, chép phông, tạo file chờ cho cảnh chưa có.
  5. "$PY" "$VV/tools/packets.py" <du-an>: gói giao việc checks/packets/<id>.md cho từng cảnh.

2. Giao cảnh song song

Phát tất cả trong cùng một tin nhắn, mỗi cảnh một agent, agent type videomotion:vm-canh (đã khai model: sonnet, effort: medium: luôn là Sonnet mới nhất). Lời giao ngắn:

Dựng cảnh <id>. Gói giao việc: <du-an>/checks/packets/<id>.md. Khuôn: $VV/templates/scene.html. Viết đúng file <du-an>/compositions/<id>.html.

Phiên chưa có agent vm-canh (cài skill không qua plugin, hoặc công cụ khác): dùng agent đa năng với model: "sonnet", effort: "medium", dặn đọc $VV/agents/vm-canh.md trước. Công cụ không có agent con thì tự dựng lần lượt theo file đó.

Dưới 3 cảnh thì tự dựng, khỏi giao.

3. Ghép và kiểm tra kỹ thuật

"$PY" "$VV/tools/assemble.py" <du-an>
cd <du-an> && npx -y [email protected] check

Sửa đến khi Check passed, 0 error (lỗi ở file cảnh nào thì sửa file đó). Cảnh báo timeline_track_too_dense của phụ đề là bình thường. Không cần tờ duyệt hay người chấm; người dùng muốn xem trước thì npx -y [email protected] preview --background.

4. Render và ghép âm

"$PY" "$VV/tools/assemble.py" <du-an> --no-audio
cd <du-an> && npx -y [email protected] render --output renders/raw.mp4 > renders/render.log 2>&1
"$PY" "$VV/tools/audio/mix.py" srt <du-an>
"$PY" "$VV/tools/audio/mix.py" final <du-an> --video <du-an>/renders/raw.mp4 --name <slug>-<ddmmyyyy>
"$PY" "$VV/tools/assemble.py" <du-an>

Render chạy nền (khoảng 2 giây máy cho mỗi giây video). --no-audio là bắt buộc: mix.py final ghép mix.wav nguyên vẹn. Lệnh assemble cuối trả index.html về bản có tiếng để xem trước.

5. Kiểm một lần

ffprobe renders/<ten>.mp4: đúng kích thước, có luồng âm thanh, thời lượng bằng total trong words.json. Trích một khung giữa video bằng ffmpeg và nhìn qua. Giao renders/<ten>.mp4 và phude.srt.

Individual skills in this repo

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

Habilidades Relacionadas