Créer des shorts avec l'IA depuis une vidéo longue : nos commandes, nos réglages et les pièges de 40 clips rendus en local avec Whisper, un LLM et ffmpeg.
Couverture swanbase du guide pour créer des shorts avec l'IA : notre pipeline local, ses réglages et les pièges de 40 clips

Pour créer des shorts avec l'IA à partir d'une vidéo longue (talk, interview, démo produit, podcast), vous enchaînez cinq opérations. Une transcription mot à mot, le choix des passages par un modèle de langage, une coupe au mot près, un recadrage vertical 9:16 qui suit l'orateur, puis des sous-titres karaoké et l'export. Chaque brique existe en open source : faster-whisper transcrit, un LLM comme Claude choisit, ffmpeg coupe et rend, OpenCV suit le visage, libass grave les sous-titres.

Chez swanbase, on fait tourner ce pipeline en local, sur CPU, depuis juillet 2026. Notre pipeline a rendu 40 shorts à partir de 6 vidéos sources, d'un clip de recrutement d'une minute à des talks de près d'une heure et demie. Ce guide donne nos commandes, nos réglages et les pièges qui nous ont coûté le plus de temps. Côté format, YouTube accepte des Shorts jusqu'à trois minutes depuis le 15 octobre 2024. Nos clips durent 38,9 secondes en valeur médiane.

Les 9 étapes du pipeline pour créer des shorts avec l'IA, de la transcription faster-whisper à l'export, avec l'outil et le réglage de chaque étape

Créer des shorts avec l'IA : le pipeline en 9 étapes

Les outils en ligne cités en première page Google (Vizard, Opus Clip, Vmaker, Braiv) résument la méthode en trois boutons : importer, laisser l'IA travailler, exporter. Derrière ces boutons tournent les mêmes étapes, avec des réglages que vous ne voyez pas.

Les outils ouverts du pipeline

  • faster-whisper transcrit l'audio avec un horodatage par mot. Cette réimplémentation de Whisper annonce une vitesse jusqu'à 4 fois supérieure à openai/whisper à précision égale, avec une quantification int8 utilisable sur CPU.
  • Un LLM (Claude chez nous, tout modèle compatible OpenAI convient) propose les passages.
  • ffmpeg coupe, recadre, grave les sous-titres et masterise le son.
  • OpenCV détecte le visage pour le recadrage, RobustVideoMatting détoure l'orateur.

Tout tourne sans GPU, avec Python 3.10 ou plus et ffmpeg compilé avec libass.

Scripts pour le mécanique, modèle pour le choix

Notre première tentative a calé parce qu'elle mélangeait les deux. Depuis, les scripts font l'extraction, la transcription et le rendu ; le modèle choisit les moments et ne devine jamais un horodatage, il cite la transcription. Si vous travaillez déjà avec Claude Code, l'agent peut tenir ce rôle : il lit la transcription, écrit les idées en JSON et lance les rendus.

Étape 1 : transcrire toute la vidéo mot à mot avec Whisper

On ne ré-encode pas la vidéo longue (6 Go sur un seul cœur, des heures perdues) : on extrait l'audio, et on coupera les segments à la demande.

JOB=runs/$(date +%Y%m%d-%H%M)-montalk
ffmpeg -i talk.mp4 -vn -ac 1 -ar 16000 -c:a pcm_s16le "$JOB/audio.wav"
python3 pipeline/transcribe.py --job "$JOB" --model small --lang fr \
  --prompt "Nom de l'orateur, nom de la société, noms de produits"

Deux passes, small puis medium

Cette passe sert à repérer les moments, avec le modèle small : sur notre machine, small transcrit 60 secondes d'audio en 18 secondes. Une vidéo de 88 minutes nous a demandé environ 40 minutes de CPU. small suffit pour choisir, pas pour afficher : sur un talk, il a entendu « à Cloud, à Chatchi Petit » pour « Claude, ChatGPT ». Chaque passage retenu repasse en medium à l'étape 4.

Trois réglages faster-whisper pour le français

Configuration de la passe de rendu :

model = WhisperModel("medium", device="cpu", compute_type="int8",
                     cpu_threads=len(os.sched_getaffinity(0)))
