Communitygithub.com

PrankMedic/video-phu-hinh

Adiciona sobreposições visuais, b-rolls gráficos conforme a fala para vídeos com narrador, miniaturização do rosto, contadores, listas, comparações, etapas, gráficos de barras e legendas karaoke no Remotion.

O que é video-phu-hinh?

Esta skill automatiza a pós-produção de vídeos com narrador (talking head), transformando-os em um formato visual dinâmico no estilo 9:16 vertical. Ela reduz o quadro do rosto do apresentador para um canto e preenche o restante da tela com elementos gráficos sincronizados com a fala, como contadores, listas, comparações, etapas e gráficos de barras, além de legendas no estilo karaoke. A skill é ideal para criadores de conteúdo educacional, tutoriais ou vídeos de análise que desejam manter a presença do narrador enquanto priorizam a informação visual. Ela opera sobre a plataforma Remotion, gerando um arquivo JSON de configuração que descreve cada batida visual (posição do quadro, tipo e conteúdo gráfico). O processo envolve preparação de áudio com detecção de gaguejos, normalização de vídeo para o canvas 9:16, conversão de timestamps de palavras em milissegundos e renderização com validações rigorosas, incluindo verificação de sobreposição facial, duração dos takes e conformidade com os padrões de loudness.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/PrankMedic/NoleXSapien/tree/main/skills/video-phu-hinh

Perguntar na sua IA favorita

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

Documentação

Vídeo sobreposição conforme a fala

Use quando precisar manter a voz e a presença do narrador, mas priorizar quadro reduzido, texto e gráficos. Leia CLAUDE.md, revise o conteúdo e as fontes, proponha o formato e aguarde a escolha, se ainda não escolhido. Não processe mídia com dados de identificação; interrompa essa parte para que o responsável os remova antes. Não publique, envie, faça commit ou push por conta própria.

  1. Execute python3 scripts/chuan_bi_giong.py <video> Output/video/<slug>. Leia o relatório e ouça a voz original; é obrigatório detectar gaguejos usando scripts/tim_loi_noi.py antes de cortar (o script de preparação de voz já chamou, pode ser executado separadamente ao corrigir). Não deduza todos os gaguejos a partir de legendas já simplificadas.
  2. Normalize o vídeo fonte para o canvas vertical 9:16 usando letterbox, sem cortar o rosto. Meça o rosto neste mesmo canvas: {x,y,radius} normalizado 0–1, raio em relação à largura, padrão 0.14. Fontes com proporção diferente devem ser convertidas antes; verifique novamente se o rosto mudou de posição. Não há rastreamento facial automático; use uma região que cubra todas as posições do rosto ou divida a composição quando o layout mudar. Use apenas vídeos que já tiveram os dados de identificação removidos de acordo com as regras do projeto.
  3. Converta words {w,s,e} em {text,startMs,endMs}, sendo ms = segundos × 1000. Mantenha as words originais junto com os segments originais; o áudio do vídeo é cortado junto com os segments. Não use voz pré-cortada simultaneamente com as words originais. A mídia deve estar em public, com caminhos relativos. audio pode ficar vazio porque PhuHinh usa a voz dentro do vídeo; music e musicVolume são opcionais, a música não faz parte da camada de vídeo com estiramento.
  4. Crie beats {atPhrase,nth?,untilPhrase,untilNth?,mode,content,source?,box?}. A frase final termina em endMs da última palavra; nth conta a partir de 0. Não sobreponha beats, os marcos devem ser crescentes. Intervalos sem beat voltam automaticamente para card; é recomendado cobrir toda a fala com beats para verificar o ritmo claramente. full: narrador ocupa todo o quadro, contain, sem corte no rosto, no máximo 8 segundos mesmo com vários beats full consecutivos; card: narrador pequeno no canto superior, gráficos abaixo; over: gráficos transparentes, caixa evitando o rosto mesmo durante transições de quadro; cover: cobre totalmente com fundo e gráficos, mas o áudio do vídeo continua. A transição entre quadros leva 650 ms.
  5. O content tem kind igual a word, number, list, compare, steps, bars e text. number adiciona value e spoken, que é a sequência numérica falada, ex.: value 12, spoken “doze”. spokenNth opcional conta as ocorrências da sequência numérica dentro do mesmo beat, a partir de 0; o marco nth do beat ainda segue toda a fala cortada. O valor sobe e só é totalmente alcançado quando a sequência numérica termina de ser falada. Tipos com múltiplos itens usam items:[{text,atPhrase,nth?,value?,spoken?}], cada item só aparece quando é falado; bars usa value, compare divide colunas, steps tem setas. spoken é um mapeamento manual que requer verificação humana para confirmar o significado com o value; o script não entende o significado semântico de números escritos por extenso. Não coloque números precocemente em títulos ou rótulos de itens; deixe que o value se encarregue de exibir o número. Mantenha no máximo alguns itens curtos para não transbordar a área. O texto principal tem 72 px ou mais.
  6. Box {x,y,width,height} é calculado em px 1080×1920, com limites x 64–1016, y 100–1260; o padrão card em y620, over y900. Legenda em y1330 dentro da área 1300–1520. Fontes abaixo da legenda devem ter autor/organização, ano, link e data de acesso para informações médicas; dados não verificados devem ser marcados como aguardando aprovação. Use aiVoice:true para etiqueta de voz IA, se necessário.
  7. Escreva um JSON contendo as props, execute python3 scripts/kiem_phu_hinh.py <du-lieu.json>; corrija marcos não encontrados, full muito longo, over cobrindo o rosto, números que não estão na fala. Código de saída 0 significa dados válidos, 1 erro de validação, 2 erro de leitura. A ferramenta de verificação facial opera em quadro estável e amostra a 30 fps durante 650 ms após cada transição de quadro; o componente verifica quadro a quadro durante a renderização. Abra um quadro real para verificar movimento facial e texto transbordando. Depois crie o arquivo TS no studio/data exportando default {id:'VideoPhu',format:'PhuHinh',props:...}. Veja mau-moi.ts; MauPhuHinh é um modelo mudo com vídeo placeholder, não é vídeo aprovado.
  8. Execute cd remotion && npx --no-install tsc --noEmit; renderize um rascunho com npx --no-install remotion render src/index.ts VideoPhu out/nhap.mp4 --codec h264. Verifique todos os tipos de gráficos, quadros de transição entre modos, início/fim de cada segmento, ouça a voz atravessando covers, verifique se os números são exibidos corretamente na hora certa, se as listas não aparecem antes da fala. Execute a detecção de fala novamente na versão final, se necessário, e ouça os pontos de junção.
  9. Normalize o áudio para −14 LUFS usando loudnorm em duas passagens, medindo true peak −1.5 dBTP, conforme a seção de normalização de áudio em video-thuy-mac/SKILL.md; sempre grave em um arquivo diferente e meça a versão final novamente. Entregue a versão de visualização, fontes, dados e partes não verificadas. Verifique scripts e imagens não substituem a aprovação médica/publicitária do responsável antes da publicação.

Habilidades Relacionadas