Construtor de anúncios sociais
scripts/build_ad.py transforma uma lista de tomadas em dois arquivos finalizados. Ele precisa apenas de ffmpeg e ffprobe (gratuitos). Cada padrão foi conquistado em um loop de iterações pontuadas e revisões A/B cegas:
- Cortes secos. Transições rápidas em preto a cada corte.
- Etiquetas de pratos em uma pastilha sólida na cor da marca. Texto fino sobre comida movimentada é ilegível.
- A linha da marca no frame 0. A maioria das pessoas assiste sem som.
- Um zoom de 4% ao entrar cada tomada de comida.
- Nitidez leve mais uma gradação quente, para que clipes de IA e filmagens de celular pareçam da mesma câmera.
- Nenhum áudio extraído dos clipes, porque modelos de vídeo com IA adicionam sua própria música. O som é ambiente real de sala, se disponível, mais um chiado suave sob a comida.
- Volume a -14 LUFS com um limitador, para que o pico real permaneça abaixo de 0 dB e nada distorça nos alto-falantes do celular.
- Texto dentro da área segura 4:5 (y ≈ 390 em 1920), para que um master seja recortado perfeitamente para o feed.
Lista de tomadas
{
"out": "out/meu-anuncio",
"brand_color": "#A3192B",
"brand_line": "Seu Restaurante · Sua Cidade",
"ambience": "gravacao-sala.mov",
"shots": [
{"file": "clips/noodle-lift.mp4", "start": 3.0, "dur": 2.0, "label": "Dan Dan Noodles"},
{"file": "clips/mapo.mp4", "start": 0.8, "dur": 1.5, "label": "Mapo Tofu"},
{"file": "clips/mapo-scoop.mp4", "start": 3.3, "dur": 1.5},
{"file": "clips/sala-jantar.mp4", "start": 0, "dur": 1.0, "label": "Seu Restaurante", "subline": "Sua Cidade", "food": false}
],
"endcard": {"bg": "#F3ECE0", "logo": "logo.png", "dur": 2.0,
"lines": [{"text": "Sua Cidade", "size": 58, "color": "#8B1E1E"},
{"text": "Peça para viagem ou reserve uma mesa", "size": 56},
{"text": "seusite.com", "size": 84, "color": "#8B1E1E", "bold": true}]}
}
Execute python3 scripts/build_ad.py listatomadas.json. Ele gera out/meu-anuncio-9x16.mp4 e out/meu-anuncio-4x5.mp4.
Campos da tomada:
startedurestão em segundos dentro do clipe."food": falsedesliga o zoom e o chiado (para tomadas de ambiente)."keep_label": truemantém uma etiqueta em duas tomadas sem reanimá-la."subline"adiciona uma linha menor abaixo da etiqueta."label_size"define o tamanho da etiqueta (padrão 78 px). Use\nem uma etiqueta para duas linhas. Etiquetas e linhas do cartão final encolhem automaticamente para caber na largura do quadro.- O texto pode conter aspas, dois pontos, vírgulas e
%. Emojis não serão renderizados nas fontes de etiqueta, portanto, deixe-os de fora. - Se um clipe for mais curto que a
dursolicitada, o construtor usa o que existe e exibe uma nota. Verifique essas notas: um gancho que termina cedo congela no último quadro.
Regras de ritmo de anúncios vencedores (veja os benchmarks de desmontagem de anúncios)
- Duração: uma montagem de comida sem palavras vence em 12-20 s. Anúncios com fala ou história são mais longos.
- Duração da tomada: um corte a cada 1,8 s, com o primeiro corte por volta de 2 s. Durações de tomada em uma grade de 0,5 s permitem que qualquer faixa musical a 120 BPM caia nos cortes.
- Ordem: abra com movimento e uma mão no quadro. Execute a comida sem interrupção. Mantenha qualquer tomada de sala vazia em torno de 1 s, perto do final.
- Final: a melhor tomada de comida, ou um cartão simples com palavras de ação claras.
- Música: adicione-a na biblioteca licenciada da própria plataforma ao fazer o upload. Não incorpore uma música para a qual você não tem direitos.
Criando variantes A/B
Mude uma coisa por variante (a tomada de gancho, a linha de gancho, a duração ou o conjunto de pratos) para que o vencedor se explique. Copie a lista de tomadas, edite um campo, construa novamente.