segments, info = model.transcribe(
    src, language="fr", word_timestamps=True, initial_prompt=prompt,
    beam_size=5, vad_filter=True,
    vad_parameters=dict(threshold=0.2, min_silence_duration_ms=700,
                        speech_pad_ms=400))
  1. Le seuil du VAD à 0,2 au lieu de 0,5. Le filtre de silence par défaut avale les mots peu sonores en bord de pause (liaisons, fins de syllabes). À 0,2, on récupère environ 7 % de mots perdus sur du français face caméra, sans perte de vitesse.
  2. Les threads. Dans un service, cpu_threads=0 suit OMP_NUM_THREADS, souvent fixé à 1. En demandant le nombre réel de cœurs (4 chez nous), la transcription d'un clip de 30 secondes passe de 44 à 34 secondes.
  3. L'amorce des noms. initial_prompt reçoit le nom de l'orateur, de la société et des produits. Sans amorce, Whisper écrase les marques anglaises prononcées en français en un seul mot faux.

Quand un segment finit au milieu d'un mot, Whisper nomme quand même le fragment, avec une durée nulle, à la toute fin. Supprimez ce dernier jeton s'il dure moins de 0,02 seconde et tombe à moins de 0,10 seconde de la fin, sinon le sous-titre affiche un mot absent de l'audio.

Étape 2 : faire proposer des idées à un LLM depuis un digest horodaté

Les outils en ligne parlent de « score de viralité ». Chez nous, le modèle choisit, avec deux garde-fous : il lit une transcription horodatée et il cite des bornes réelles.

Le digest

Le digest réduit la transcription à une ligne horodatée par phrase. Il insère un marqueur ⟂ à chaque silence de 0,6 seconde ou plus : ces marqueurs signalent les points d'entrée et de sortie propres.

python3 pipeline/digest.py --job "$JOB" --gap 0.6

Pour un talk de 53 minutes, le digest compte 2 597 lignes. Celui d'un talk de 65 minutes pesait 41 000 tokens. On l'a confié à un sous-agent Claude Code pour protéger le contexte principal, puis on a vérifié à la main 7 des 12 bornes proposées.

Capture d'un digest réel : transcription horodatée d'un talk de 53 minutes avec les marqueurs de silence et l'erreur « Cloud, à Chatchi Petit » de la passe small

Le prompt d'idéation

Le prompt, avant le digest complet :

Propose the 12 strongest self-contained short-clip ideas for vertical 9:16.
RULES
- Each clip 20-55s (hard max 60, never under 15).
- start/end MUST match real segment boundaries shown in the digest (cite exact M:SS).
- Each clip = a complete thought a stranger follows with zero context,
  strong hook first sentence.
- Spread picks across the whole talk (beginning/middle/end), not clustered.
Return ONLY a JSON array: id, slug, title, angle, start, end, duration_s, why_objective

Passez le prompt par l'entrée standard (claude -p lit stdin) : un digest long dépasse la limite de 128 Ko d'un argument et la commande plante. Pour une série de plus, on réinjecte les idées déjà proposées avec l'ordre de ne pas les reformuler, et on écarte toute idée qui en recouvre une autre à 70 % ou plus. Nos runs ont produit 12, 22 et 32 idées : une série de 12, puis des séries de 10.

Capture d'un fichier ideas.json réel : trois idées de shorts avec titre, bornes, durée et angle proposés par le modèle

Choisir selon l'objectif

Le même talk donne des clips différents selon l'objectif déclaré au départ :

  • Vues : les accroches les plus fortes, les renversements, la chute placée tôt.
  • Ventes : problème, déclic, solution suggérée, avec une carte de fin vers l'offre.
  • Autorité : un point de vue tranché, des moments pédagogiques, des phrases faciles à citer.

Le modèle présente un menu numéroté (accroche, durée, argument) et vous répondez « 1, 4, 7 ». Pour la ligne éditoriale, voyez notre guide du contenu porté par le fondateur.

Étape 3 : couper le segment au mot près

Recaler les bornes sur les mots

Un LLM qui lit un digest donne des secondes rondes, qui tombent souvent au milieu d'un mot : le clip finit sur « cont » au lieu de « contenu ». Avant de couper, on recale les deux bornes sur les horodatages des mots :

  • au début, un mot à cheval sur la borne part entier ou disparaît entier, et on recule de 0,14 seconde dans le silence précédent ;
  • à la fin, le dernier mot reste entier, avec 0,28 seconde de marge, parce que Whisper date les fins de mots trop tôt ;
  • on laisse 0,06 seconde de silence contre le mot voisin.

En français, ajoutez une règle pour les élisions. Whisper découpe « d'arriver » en deux jetons, « d » et « 'arriver ». La paire voyage ensemble à la coupe, sinon le clip se termine sur « c'était l » au lieu de « c'était l'enfer ». Dans nos journaux de rendu, le recalage s'affiche ainsi :

