Vídeo promocional de música
Faça um vídeo promocional vertical (padrão 1080×1920) que pareça uma peça contínua e premium. Um logo abre o vídeo. Páginas de app, capas e players fluem uns nos outros através de movimentos suaves de câmera. Músicas tocam sob a imagem no ritmo da batida. Um cartão final correspondente fecha o vídeo, para que ele faça loop.
Esta skill empacota um fluxo de trabalho refinado ao longo de várias rodadas de feedback real de usuários. As regras em references/direction.md são esse feedback, transformado em princípios. Leia-as antes de projetar qualquer coisa: elas são a diferença entre "legal" e "era isso que eu queria".
0. Coleta inicial: peça referências primeiro
Antes de planejar ou construir qualquer coisa, peça ao usuário de 3 a 4 referências que devem moldar a saída. As referências decidem o visual, então o vídeo depende delas. Pergunte em uma mensagem amigável, junto com a lista de verificação de ativos abaixo, para que o usuário responda uma vez.
Pergunte por:
- 3–4 referências: vídeos (melhor: eles carregam movimento e ritmo), reels, imagens ou links para eles. Para cada um, pergunte o que eles gostam: o visual, a cor, a tipografia, as transições, o ritmo, o som. Se o usuário oferecer apenas links que você não consegue abrir (Instagram, Pinterest, TikTok), peça o arquivo baixado ou capturas de tela. Nunca afirme ter assistido algo que você não conseguiu abrir.
- Se eles enviarem menos de 3, pergunte mais uma vez e explique que mais referências dão um resultado mais próximo. Se ainda assim não conseguirem, prossiga com o que tem e diga quais escolhas você fez por conta própria.
- Se eles enviarem mais de 4, pergunte quais 4 são mais importantes, ou pondere as primeiras.
Lista de verificação de ativos (pergunte na mesma mensagem e aceite "você escolhe" para qualquer item):
- Logo (PNG com transparência é melhor).
- Capturas de tela do app (tela inicial, biblioteca, tocando agora), que mostram o que é real.
- Músicas: os arquivos de áudio mais o horário de início e fim do refrão para cada uma (os usuários conhecem o refrão; não adivinhe pela letra).
- Pacote de efeitos sonoros (opcional).
- Arquivos oficiais de videoclipe (opcional, para clipes sincronizados).
- Formato, duração alvo, taxa de quadros (padrão 1080×1920, 60 fps) e onde será postado.
Em seguida, estude as referências apropriadamente (veja references/references-analysis.md): folhas de contato e sequências densas de quadros para movimento. Escreva um briefing de referências curto: paleta, papéis da tipografia, ritmo (cortes por compasso), tipos de transição, textura (grão, bloom, papel ou nenhum), como texto e imagens interagem e o caráter do som. Mostre o briefing ao usuário em algumas linhas com seu plano, depois construa sem esperar por mais aprovação, a menos que algo o bloqueie.
Quando as referências entrarem em conflito com uma regra em references/direction.md, siga primeiro as palavras explícitas do usuário, depois as referências, depois os padrões.
1. Verifique o ambiente
Você precisa de ffmpeg e Python com numpy, pillow, opencv-python-headless e scipy (crie um venv na pasta de trabalho). As fontes são fontes do sistema; verifique se cada um dos três papéis de tipo é resolvido. Se uma capacidade essencial estiver faltando, diga exatamente o que e pare a etapa dependente; não apresente um plano como um vídeo finalizado.
2. Obtenha e verifique os ativos
- Arte da capa: nunca use cortes de capturas de tela como capa visível. Eles são muito suaves, e os usuários percebem. Encontre a arte oficial online com
scripts/find_cover.py, que pesquisa Apple/iTunes (até 3000 px) e JioSaavn e corresponde cada candidato ao corte da captura de tela. Aceite apenas correspondências de cerca de 0,98 ou superior, e registre a proveniência (URL de origem, título, artista, pontuação de correspondência) emcovers/provenance.json. Se nada corresponder (por exemplo, mixes ou rádios gerados pelo Spotify), redesenhe uma versão vetorial nítida quando for um design simples (Músicas Curtidas) ou deixe esse item de fora. - Músicas: copie-as, depois execute
scripts/beat_grid.pyem cada uma: andamento, tempos fortes, energia por meio segundo e o maior salto de energia (o drop). Peça ao usuário os horários do refrão em vez de inferi-los da transcrição. - Videoclipe:
scripts/av_sync.pyfornece o deslocamento entre o áudio do vídeo e o arquivo de música, para que a imagem e a música permaneçam em sincronia labial.scripts/shot_cuts.pyencontra os próprios cortes do vídeo, para que o corte possa seguir o assunto por cena. - Efeitos sonoros: caracterize cada arquivo (duração, posição de pico, brilho), atribua um papel (toque/clique, whoosh, riser, pop, chim, zumbido, especial) e anote o deslocamento de pico de cada arquivo para que os cues caiam no pico.
3. Planeje a linha do tempo na grade de batidas
- Trate o tempo do filme como tempo da música enquanto uma música toca (filme t = música t + deslocamento). Coloque as mudanças de cena nos tempos fortes, e os pops e passos de stop-motion nas batidas ou colcheias.
- Arco típico, adapte ao briefing: abertura do logo → página da biblioteca ou app → carrossel de álbuns → tocando agora (barra de progresso ao vivo) → momento do drop (grandes palavras cinéticas) → parede de capas → transição para a próxima música com sua própria animação de capa → seu player → seção opcional de videoclipe → final de partículas para o logo → cartão final combinando com a abertura.
- Cada mudança entre cenas deve ser um movimento contínuo: um zoom em um elemento que se torna a próxima cena, um corte combinado (a mesma imagem no mesmo lugar em ambos os lados) ou um voo através de uma área escura. Liste o mecanismo de cada transição no plano.
- Regras de texto: nenhuma palavra jamais fica em cima da obra de arte, e nenhuma palavra é deixada escondida atrás de um logo ou capa. As palavras deslizam para fora da borda de um objeto ou sobem através de uma linha de máscara e depois ficam totalmente visíveis. Os títulos que ficam acima do conteúdo rolante pertencem a esse conteúdo (coordenadas do mundo), portanto os blocos nunca os cobrem.
Veja references/direction.md para o conjunto completo de regras visuais e por que cada uma existe.
4. Construa
Comece pelo exemplo funcional em assets/reference_project/: render.py (mecanismo de imagem mais uma linha do tempo completa de 58 s), audio.py (mix) e style.json. Ele já contém blocos de construção testados:
- composição com pré-filtragem de desfoque, sombras suaves e recorte;
- grão de filme e bloom por quadro;
- classe
Textde três papéis (sem serifa, serifa itálico, mono) com entradas suavizadas, entradas em stop-motion e saídas à deriva; - revelações de palavras com linha de máscara e revelações deslizantes de trás;
- ondas de toque com efeito de pressão; uma interface de player vetorial com barra de progresso ao vivo e toque de coração; o cartão final de anel repetido;
- o sistema de partículas de diamante (monte uma peça de capa peça por peça; levante-a para o logo);
- reprodução de videoclipe com mesclagem de quadros e cortes por cena;
- as ferramentas de varredura de filtro, envelope e cue de SFX.
Mantenha o mecanismo; substitua a linha do tempo e o conteúdo pelo novo projeto. Leia references/engine-notes.md para a arquitetura e as armadilhas já resolvidas.
Trabalhe nesta ordem:
- Testes de texto e layout: renderize 10 a 20 imagens fixas ao longo da linha do tempo, faça uma folha de contato, olhe para ela e corrija problemas de layout antes de qualquer renderização longa.
- O mix (
audio.py): é rápido, então meça os níveis por segundo e em torno de cada transição (references/audio.md). - Uma renderização completa em segundo plano (60 fps leva cerca de 10 minutos para 60 s em um laptop; 120 fps cerca de 25). Não faça polling; aguarde o aviso de conclusão.
5. QA da exportação real
Execute scripts/motion_qa.py no MP4 final. Ele relata saltos de quadro a quadro, passos de stop-motion, quadros congelados e quadros anormalmente escuros. Para cada pico que não seja um passo intencional ou um corte de videoclipe, extraia os quadros consecutivos ao redor dele e observe-os. Em seguida, verifique:
- duração, fps, contagem de quadros e decodificação completa;
- volume (-11 a -14 LUFS integrado, pico em cerca de -1 dBFS, sem distorção);
- níveis por segundo e níveis de transição;
- ambos os lados de cada transição;
- legibilidade do texto no tamanho de um telefone.
Relate honestamente: você pode medir áudio, mas não pode ouvir. Diga isso e peça ao usuário para verificar de ouvido.
Para pequenas correções, renderize novamente apenas o intervalo de tempo afetado (render.py --range a,b) e emende-o na renderização mestre com cortes exatos de quadro. Remuxe e verifique novamente as emendas. Veja references/qa-and-delivery.md.
6. Entregue cedo e itere
- Envie um MP4 reproduzível assim que uma versão estiver completa, mesmo no meio de uma alteração mais longa. Os usuários costumam perguntar "está pronto?" e querem assistir enquanto você continua.
- A cada rodada: releia as palavras do usuário com cuidado. Eles costumam digitar rapidamente e parar no meio da frase. Aplique exatamente o que pediram, mantenha todo o resto idêntico quadro a quadro e diga o que mudou. Se uma mensagem for cortada, faça a parte clara e pergunte pelo resto.
- Mantenha versões anteriores (
archive_vN/) e nomeie os entregáveis com a versão e fps.
Entregáveis a cada rodada:
- MP4 principal (60 fps para postagem; 120 fps apenas mediante solicitação, e explique que as plataformas sociais reproduzem no máximo a 60);
- o mesmo vídeo apenas com efeitos sonoros, sem músicas (para postagem com música licenciada pela plataforma);
- um zip do projeto editável: código, configurações de estilo, capas com proveniência, quadros usados do vídeo, SFX usados, os WAVs do mix e um README com a linha do tempo;
- uma nota curta sobre o que mudou, o que foi verificado e o que não foi, além de um lembrete de que as músicas, capas e clipes de vídeo têm direitos autorais: tudo bem para edits pessoais, mas as plataformas podem silenciar ou reivindicar postagens públicas.
Arquivos de referência
references/direction.md: as regras visuais e editoriais aprendidas com o feedback do usuário. Leia antes de projetar.references/references-analysis.md: como estudar as 3-4 referências do usuário e escrever o briefing.references/audio.md: envelopes de música (baixo para alto, alto para baixo), transições suaves combinadas com batidas, posicionamento de SFX, volume.references/engine-notes.md: arquitetura do mecanismo de referência e armadilhas já resolvidas.references/qa-and-delivery.md: verificações, re-renderização parcial e emenda, codificação, empacotamento.scripts/:beat_grid.py,find_cover.py,av_sync.py,shot_cuts.py,motion_qa.py(execute cada um com-hpara uso).assets/reference_project/: o exemplo funcional completo (promo do Spotify, "Raw Rich Rare" com "National Treasures" do Drake).