Générateur de publicités sociales
scripts/build_ad.py transforme une liste de plans en deux fichiers finaux. Il nécessite uniquement ffmpeg et ffprobe (gratuits). Chaque valeur par défaut a été validée par une boucle d'itération notée et des tests A/B en aveugle :
- Coupes franches. Les fondus noirs disparaissent à chaque coupe.
- Étiquettes de plats sur un pilule de couleur dans la couleur de la marque. Un texte fin sur une nourriture chargée est illisible.
- La ligne de marque sur l'image 0. La plupart des gens regardent en mode muet.
- Un zoom punch de 4% lorsque chaque plan alimentaire arrive.
- Un léger accentuation et un étalonnage chaud, afin que les clips IA et les séquences de téléphone aient l'air d'une seule caméra.
- Aucun audio extrait des clips, car les modèles vidéo IA ajoutent leur propre musique. Le son est une véritable ambiance de pièce si vous en avez, plus un léger grésillement sous les aliments.
- Volume à -14 LUFS avec un limiteur, pour que le pic réel reste sous 0 dB et que rien ne se déforme sur les haut-parleurs des téléphones.
- Texte dans la zone de sécurité 4:5 (y environ 390 sur 1920), afin qu'un seul master se recadre proprement pour le fil d'actualité.
Liste de plans
{
"out": "out/mon-pub",
"brand_color": "#A3192B",
"brand_line": "Votre Restaurant · Votre Ville",
"ambience": "enregistrement-salle.mov",
"shots": [
{"file": "clips/nouilles-lever.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-cuillere.mp4", "start": 3.3, "dur": 1.5},
{"file": "clips/salle-a-manger.mp4", "start": 0, "dur": 1.0, "label": "Votre Restaurant", "subline": "Votre Ville", "food": false}
],
"endcard": {"bg": "#F3ECE0", "logo": "logo.png", "dur": 2.0,
"lines": [{"text": "Votre Ville", "size": 58, "color": "#8B1E1E"},
{"text": "Commandez à emporter ou réservez une table", "size": 56},
{"text": "votresite.com", "size": 84, "color": "#8B1E1E", "bold": true}]}
}
Exécutez python3 scripts/build_ad.py listedeplans.json. Il écrit out/mon-pub-9x16.mp4 et out/mon-pub-4x5.mp4.
Champs des plans :
startetdursont en secondes dans le clip."food": falsedésactive le zoom punch et le grésillement (pour les plans de salle)."keep_label": trueconserve une étiquette sur deux plans sans la réanimer."subline"ajoute une ligne plus petite sous l'étiquette."label_size"définit la taille de l'étiquette (par défaut 78 px). Mettez\ndans une étiquette pour deux lignes. Les étiquettes et les lignes de carte de fin se réduisent automatiquement pour s'adapter à la largeur du cadre.- Le texte peut contenir des guillemets, des deux-points, des virgules et des
%. Les emoji ne s'afficheront pas dans les polices d'étiquette, alors omettrez-les. - Si un clip est plus court que la
durdemandée, le constructeur utilise ce qui existe et affiche une note. Vérifiez ces notes : un accroche qui se termine tôt se fige sur sa dernière image.
Règles de rythme issues des publicités gagnantes (voir les benchmarks de déconstruction publicitaire)
- Durée : un montage culinaire sans parole gagne entre 12 et 20 s. Les publicités avec parole ou histoire sont plus longues.
- Longueur des plans : une coupe environ toutes les 1,8 s, avec la première coupe vers 2 s. Les longueurs de plan sur une grille de 0,5 s permettent à n'importe quel morceau de musique à 120 BPM de tomber sur les coupes.
- Ordre : commencez par un mouvement avec une main dans le cadre. Enchaînez la nourriture sans interruption. Gardez tout plan de salle vide à environ 1 s, vers la fin.
- Fin : le meilleur plan alimentaire, ou une carte simple avec des mots d'action simples.
- Musique : ajoutez-la dans la bibliothèque sous licence de la plateforme lors du téléchargement. N'intégrez pas une chanson dont vous n'avez pas les droits.
Créer des variantes A/B
Modifiez une seule chose par variante (le plan d'accroche, le texte d'accroche, la durée ou l'ensemble des plats) pour que le gagnant s'explique de lui-même. Copiez la liste de plans, modifiez un champ, reconstruisez.