== snap 17.00-70.00 -> 17.04-70.78 ("que…" … "…absolument formidable.") ==

La coupe tient en une commande, -ss avant l'entrée pour la vitesse, ré-encodage pour la précision :

ffmpeg -ss 17.04 -i talk.mp4 -t 53.74 -c:v libx264 -preset veryfast -crf 18 \
  -c:a aac -b:a 192k segment.mp4

Retirer un passage avec cuts.json

Pour supprimer une hésitation après un premier rendu, notez le passage dans cuts.json, en secondes de la vidéo source, et relancez le même rendu :

echo '{"cuts": [[29.83, 30.27], [35.95, 37.05], [45.47, 45.95], [54.0, 57.29]]}' \
  > "$JOB/clips/recrutement/cuts.json"
python3 pipeline/produce.py --job "$JOB" --idea 1 --brand brands/marque/brand.json

Les coordonnées source survivent à tous les re-rendus, puisque chaque rendu recoupe depuis l'original. Sur une vidéo de recrutement, ces quatre coupes ont laissé cinq morceaux, recollés sans ré-encodage. Un fichier vide restaure le short.

Capture des fichiers cuts.json et keeps.json d'une vidéo de recrutement : quatre passages retirés en secondes de la vidéo source, cinq morceaux gardés

Étape 4 : re-transcrire le segment et relire tout le texte

Chaque segment repasse en medium, le bon compromis en français sur CPU : environ 1,9 fois la durée du clip sur un cœur, contre 6 fois pour large-v3, qui vaut rarement l'attente. small entend « le vélamin » pour « levez la main ».

medium se trompe encore. Sur nos lots, il a écrit « on l'affronte » pour « on la floute » et « les GERP et les MDS » pour « les ERP et les MES ». Avec small, on a relevé « 100h du matin » pour « 10h du matin », « Ochamp » pour « Auchan », « Diolingo » pour « Duolingo ». Aucun de ces mots n'est une marque prévue d'avance, donc une table de remplacement des noms propres ne les attrape pas.

Notre règle : relire toute la transcription avant de graver le moindre sous-titre. On confie cette relecture à un LLM, avec un prompt volontairement prudent :

You are a strict, conservative transcription proofreader. Your ONLY job is to fix
words it clearly got WRONG: phonetic mistakes and mangled proper / brand names.
Do NOT paraphrase, do NOT change style.
- PROTECT domain vocabulary: agent, prompt, RAG, LLM, token, pipeline, growth, pitch, SaaS.
- If the transcript reads correctly, return exactly []. Prefer [] over a risky fix.
Return: [{"i": <first index>, "j": <last index>, "text": "<corrected words>"}]

On répartit ensuite la durée de chaque plage sur les mots corrigés, au prorata de leur longueur : le karaoké reste synchronisé même quand le nombre de mots change. Sur un talk, la même phrase est passée par trois états :

La même phrase transcrite par Whisper small, puis medium, puis corrigée par la relecture LLM, avec le fichier corrections.json réel

Quand un passage reste incompréhensible, ne devinez pas. Recoupez la fenêtre audio et re-transcrivez-la seule avec large-v3, avec un initial_prompt qui contient le vocabulaire du domaine :

ffmpeg -ss 41.2 -to 44.0 -i segment.mp4 -ar 16000 -ac 1 win.wav

Une fois les corrections écrites, relancez le rendu avec SKIP_TRANSCRIBE=1 pour économiser les deux minutes de transcription. On a corrigé ainsi « col-col » en « cold call », dernier mot d'un clip sur la prospection.

Étape 5 : resserrer les silences

Les blancs d'un talk filmé ralentissent un short. On les retire avec une politique prudente :

  • seuls les trous de 0,45 seconde ou plus entre deux mots deviennent candidats ;
  • on garde 0,14 seconde de silence autour de chaque mot ;
  • on ignore toute coupe de moins de 0,22 seconde, qui produirait un saut visible ;
  • un trou compte comme silencieux s'il descend 9 dB ou plus sous le niveau de parole du clip.

Un seuil fixe à -30 dB échoue dès que le bruit de salle le dépasse ; notre seuil relatif s'adapte à chaque enregistrement et garde rires et applaudissements.

Deux pièges ffmpeg. Le filtre volumedetect écrit ses mesures au niveau de log info : avec -v error, chaque trou mesure 0,0 dB et vous ne coupez jamais rien. Pour recoller les morceaux, utilisez trim, atrim et concat : le filtre select décale l'audio.

