Que fait Montage vidéo professionnel ?
Cette compétence se compose de trois parties qui fonctionnent ensemble :
- Jugement éditorial : quoi couper, où et pourquoi, pour que le résultat semble réalisé par une personne ayant du goût et non assemblé par une machine.
- L'éditeur (
vedit) : un petit éditeur de timeline que vous utilisez entièrement en ligne de commande. Les coupes, titres, fondus, effets sonores et préréglages vocaux passent par lui, et la personne peut ouvrir le même projet dans un navigateur. - Outils sonores : indexer une bibliothèque d'effets sonores, la rechercher et placer les sons pour que l'impact tombe sur l'image exacte.
Les chemins ci-dessous sont relatifs au dossier de cette compétence. Les outils nécessitent Python 3.9+ et FFmpeg 5+ (rien d'autre à installer).
Soyez honnête sur ce que vous pouvez et ne pouvez pas faire
- Vous ne pouvez pas entendre l'audio ni regarder la vidéo. Jugez par mesure (transcriptions, détection de scènes et de silence,
scripts/qc_audio.py) et dites-le. Après le rendu, nommez deux ou trois timestamps que l'utilisateur doit vérifier à l'oreille. - N'inventez jamais de noms ou d'identifiants de fichiers sonores. Utilisez uniquement les identifiants retournés par
scripts/sfx_search.py. - Si
scripts/sfx_search.py --statsindique qu'aucun catalogue n'existe, la bibliothèque sonore n'est pas encore configurée. Proposez la configuration unique ci-dessous et attendez un oui avant de télécharger. Si l'utilisateur refuse ou si cela échoue, faites quand même le travail éditorial et orientez-le versreferences/sfx-library-setup.md. Ne téléchargez jamais vous-même une autre bibliothèque sonore.
Principes fondamentaux (version courte)
Texte complet avec exemples : references/editorial-principles.md. Lisez-le avant de couper ou de réviser une coupe.
- L'émotion d'abord. Demandez ce que le spectateur devrait ressentir à chaque instant. S'il le ressent tout au long, le montage fonctionne.
- Hiérarchie de la coupe. Lorsqu'une coupe ne peut pas satisfaire tout, sacrifiez les éléments à partir du bas de cette liste en premier : émotion, histoire, rythme, trace oculaire, planarité, continuité spatiale. Ne sacrifiez jamais un élément supérieur pour un élément inférieur.
- Couper là où une pensée se termine, au moment où un spectateur clignerait des yeux. Un point de coupe doit être un point de clignement possible.
- Faire le plus avec le moins. La suggestion vaut mieux que l'exposé. Moins de choix, mais meilleurs. Ne pas couper est aussi une décision.
- Jugez uniquement ce qui est à l'écran. Ignorez l'effort, le coût et l'intention.
- Détournez l'attention comme un magicien : décidez où va le regard, et faites en sorte que le plan suivant le rencontre.
- Diagnostiquez avant de réparer. Un problème est souvent plus tôt que là où les spectateurs disent l'avoir ressenti.
Flux de travail
| Étape | Ce qu'il faut faire | Référence |
|---|---|---|
| 1. Réception | Confirmer le livrable (plateforme, format, fps, durée) et l'intention en une phrase. | technical-pipeline.md |
| 2. Indexation | Indexer tous les rushs : transcription avec horodatage des mots, type de plan, silences, meilleures prises. Choisir une image représentative par configuration. | editorial-principles.md |
| 3. Assemblage | Construire l'histoire dans l'ordre avec le meilleur matériel. Structure avant polissage. | editorial-principles.md |
| 4. Affinage | Appliquer la hiérarchie de coupe et le timing de clignement. Revoir les rushs rejetés après le premier passage complet. | editorial-principles.md |
| 5. Son | Repérer, rechercher, placer et mixer les SFX. | sfx-placement.md |
| 6. Vérification | Regarder d'une traite en tant que public. Exécuter le script QC. | ci-dessous |
| 7. Livraison | Relier à la pleine qualité, assortir les couleurs/niveaux, exporter d'abord un master. | technical-pipeline.md |
En rendant le travail, indiquez : l'intention pour laquelle vous avez monté, les principaux choix structurels, ce que vous avez retiré et pourquoi, les compromis connus et les alternatives à essayer.
L'éditeur (vedit)
Utilisez-le pour réaliser le montage. Lisez references/editor.md d'abord ; il contient toutes les commandes, le format de projet et une méthode de travail. L'essentiel :
python3 editor/vedit.py new myfilm --size 1920x1080 # un dossier de projet (utilisez `python` sous Windows si python3 est manquant)
python3 editor/vedit.py -p myfilm settings --preset vertical # canevas pour la destination (Reels/TikTok/Shorts) ; aussi --lufs -14
python3 editor/vedit.py -p myfilm analyze clip.mp4 # silences et changements de scène, pour choisir les coupes
python3 editor/vedit.py -p myfilm import clip.mp4 # imprime un identifiant d'actif tel que a1
python3 editor/vedit.py -p myfilm add a1 --in 12.5 --dur 8 # mettre 8 s de celui-ci sur la timeline
python3 editor/vedit.py -p myfilm grade c1 --look cinematic # couleur ; aussi --brightness --contrast --saturation --temperature --lut FILE
python3 editor/vedit.py -p myfilm key c1 scale --at 0 --value 1; python3 editor/vedit.py -p myfilm key c1 scale --at 8 --value 1.15 --ease inout # ralentir le zoom avant
python3 editor/vedit.py -p myfilm transition c1 c2 --type dissolve --dur 0.5
python3 editor/vedit.py -p myfilm key c1 speed --at 0 --value 1 # rampe de vitesse : ajouter plus d'images clés sur `speed` (le son du clip lui-même est coupé) ; aussi : reverse c1, freeze c1 --at 4 --dur 2
python3 editor/vedit.py -p myfilm tracker add c1 --at 4 --x 0.6 --y 0.3 # suivre un point ; puis : mask c1 --effect blur, follow c1 m1 t1 (flouter un visage) ou attach c2 t1 (un titre le suit)
python3 editor/vedit.py -p myfilm stabilize c1 # lisser le bougé de caméra (nécessite FFmpeg avec libvidstab)
python3 editor/vedit.py -p myfilm captions subtitles.srt # un clip de texte par sous-titre
python3 editor/vedit.py -p myfilm sfx a3f9c012 --at 8.0 # identifiant sonore de scripts/sfx_search.py ; l'impact tombe à 8.0 s
python3 editor/vedit.py -p myfilm set c1 preset="voice enhancer"
python3 editor/vedit.py -p myfilm check # corriger chaque erreur signalée
python3 editor/vedit.py -p myfilm render --preview # rapide ; puis `frame --at T` et regardez le PNG
python3 editor/vedit.py -p myfilm measure --at 4 # valeurs de luminosité/couleur, pour juger l'exposition et l'étalonnage
python3 editor/vedit.py -p myfilm serve # laisser la personne ouvrir et ajuster dans le navigateur
- Vous avez un contrôle total : chaque commande imprime du JSON, les erreurs sont simples,
batchapplique plusieurs modifications en un seul changement, etundoannule la dernière. Les images clés peuvent animer le zoom, la position, la rotation, l'opacité, la couleur, le volume et la vitesse ;editor.mdliste le reste (masques, tracking, incrustation verte, recadrage, retournement, muet et masquage de piste, préréglages de canevas). - Regardez l'image avec
frame --at Tau lieu de deviner, jugez la couleur avecmeasure, et jugez le son par mesure, pas en prétendant qu'il sonne bien. - Utilisez la retenue : un look subtil, un style de transition, quelques mouvements lents. Si supprimer un effet ne perd rien, supprimez-le.
- Le tracking et les masques sont mesurés, pas vus : après
tracker add, vérifiezfoundet regardez les images avecframe --at T. Le tracking convient aux objets rigides et texturés de taille stable ; il perd les cibles qui tournent ou se cachent. - La personne peut modifier la timeline dans le navigateur pendant que vous travaillez. Exécutez
showavant de modifier après qu'elle l'a dit. - Les préréglages vocaux (
phone call,deeper voice,robot voice, ...) proviennent du fichier.prfpsetde Premiere inclus et peuvent être extraits de tout autre avecpresets import FILE.prfpset. Ils se rapprochent des effets de Premiere ; voirreferences/voice-presets.md. - Si aucune bibliothèque sonore n'est configurée,
sfxéchoue avec un message clair ; proposez la configuration SFX ci-dessous.
Boîte à outils SFX
Tous les scripts impriment --help. Ils n'utilisent que la bibliothèque standard et FFmpeg.
Configuration unique. La compétence n'est livrée avec aucun audio, car la licence des sons interdit leur redistribution. La bibliothèque par défaut est le pack gratuit Sonniss GDC 2026 Game Audio Bundle, téléchargé depuis le serveur de Sonniss. Avant d'exécuter cela, indiquez à l'utilisateur la taille (partie 1 : 1,3 Go avec 82 sons ; les 5 parties : 7,5 Go avec 347 sons) et la licence en une ligne (gratuit pour les projets médias personnels et commerciaux, pas d'attribution ; pas de revente ou redistribution des sons ; pas d'entraînement IA), et obtenez son oui :
python3 scripts/setup_library.py --accept-license # partie 1
python3 scripts/setup_library.py --accept-license --parts all # tout
Cela enregistre les zip dans library/ à l'intérieur de cette compétence, reprend les téléchargements interrompus, réutilise les parties déjà présentes, puis construit le catalogue. Sous Windows, utilisez python si python3 n'est pas trouvé.
Pour utiliser les propres sons de l'utilisateur à la place (ou en plus), indexez-les directement (voir references/sfx-library-setup.md) :
python3 scripts/build_catalog.py /chemin/vers/sons.zip # ou un dossier, ou un dossier de zip
Dans les deux cas, le résultat est un catalogue textuel à ~/.pro-video-editing/catalog.json. Il ne contient pas d'audio.
Par projet :
python3 scripts/sfx_search.py --stats # ce qui est disponible
python3 scripts/sfx_search.py "whoosh aérien rapide" --max-dur 1.5 --limit 8
python3 scripts/sfx_search.py "clic de bouton" --exclude ID1,ID2 # éviter de répéter une prise
python3 scripts/render_mix.py entree.mp4 cues.json --check # vérifier la feuille de repérage
python3 scripts/render_mix.py entree.mp4 cues.json -o sortie.mp4 # rendu
python3 scripts/render_mix.py entree.mp4 cues.json --sfx-only fx.wav # piste SFX pour une DAW ou un coloriste
python3 scripts/qc_audio.py sortie.mp4 --target -14 # vérification de la sonie et du crête vrai
Colonnes de sortie de la recherche : id, durée, catégorie, peak@ (où le son frappe), tags, nom de fichier. Utilisez peak@ pour comprendre ce qui s'alignera avec la coupe.
Feuille de repérage
{
"default_gain_db": -9,
"duck": true,
"humanize": true,
"cues": [
{"id": "a3f9c012", "at": 2.50, "sync": "peak", "note": "whoosh dans le carton titre"},
{"id": "19be4d70", "at": 2.50, "gain_db": -12, "note": "couche douce en dessous"}
]
}
atest le temps vidéo où le point de synchronisation du son doit atterrir.at_frameplace par numéro d'image.sync:peak(par défaut) place le moment le plus fort,onsetplace l'attaque,startplace le premier échantillon. L'outil calcule le temps de début pour vous, donc l'impact est précis à l'image près même si le son commence avant la coupe.- Optionnel par repère :
gain_db,fade_in,fade_out,trim_start,duration,pitch_semitones(dans les 12),note. duckréduit les SFX sous l'audio original (dialogue).humanizeajoute de petites variations de gain et de hauteur lorsque le même son se répète.- Mettez la raison dans
note. Cela rend la feuille révisable et aide pour la prochaine édition.
--check signale les identifiants inconnus, les temps en dehors de la vidéo, les prises répétées, les couches empilées et les feuilles trop chargées. Corrigez tout ce qu'il signale avant le rendu.
Règles SFX
Guide complet avec une méthode de repérage : references/sfx-placement.md.
- Repérez avec une raison. Chaque son doit servir l'émotion ou l'histoire. Si le supprimer ne perd rien, supprimez-le.
- Placez l'impact sur la coupe ou le mouvement, pas à proximité. Utilisez
sync: peakpour les whooshs et les impacts. - Superposez légèrement : au maximum trois sons à un moment donné (par exemple impact, sub, queue).
- Variez les prises. N'utilisez jamais le même son deux fois de suite ; utilisez
--excludelors de la prochaine recherche. - Laissez du silence. Un vide avant un impact rend l'impact plus fort.
- Gardez la parole claire. Laissez
duckactivé quand il y a du dialogue, et gardez le gain par défaut à -9 dB ou moins sous la parole. - Densité : environ 12 repères pour 10 secondes est déjà très chargé. Un contenu calme en nécessite bien moins.
Liste de vérification
Avant de dire qu'une coupe est terminée :
- Chaque coupe satisfait la hiérarchie, avec l'émotion en premier
- Aucune coupe n'existe uniquement pour ajouter du rythme ; les arrêts sont délibérés
- Les points de coupe se situent sur des frontières de pensée, pas au milieu d'une pensée
-
render_mix.py --checkne signale aucune erreur, et les avertissements sont résolus ou justifiés -
qc_audio.pymontre un pic vrai à -1 dBTP ou moins et une sonie proche de la cible - La durée, la taille de l'image, la fréquence d'images et la disposition audio de la sortie correspondent au cahier des charges
- L'utilisateur a reçu des timestamps spécifiques à écouter
Index des références
references/editorial-principles.md: la philosophie, la hiérarchie de coupe, le timing de clignement, le dialogue, le rythme, le diagnostic des problèmesreferences/editor.md: les commandes de l'éditeur, les images clés, l'étalonnage, les transitions, les sous-titres, les paramètres de livraison, le format de projet, la méthode de travail pour une IA, l'éditeur navigateurreferences/voice-presets.md: préréglages vocaux, extraction des fichiers.prfpsetde Premiere, limites de précisionreferences/sfx-placement.md: méthode de repérage, guide son par objectif, niveaux, superposition, duckingreferences/sfx-library-setup.md: obtenir une bibliothèque, construire le catalogue, organiser les tags, licencesreferences/technical-pipeline.md: organisation des médias, proxies, couleur, codecs, échange, export