Communitygithub.com

dung-video

Configure o computador para editar vídeos do YouTube com Claude Code e faça edições básicas com a ferramenta gratuita ffmpeg. Verifique e instale ffmpeg/Python, crie uma pasta de projeto organizada, corte, junte, crie uma versão vertical 9:16 para Shorts, legendas em vietnamita (.srt) com Whisper, equalize o volume, exporte com as configurações recomendadas pelo YouTube e capture um frame para miniatura.

O que é dung-video?

A skill 'dung-video' é uma ferramenta integrada ao Claude Code que capacita criadores de conteúdo iniciantes, especialmente falantes de vietnamita, a editar vídeos do YouTube usando exclusivamente o ffmpeg (gratuito) e Python. Ela automatiza todo o fluxo de trabalho: verifica e instala as dependências (ffmpeg, Python, fast-whisper), organiza o projeto em pastas (raw/, exports/), e executa cortes, junções, criação de versão vertical 9:16 para Shorts, geração de legendas em vietnamita com o Whisper localmente, equalização de volume (loudnorm a -14 LUFS) e exportação com as configurações de upload recomendadas pelo YouTube (H.264, AAC, GOP, etc.). A skill prioriza a segurança dos arquivos originais, nunca os altera ou sobrescreve, e solicita permissão antes de qualquer instalação. É ideal para usuários que desejam configurar rapidamente um ambiente de edição, cortar ou juntar clipes, criar Shorts, adicionar legendas e exportar vídeos prontos para o YouTube, tudo com comandos testados no Windows 10.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thegentleminh/thegentleminh-skills/tree/HEAD/plugins/dung-video/skills/dung-video

Perguntar na sua IA favorita

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

Documentação

Dựng video cơ bản (edição básica de vídeo com ffmpeg)

Você ajuda um criador de YouTube iniciante a editar vídeos no próprio computador com ffmpeg (gratuito). Muitos usuários são vietnamitas: se o usuário escrever em vietnamita, responda em vietnamita claro e falado, mantendo os termos técnicos simples (diga o que um comando faz, não como funciona).

Requisitos e limites

Informe o usuário sobre estes itens antes de instalar qualquer coisa e sempre que uma solicitação precisar de algo que está faltando.

  • Necessário: um plano pago do Claude com Claude Code; ffmpeg (gratuito, instalado apenas com a autorização do usuário). Legendas: Python 3.10+ e o pacote faster-whisper (alguns MBs, baixado uma vez).
  • GPU: não necessária. O Whisper roda na CPU quando não há placa NVIDIA, então legendas para um vídeo longo são lentas.
  • SO testado: Windows 10 (verificação de configuração no aplicativo de desktop Claude, e todos os comandos de corte/junção/vertical/volume/exportação). macOS: ainda não testado.
  • Limites: legendas automáticas erram nomes, números e sotaques regionais, então o usuário deve revisar o arquivo .srt. Apenas edições básicas: sem efeitos, texto animado ou música.
  • O que desliga sem ele: sem Python/faster-whisper, tudo exceto legendas ainda funciona.

Regras (sempre)

  1. Nunca altere ou delete os arquivos originais do usuário. Leia de raw/ (ou onde o arquivo do usuário estiver); escreva todo resultado em exports/ com um novo nome (por exemplo exports/clip-cat.mp4). Nunca sobrescreva um arquivo existente: adicione -n ao ffmpeg ou escolha um novo nome.
  2. Pergunte antes de instalar qualquer coisa. Diga o que é, por que é necessário e o comando exato, então aguarde um sim.
  3. Mostre o comando antes de executá-lo e diga em uma frase o que ele fará. Para qualquer coisa que demore mais de um minuto (vídeos longos, legendas), avise primeiro.
  4. Verifique o arquivo antes de editá-lo com ffprobe (tamanho, taxa de quadros, duração, áudio) para que o comando se ajuste ao arquivo.
  5. Coloque os caminhos de arquivo entre aspas (eles frequentemente contêm espaços e letras vietnamitas). No Windows, prefira barras normais em caminhos de filtro do ffmpeg.
  6. Após cada edição, informe ao usuário onde o novo arquivo está e o que verificar (reproduzi-lo, ouvir o início e o fim).
  7. Não afirme regras do YouTube que você não possa referenciar. Onde esta habilidade cita o YouTube, a fonte está linkada.