Sur nos 16 clips qui gardent une trace de ce passage, on compte 24 coupes et 10,5 secondes retirées ; sept clips n'ont subi aucune coupe. La prudence coûte un peu de rythme et ne mange aucune syllabe.

Étape 6 : recadrer en 9:16 sur l'orateur

Une source 1080p donne une fenêtre verticale de 608 pixels de large (la hauteur × 9/16), qu'on agrandit en 1080 × 1920. Reste à placer cette fenêtre à chaque image.

La deadzone

On détecte le visage toutes les 0,4 seconde avec un classifieur Haar d'OpenCV. Recentrer à chaque détection fait trembler l'image ; on applique donc une zone morte. Le cadre reste immobile tant que le visage reste à moins de 30 % de la largeur du cadre de son centre, puis glisse juste assez pour le ramener sur la bordure. Une moyenne glissante de 1,6 seconde adoucit ces déplacements.

Sur un clip de 43 secondes, le journal indique deadzone=±182px leash_moves=15 : quinze déplacements, et un cadre fixe le reste du temps.

Le filtre crop n'accepte que des positions entières, et un pixel source vaut 1,78 pixel en sortie : un panoramique lent avance en escalier. On agrandit la source 4 fois en largeur avant le recadrage, ce qui ramène chaque pas à 0,44 pixel. Et comme le lissage décalait le cadre au démarrage, on ancre les 0,8 premières secondes sur le premier visage détecté.

Garder la fréquence d'images de la source

Ce problème nous a coûté six versions. Le cadre saccadait pendant les panoramiques, on corrigeait le calcul du recadrage, et la saccade revenait sur la vidéo suivante. La cause était ailleurs : le rendu forçait -r 30 sur une source à 50 images par seconde. Le passage de 50 à 30 supprime deux images sur cinq selon une cadence irrégulière, invisible sur un orateur immobile, flagrante dès que la caméra glisse.

La correction tient en une règle : la sortie garde la fréquence de la source, divisée par deux seulement au-delà de 60. Vérifiez-la sur chaque fichier :

ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate \
  -of csv=p=0 source.mp4 final.mp4

Les deux valeurs doivent être identiques. Nos clips issus d'une source à 23,976 images par seconde sortent à 2997/125, la même valeur exacte.

Contre la monotonie d'un plan fixe, on ajoute des zooms secs de 13 % sur des débuts de phrase, espacés d'au moins 3,2 secondes. On les superpose par overlay : changer la taille d'un crop en cours de rendu via sendcmd bloque ffmpeg.

Étape 7 : poser les sous-titres karaoké

On grave les sous-titres dans l'image : ils s'affichent sur toutes les plateformes, son coupé compris. Le détail de la relecture et des pièges ASS est dans notre tuto sous-titres IA gratuits. Nos règles, écrites en ASS et rendues par libass :

  1. Trois mots au plus par groupe, et un nouveau groupe après tout silence de plus de 0,7 seconde.
  2. Le mot prononcé change de couleur, jamais de taille. Un mot qui grossit recentre toute la ligne et la fait trembler.
  3. Des événements jointifs : la fin d'un mot égale exactement le début du suivant, sinon une image vide clignote entre deux mots.
  4. Les élisions recollées : tout jeton qui commence par une apostrophe rejoint le précédent, et « l'IA » reste un seul mot.
  5. Les chiffres en couleur d'accent, 8 % plus grands pendant toute la durée du groupe.

Chaque groupe entre en passant de 88 % à 100 % de sa taille en 90 millisecondes, sur son premier mot seulement. Un piège de syntaxe nous a fait tester six variantes de police avant d'en trouver la cause : une virgule de trop dans la ligne Dialogue: affiche une virgule devant chaque sous-titre. Le format exact est Dialogue: <layer>,<start>,<end>,<Style>,0,0,0,,<texte>.

Tableau des réglages du pipeline par étape : modèles Whisper, marges de coupe, seuils de silence, zone morte, sous-titres, illustrations et niveau sonore

Étape 8 : ajouter des illustrations et un titre d'accroche

Des images ancrées sur les mots prononcés

Le style « yapping » d'Instagram et TikTok fait apparaître des cartes d'image autour de l'orateur, la plupart derrière lui. On le reproduit avec trois garde-fous.

Le modèle planifie dans un cadre strict. Les cartes couvrent au plus 60 % de la durée du clip, et ce plafond n'est pas un objectif. Rien dans la première seconde, rien dans les 2,5 dernières. Chaque apparition dure de 1,6 à 3,2 secondes et montre 1 à 4 images, 3 ou 4 étant réservées aux énumérations. Une carte sur cinq au plus passe devant l'orateur.

Chaque carte cite les mots prononcés. Le modèle copie 2 à 8 mots exacts de la transcription ; si on ne les retrouve pas à ce moment du clip, on supprime la carte. Le prompt interdit aussi les métaphores visuelles : pas de clé pour « la clé, c'est », pas d'ampoule pour une idée. Les recherches partent en anglais, langue d'indexation des banques d'images.

Un modèle de vision vérifie. Pour chaque carte, on récupère 6 candidates (Wikidata, Wikimedia Commons, Openverse, Pexels, recherche d'images) et on les montre au modèle sur une planche contact. Le modèle choisit un numéro ou répond « none ». Sur les clips d'une seule vidéo source, il a refusé toutes les candidates 17 fois, surtout des captures d'interface illisibles sur téléphone (« Reddit user profile page », « Stripe revenue dashboard »). Un plan sans image vaut mieux qu'une image fausse.

Pour placer les cartes derrière l'orateur, on détoure sa silhouette avec RobustVideoMatting, en version MobileNetV3 ONNX, qui tourne sur CPU. Faites ce montage sur la vidéo propre, avant les sous-titres et le logo. Sinon le détourage prend le texte incrusté pour du décor, et une carte l'efface.

Deux images extraites de shorts rendus : cartes d'illustration derrière l'orateur détouré, sous-titres karaoké de trois mots avec le mot actif en violet

Trois titres d'accroche

Une fois le clip rendu, le modèle écrit trois titres de 2 à 7 mots, 42 caractères au plus, affichés en haut de l'écran pendant les 4 premières secondes. Chaque titre suit un angle :

  • l'enjeu : ce que le spectateur gagne ou risque ;
  • le fait : un chiffre, un nom ou un fait concret tiré du clip ;
  • la tension : la contradiction résolue par le clip, sans la réponse.

Un titre ne doit jamais répéter les mots entendus au même moment. Le script compare ses mots aux 5 premières secondes de parole et rejette le titre si 60 % de ses mots porteurs y figurent. Le prompt bannit aussi les formules racoleuses comme « le secret » ou « la vérité sur », et le tutoiement. Changer de titre coûte une passe d'incrustation d'une minute environ, sans refaire le rendu :

python3 pipeline/title.py --clip-dir "$JOB/clips/idea3" --select 2

On ne met jamais de carte titre avant le contenu : une carte « LA PROMESSE » testée en ouverture créait un temps mort dans les premières secondes, quand le spectateur hésite encore à rester. La première image montre l'orateur.

Étape 9 : mixer le son et exporter

Notre chaîne audio : 48 kHz, passe-haut à 85 Hz contre les grondements de salle, débruitage léger (plus fort, il rend le son « aquatique »), compresseur doux, puis normalisation à -12 LUFS avec une crête vraie plafonnée à -1 dBTP. On visait -14 LUFS au départ. Le plafond reste sous 0 dBTP parce que le décodage AAC sature les crêtes à 0.

# AOUT_ST = durée du clip - 0,04 s
-af "aresample=48000,highpass=f=85,afftdn=nr=10:nf=-25,\
acompressor=threshold=0.09:ratio=2.8:attack=15:release=250:knee=6:makeup=1.5,\
loudnorm=I=-12:TP=-1.0:LRA=9,afade=t=out:st=${AOUT_ST}:d=0.04"

Supprimez les fondus de fin longs. Notre fondu de 0,6 seconde avalait le dernier mot de chaque clip ; on garde une rampe de 40 millisecondes contre le clic de coupe.

À l'export, fixez un plafond de taille plutôt qu'un débit : sous le plafond, on copie le master tel quel ; au-dessus, un encodage x264 en deux passes remplit exactement le budget. Notre plafond est de 57 Mo, 9 Mo pour Discord, qui a refusé un master de 23 Mo. N'ajoutez pas de -r, vous recréeriez la saccade de l'étape 6.

Le même fichier 1080 × 1920 sert sur Shorts, Reels, TikTok et LinkedIn ; pour LinkedIn, voyez comment transformer vos vues LinkedIn en clients.

Nos chiffres sur 40 shorts rendus à partir de 6 vidéos

Entre juillet et octobre 2026, le pipeline a rendu 40 shorts à partir de 6 vidéos sources : des talks, une interview de CEO, une vidéo de recrutement. Les mesures viennent de nos fichiers de rendu.

Chiffres de 40 shorts rendus à partir de 6 vidéos : durée médiane 38,9 s, 8 minutes par idée, 88 % des cartes derrière l'orateur

Les durées vont de 20,0 à 86,4 secondes, pour une médiane de 38,9. 26 clips tiennent sous 45 secondes et 38 sous 60. Les deux plus longs, à 77 et 86 secondes, viennent de la même vidéo et dépassent la consigne du prompt : la consigne oriente le modèle, la vérification reste à faire à la main.

Une idée sort de bout en bout en 8 minutes avec son titre, sur une machine à un cœur ; un carrousel tiré du même clip sort en parallèle en 40 secondes environ.

Côté illustrations, le modèle a planifié 187 cartes sur 24 clips, dont 164 derrière l'orateur (88 %). Il a demandé 263 images et en a livré 241 : faute d'image validée, les autres emplacements n'ont reçu aucune image. Les silences retirés totalisent 10,5 secondes sur 16 clips, moins d'une seconde par clip.

Prévoyez enfin les redémarrages : notre serveur a redémarré pendant une transcription longue. Depuis, notre file de tâches remet en attente, au démarrage, toute tâche restée « en cours ».

Outil SaaS ou pipeline local : comment choisir

Les éditeurs en ligne qui dominent la recherche « IA qui découpe les vidéos » (Opus Clip, Vizard, Submagic) font gagner du temps au premier essai. Ils suffisent si vous publiez quelques clips par mois et que leurs sous-titres vous conviennent.

Un pipeline local se justifie dans trois cas :

  • vous voulez régler vous-même le modèle de transcription, la relecture, l'ancrage des images et le niveau sonore ;
  • vous produisez en volume à partir de vos talks, interviews ou démos produit, avec votre charte (polices, couleurs, logo) dans un fichier de marque ;
  • vous travaillez déjà avec un agent de code. Les recherches « opus clip alternative open source » renvoient vers des dépôts qui assemblent les mêmes briques (faster-whisper, un LLM, OpenCV, ffmpeg). Avec Claude Code, vous pouvez monter et régler votre version en partant des seuils de ce guide.

Le coût d'un pipeline local : la maintenance des pièges décrits ici. Notre panorama des outils IA pour startup couvre le reste de la stack.

Pour créer des shorts avec l'IA sans y passer vos soirées, retenez l'ordre de priorité de nos runs : relire la transcription, garder la fréquence d'images de la source, couper au mot.

FAQ

Quelle est la durée maximale d'un Short YouTube ?

YouTube accepte des Shorts jusqu'à trois minutes pour les vidéos mises en ligne après le 15 octobre 2024, au format carré ou vertical. Nos shorts durent 38,9 secondes en valeur médiane : notre prompt vise 20 à 55 secondes, avec un plafond à 60.

Quel modèle Whisper choisir pour le français ?

small pour repérer les moments dans la vidéo longue, medium pour les sous-titres. Sur CPU, medium prend environ 1,9 fois la durée du clip, large-v3 environ 6 fois. Même medium exige une relecture complète.

Peut-on créer des shorts avec l'IA gratuitement ?

Oui pour les briques de traitement : faster-whisper, ffmpeg, OpenCV et RobustVideoMatting tournent sur CPU sans licence payante. Les postes payants de notre pipeline : le LLM et, en option, une API de recherche d'images.

Combien de temps faut-il pour produire un short ?

Sur notre machine à un cœur, une idée sort en 8 minutes avec son titre. Ajoutez la transcription initiale de la vidéo longue : environ 0,3 fois sa durée avec small sur notre test d'une minute, environ 40 minutes pour une vidéo de 88 minutes.

Comment faire des reels avec l'IA à partir d'une vidéo horizontale ?

Recadrez en 9:16 autour du visage de l'orateur avec une zone morte, pour que le cadre reste fixe tant qu'il bouge peu, et gardez la fréquence d'images de la source. Le même fichier 1080 × 1920 sert pour Reels, Shorts et TikTok.

Faut-il savoir coder pour monter ce pipeline ?

Il faut savoir lancer des commandes Python et ffmpeg et lire un fichier JSON. Un agent comme Claude Code peut écrire les scripts si vous lui donnez les seuils de ce guide et lui faites vérifier chaque rendu image par image.