1. Verificar o computador

Execute, um de cada vez:

  • ffmpeg -version e ffprobe -version
  • python --version (no macOS tente também python3 --version) - apenas necessário para legendas.

Se o ffmpeg estiver faltando, ofereça-se para instalá-lo (pergunte primeiro):

  • Windows: winget install --id Gyan.FFmpeg -e
  • macOS (Homebrew): brew install ffmpeg (se o brew em si estiver faltando, direcione o usuário para https://brew.sh e pare).

Se o Python estiver faltando e o usuário quiser legendas:

  • Windows: winget install --id Python.Python.3.12 -e
  • macOS: brew install python

Após a instalação, o usuário pode precisar abrir um novo terminal (ou reiniciar o Claude Code) antes que o comando seja encontrado. Verifique novamente com ffmpeg -version.

2. Configurar uma pasta de projeto

Crie, dentro da pasta onde o Claude Code foi aberto:

raw/        originais (copie os vídeos aqui; nunca editados)
exports/    todo arquivo final ou intermediário
CLAUDE.md   anotações sobre o canal, lidas pelo Claude Code no início de cada sessão

Se CLAUDE.md não existir, ofereça-se para criá-lo e faça 4 perguntas curtas ao usuário: tópico do canal, idioma do vídeo, Shorts / vídeos longos / ambos, câmera usual (telefone ou câmera). Escreva um arquivo curto como:

# Meu canal
- Tópico: ...
- Idioma do vídeo: vietnamita
- Faço: vídeos longos e Shorts
- Gravo com: telefone
- Originais estão em raw/, arquivos prontos em exports/

3. Edições básicas

Sempre verifique a entrada primeiro: ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,r_frame_rate:format=duration -of default=nw=1 "raw/input.mp4"

Cortar (cắt một đoạn)

Recodifique para que o corte termine exatamente no tempo solicitado:

ffmpeg -n -ss 00:00:12 -to 00:01:30 -i "raw/input.mp4" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-cat.mp4"

Os tempos podem ser mm:ss ou hh:mm:ss. Várias partes = vários cortes, depois juntar.

Juntar (ghép nhiều clip)

  1. Verifique cada clipe com ffprobe. Se todos tiverem a mesma largura, altura e taxa de quadros, escreva exports/list.txt:
    file '../raw/clip1.mp4'
    file '../raw/clip2.mp4'
    
    então: ffmpeg -n -f concat -safe 0 -i "exports/list.txt" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/ghep.mp4"
  2. Se forem diferentes, redimensione e preencha cada um para o mesmo tamanho e taxa de quadros em uma etapa (exemplo para 2 clipes para 1920x1080, 30 fps):
    ffmpeg -n -i "raw/a.mp4" -i "raw/b.mp4" -filter_complex "[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=30[v0];[1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=30[v1];[0:a]aresample=48000[a0];[1:a]aresample=48000[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/ghep.mp4"
    
    Se um clipe não tiver faixa de áudio, informe o usuário e adicione silêncio para ele (anullsrc) em vez de falhar.

Versão vertical para Shorts (khung dọc)

O YouTube conta um vídeo como Short quando ele é quadrado ou vertical e tem até 3 minutos de duração, enviado com até 1080p (YouTube Help 15424877, 10059070). 1080x1920 (9:16) é o tamanho vertical usual; o YouTube não publica um tamanho de pixel exato.

  • Cortar o centro (bom quando a pessoa está no meio): ffmpeg -n -i "raw/input.mp4" -vf "crop=ih*9/16:ih,scale=1080:1920,setsar=1" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-doc.mp4"
  • Manter o quadro inteiro com fundo desfocado (bom para gravações de tela ou planos abertos): ffmpeg -n -i "raw/input.mp4" -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,boxblur=20:2[bg];[0:v]scale=1080:-2[fg];[bg][fg]overlay=(W-w)/2:(H-h)/2,setsar=1[v]" -map "[v]" -map 0:a? -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-doc.mp4" Pergunte qual o usuário deseja; se o assunto estiver descentralizado, ofereça-se para mover o corte (crop=ih*9/16:ih:X:0, X = borda esquerda em pixels).

Legendas em vietnamita (phụ đề)

Usa o Whisper no próprio computador do usuário (gratuito, nada é enviado). Precisa de Python e do pacote faster-whisper (cerca de algumas centenas de MB com o modelo; pergunte primeiro): python -m pip install faster-whisper Depois execute o script que vem com esta habilidade (caminho: a pasta scripts ao lado deste SKILL.md): python "<pasta da habilidade>/scripts/phu_de.py" "raw/input.mp4" --lang vi --out "exports/input.srt" Ele escreve um arquivo .srt. Avise ao usuário que o Whisper comete erros (nomes, números, sotaques): ele deve abrir o .srt e corrigi-lo antes de usar. A primeira execução baixa o modelo e é lenta. Para incorporar as legendas na imagem (queimar), após o usuário ter corrigido o .srt: ffmpeg -n -i "raw/input.mp4" -vf "subtitles=exports/input.srt:force_style='FontSize=18,Outline=2'" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a copy "exports/input-phude.mp4" (No Windows, mantenha o caminho do .srt relativo e com barras normais; uma letra de unidade como C: deve ser escrita C\: dentro do filtro.) Muitos criadores enviam o .srt para o YouTube Studio em vez de queimá-lo, para que os espectadores possam desligá-lo.

Equalizar volume (chuẩn âm lượng)

O YouTube não publica um alvo de volume; no lado dos espectadores, existe uma configuração "Volume estável" que equaliza partes altas e baixas (YouTube Help 14106294). Uma escolha comum para vídeo online é cerca de -14 LUFS; diga que é uma escolha comum, não uma regra do YouTube. Use o loudnorm do ffmpeg em duas passagens (documentação ffmpeg):

  1. Medir: ffmpeg -hide_banner -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null - Leia input_i, input_tp, input_lra, input_thresh do JSON no final.
  2. Aplicar com esses números: ffmpeg -n -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:linear=true,aresample=48000 -c:v copy -c:a aac -b:a 192k "exports/video-am-luong.mp4" Não use uma única passagem em um vídeo finalizado: ele continua ajustando o volume durante o vídeo.

Exportar para YouTube (xuất file)

Segue as configurações de codificação de upload recomendadas pelo YouTube (YouTube Help 1722171): MP4 com fast start, H.264 High profile, progressivo, 4:2:0, GOP fechado de metade da taxa de quadros, 2 B-frames; áudio AAC-LC a 48 kHz; cor BT.709; mesma taxa de quadros da gravação. Taxas de bits de vídeo recomendadas para SDR: 1080p 8 Mbps (24-30 fps) ou 12 Mbps (48-60 fps); 720p 5 / 7,5 Mbps; 1440p 16 / 24; 4K 35-45 / 53-68. Áudio: estéreo 384 kbps (mono 128 kbps). Exemplo para um vídeo 1080p, 30 fps (GOP 15):

ffmpeg -n -i "exports/video.mp4" -c:v libx264 -profile:v high -pix_fmt yuv420p -b:v 8M -bf 2 -g 15 -flags +cgop -x264-params "colorprim=bt709:transfer=bt709:colormatrix=bt709" -color_range tv -c:a aac -b:a 384k -ar 48000 -movflags +faststart "exports/video-youtube.mp4"

Ajuste -b:v e -g (metade da taxa de quadros) ao vídeo; para 60 fps use -b:v 12M -g 30. Mantenha a taxa de quadros com que o vídeo foi gravado (não adicione -r).

Frame para miniatura (lấy khung hình)

ffmpeg -n -ss 00:00:42 -i "raw/input.mp4" -frames:v 1 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -q:v 2 "exports/khung-0042.jpg" Ofereça 3-4 frames em tempos diferentes para que o usuário possa escolher. As regras de miniatura do YouTube (tamanho, 16:9, JPG/PNG, tamanho do arquivo) estão em YouTube Help 72431.

Se algo der errado

Esta habilidade foi escrita com Claude Code, então pode conter bugs, e cada computador é diferente. Quando uma etapa falhar, ou o usuário disser que a habilidade fez algo errado:

  1. Explique claramente, em vietnamita: o que falhou e porquê, em uma ou duas frases. Sem rastreamento de pilha bruto, a menos que o usuário peça.
  2. Leia esta habilidade e o comando que foi executado. Encontre a causa (a lista abaixo cobre as comuns).
  3. Corrija e execute novamente, escrevendo um novo arquivo em exports/. Nunca toque ou sobrescreva os originais do usuário, mesmo durante a correção.
  4. Se a causa estava nesta própria habilidade (um comando errado ou uma etapa faltando), diga isso e sugira reportá-la para que seja corrigida para todos: https://github.com/thegentleminh/thegentleminh-skills/issues

Falhas comuns

  • 'ffmpeg' não é reconhecido / comando não encontrado: ffmpeg não está instalado ou o terminal foi aberto antes da instalação; abra um novo terminal e verifique novamente.
  • Arquivo ou diretório não encontrado: verifique o caminho e as aspas; liste a pasta para encontrar o nome exato.
  • já existe. Saindo.: o nome de saída já está em uso; escolha um novo nome (nunca sobrescreva).
  • Codificador desconhecido 'libx264': a compilação do ffmpeg não o possui; reinstale a partir dos comandos acima.
  • Áudio fora de sincronia após corte: execute novamente o corte com recodificação (os comandos acima já recodificam).

Individual skills in this repo

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

anh-thanh-video

Turn photos into a video - a beat-synced photo edit (photos change on the beat with flash, pop, shake and snap-and-ease camera moves, like the "2 ảnh / 3 ảnh" templates but with any song the user owns and any number of photos), a gentle photo album (slow push toward faces, soft crossfades, title and captions), or a 2.5D "3D zoom" where near things move more than far things. Faces stay in frame, Vietnamese text done right, 9:16 / 16:9 / 1:1 / 4:5. Use for "biến ảnh thành video", "ghép ảnh thành video", "video ảnh theo nhạc", "photo slideshow", "mẫu capcut nhiều ảnh", "video kỷ niệm", "album ảnh cưới/gia đình", "ảnh 3D", product photo videos.

tach-nguoi

Person cut-out effects on your own clip - big text BEHIND the person (chữ sau lưng người), a freeze-frame character intro with a name card, freeze snap / comic freeze, and clones (phân thân, one take or two). Vietnamese text done right, placed automatically so it stays readable, inside each app's safe area, 9:16 or 16:9. Use when the user wants "text behind me", "chữ sau lưng", "chữ xuyên người", "giới thiệu nhân vật", "dừng hình", "freeze frame", "phân thân", "clone", or other cut-out effects on their own video.

video-giai-thich

Make a Vietnamese animated explainer video (9:16, TikTok / Reels / Shorts) from a topic or a question - "vì sao bầu trời màu xanh?", "lãi kép là gì?" - with a spoken-Vietnamese script, a voice (ElevenLabs, your own recording, or none), on-screen words that appear as they are spoken, and pictures animated in code and timed to the words. Five looks (riso print, chalkboard, newsprint, blueprint, poster). Use for "làm video giải thích", "video kiến thức", "video khoa học", "giải thích bằng hoạt hình", "explainer video in Vietnamese", "vibe coding animation", "video kiểu Vibe知识".

Habilidades Relacionadas