Retour au blog

Comment incruster des sous-titres dans une vidéo (sans jamais rien envoyer en ligne)

Incrustez des sous-titres dans une vidéo sur votre machine : quatre méthodes comparées et les commandes FFmpeg qui évitent la perte de qualité au réencodage.

11 septembre 2026
Sablate Team

Incruster des sous-titres dans une vidéo, c’est dessiner le texte dans l’image et réencoder, si bien que les sous-titres voyagent avec le fichier sous forme de pixels. Il vous faut cela pour TikTok, Reels et Shorts, qui n’acceptent aucun fichier de sous-titres, et chaque fois que les sous-titres font partie du design plutôt que d’une option d’accessibilité.

Vous n’avez besoin de rien envoyer pour le faire. FFmpeg le fait en une seule commande, HandBrake et Subtitle Edit le font depuis une fenêtre, et une application de sous-titrage pour ordinateur comme Sablate crée aussi les sous-titres au préalable. Tous tournent sur votre propre ordinateur, sans plafond de taille de fichier et sans attente d’envoi.

La suite couvre les cas où un outil en ligne reste le bon choix, les quatre façons d’incruster des sous-titres, comment le faire sans ligne de commande, ce qui change avec les longs enregistrements, et les deux choses qui abîment réellement la qualité.

Outil en ligne ou hors ligne : lequel choisir ?

La plupart des recherches sur ce sujet mènent d’abord à un éditeur dans le navigateur, et pour un clip court, c’est très bien. La différence apparaît avec la durée, la taille du fichier et la confidentialité.

Éditeur en ligneHors ligne (FFmpeg, HandBrake, application de bureau)
Votre vidéo est envoyéeOui, le fichier entierNon
Taille de fichierPlafonnée selon la formuleLimitée seulement par votre disque
Longs enregistrementsLe temps d’envoi grandit avec la duréeSeul l’encodage prend du temps
Séquences confidentiellesQuittent votre machineRestent dessus
Installation nécessaireNonOui
Crée aussi les sous-titresEn généralOui pour les applications de bureau, non pour FFmpeg et HandBrake

Les plafonds sont bien réels, et ils sont bas sur les formules gratuites. La politique de stockage de Kapwing, par exemple, autorise 250 Mo par fichier sur sa formule gratuite et 6 Go sur les formules payantes. À un débit 1080p typique d’environ 8 Mbit/s, 250 Mo contiennent un peu plus de quatre minutes de vidéo.

Utilisez donc un éditeur en ligne quand le clip est court, que rien n’y est confidentiel et que vous ne pouvez pas installer de logiciel sur la machine que vous avez sous la main. Pour tout ce qui dure plus de quelques minutes, pour des images de clients ou internes, et pour un lot de fichiers, incrustez en local. Le comparatif des générateurs de sous-titres hors ligne présente les applications de bureau qui créent aussi les sous-titres.

Quand l’incrustation est le bon choix

Incrusté (hardsub)Fichier ou piste de sous-titres (softsub)
Le spectateur peut le désactiverNonOui
Fonctionne sur TikTok, Reels, ShortsOuiNon, pas pris en charge
Fonctionne sur YouTube, VimeoOuiOui, et indexable
Compte pour la conformité accessibilitéGénéralement nonOui
Indexé par les moteurs de rechercheNonOui
Corriger une faute plus tardRefaire le rendu de la vidéoModifier un fichier texte
Plusieurs langues dans un seul fichierNon, un rendu par langueOui, une piste par langue
Style préservé à l’identiqueOuiSeulement dans les pistes ASS

La réponse pratique, pour la plupart des gens, c’est les deux à la fois : incrustez pour les plateformes sociales verticales où rien d’autre ne fonctionne, et livrez un fichier de sous-titres partout où il est lu, car un fichier est indexable, désactivable et corrigible. Pour obtenir les deux à partir d’une seule tâche, la livraison multilingue explique comment les deux exports partagent la même timeline.

Les quatre façons d’incruster des sous-titres

FFmpegHandBrakeOutils dans le navigateurApplications de sous-titrage pour ordinateur
PrixGratuitGratuitPalier gratuit, puis abonnementPaiement unique ou abonnement
Envoie votre vidéoNonNonOui, le fichier entierNon
Limite de taille / duréeAucuneAucuneOui, généralement stricteAucune
Crée les sous-titresNonNonOuiOui
Contrôle du styleVia ASS ou force_styleLimitéModèles prédéfinisComplet, avec aperçu en direct
Courbe d’apprentissageLigne de commandeModéréeAucuneFaible

Deux remarques honnêtes. FFmpeg et HandBrake sont gratuits et excellents pour cela, et si vous avez déjà un fichier de sous-titres terminé, FFmpeg se résume à une seule commande — aucune raison d’acheter quoi que ce soit. Ce que ni l’un ni l’autre ne fait, c’est produire les sous-titres : ils incrustent un fichier que vous avez déjà, minuté et corrigé ailleurs. Les outils dans le navigateur, eux, les produisent, mais l’envoi n’est pas optionnel, ce qui les écarte pour du contenu confidentiel et pour tout ce qui dépasse leur plafond.

Incruster avec FFmpeg

Pour un SRT simple :

ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4

Pour un fichier ASS stylé, utilisez le filtre ass afin que le style soit respecté plutôt qu’aplati :

ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4

Pour contrôler la qualité explicitement plutôt que d’accepter le réglage par défaut :

ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
  -c:v libx264 -crf 18 -preset slow -c:a copy output.mp4

Pour restyliser un SRT sans le convertir au préalable :

ffmpeg -i input.mp4 \
  -vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
  -c:a copy output.mp4

Le piège Windows. Le chemin à l’intérieur du filtre est interprété par le filtre lui-même, pas par le shell, donc les deux-points de la lettre de lecteur et les barres obliques inverses doivent être échappés. C’est la raison la plus fréquente pour laquelle la commande échoue avec une erreur de fichier introuvable, sur un fichier qui existe pourtant bel et bien :

ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4

Gardez le fichier de sous-titres dans le dossier de travail et passez un simple nom de fichier chaque fois que possible — cela évite complètement le problème.

Incruster des sous-titres sans ligne de commande

Si le terminal n’est pas votre truc, trois types d’outils font le même travail depuis une fenêtre. Les deux premiers sont gratuits et incrustent un fichier de sous-titres que vous avez déjà ; le troisième crée aussi le fichier.

HandBrake

HandBrake est un convertisseur vidéo gratuit pour Windows, Mac et Linux. Ouvrez la vidéo, allez dans l’onglet Subtitles, utilisez Tracks pour ajouter votre SRT externe, réglez cette piste pour qu’elle soit incrustée dans la vidéo, puis lancez l’encodage. Deux limites méritent d’être connues : la documentation de HandBrake indique qu’un MP4 ne peut recevoir qu’une seule piste incrustée, et le style se limite à ce que porte un SRT simple.

Subtitle Edit

Subtitle Edit, l’éditeur de sous-titres gratuit, propose dans son menu Video un export avec sous-titres incrustés qui lance FFmpeg à votre place, et offre de télécharger FFmpeg s’il est absent. C’est le choix naturel quand vous y corrigez déjà le minutage.

Une application de sous-titrage pour ordinateur

Si vous n’avez pas encore de fichier de sous-titres corrigé, l’incrustation n’est que la dernière étape d’une tâche plus longue : transcrire, corriger, styliser, rendre. Sablate fait tout cela de bout en bout sur votre propre machine — transcription locale avec Whisper, un éditeur avec réajustement du minutage sur la timeline et avertissements de vitesse de lecture, 13 préréglages de sous-titres, et une incrustation qui correspond à l’aperçu. Si vous montez dans DaVinci Resolve, la version gratuite peut à la place importer un SRT et l’incruster à l’export.

L’incrustation est disponible sur la formule gratuite, avec une petite marque dans un coin, pour des vidéos de 10 minutes maximum. Pro retire la marque et la limite de durée, et ajoute l’export .ass, le .mkv multipiste et l’export par lots, pour un paiement unique de $29. Téléchargez Sablate ou consultez la page des tarifs pour le détail complet.

Incruster des sous-titres dans des vidéos longues ou volumineuses

La durée change deux choses : l’acheminement du fichier jusqu’à l’outil, et l’encodage lui-même.

L’envoi. Un enregistrement de deux heures en 1080p à environ 8 Mbit/s pèse près de 7 Go. Avec une connexion à 20 Mbit/s en envoi, cela représente près de 50 minutes avant même qu’un outil en ligne puisse démarrer, et le fichier terminé doit ensuite être retéléchargé. Incruster en local supprime complètement cette étape.

L’encodage. L’incrustation réencode chaque image, donc un fichier de deux heures prend du temps sur n’importe quelle machine. Avant de lancer l’encodage complet, faites le rendu de la première minute et vérifiez la police, la taille et la position à ce moment-là, plutôt qu’après une heure d’attente :

ffmpeg -i input.mp4 -t 60 -vf "subtitles=subs.srt" -c:v libx264 -crf 18 -preset slow -c:a copy test.mp4

Vitesse ou taille. -preset medium est nettement plus rapide que slow et produit un fichier légèrement plus gros au même CRF. Un encodeur matériel (h264_nvenc sur les cartes NVIDIA, h264_videotoolbox sur un Mac) est encore plus rapide, mais demande un débit plus élevé pour la même qualité visuelle. Gardez -c:a copy dans tous les cas : réencoder l’audio d’un long fichier coûte du temps et une seconde génération de perte pour rien.

Sablate n’impose aucune limite de durée avec Pro, et le rendu s’exécute en local avec une barre de progression et un bouton d’annulation ; un enregistrement de long métrage est donc une affaire d’attente, pas de découpage du fichier en morceaux.

Ce qui coûte vraiment de la qualité

Deux choses, et aucune n’est l’incrustation elle-même.

Réencoder un fichier déjà compressé. L’incrustation exige un réencodage, qui est destructeur. Le faire sur votre master ne coûte presque rien de visible. Le faire sur un fichier qu’une plateforme a déjà compressé, c’est compresser des artefacts de compression, et c’est là qu’apparaissent le bloc et le flou. Partez toujours de la version la meilleure qualité que vous ayez, et n’incrustez jamais des sous-titres dans un fichier déjà incrusté une fois.

Accepter les réglages d’encodeur par défaut. -crf 18 avec x264 est visuellement quasi transparent pour la plupart des contenus ; la valeur par défaut de 23 est nettement plus floue sur des images détaillées. -preset slow échange du temps contre un fichier plus léger à qualité égale. Et -c:a copy laisse le flux audio intact — il n’y a aucune raison de réencoder l’audio quand seule l’image change.

Pourquoi le rendu ne correspond pas à l’aperçu

Deux causes, toutes deux corrigibles avant de lancer un encodage.

Les polices. Le moteur de rendu dessine avec la police qu’il trouve. Si la police choisie n’est pas installée, ou ne peut pas dessiner cette écriture — la plupart des polices de sous-titrage ne couvrent que le latin, le cyrillique et le grec, rien d’autre — une police de substitution est utilisée, et un texte arabe, thaï, hangeul ou CJK peut se retrouver sous forme de cases vides. Vérifiez la police avant de faire le rendu de douze langues, pas après.

La taille du canevas. Les positions et les tailles de police en ASS sont relatives à un canevas virtuel déclaré dans le fichier, pas aux dimensions en pixels de la vidéo. Une même taille de police produit un texte différent à l’écran sur une source en 1080p et en 4K si le canevas n’est pas fixé. Sablate fixe le canevas des sous-titres à un cadre virtuel de 1080 de haut et déduit la largeur du format d’image réel de la source, métadonnées de rotation incluses, si bien qu’une taille de police signifie toujours la même chose quelle que soit la résolution de captation — et l’aperçu de l’éditeur s’aligne exactement sur le même canevas que celui utilisé par le moteur de rendu.

C’est aussi pourquoi la qualité de l’incrustation varie autant d’un outil à l’autre. Beaucoup d’éditeurs en ligne superposent les sous-titres comme un simple calque de texte plat ; l’incrustation dans Sablate est rendue par libass, le même moteur que les lecteurs multimédias utilisent pour les sous-titres ASS, si bien que les contours, les ombres, le minutage karaoké mot par mot et les polices adaptées à chaque écriture ressortent comme une vraie typographie de sous-titres plutôt que comme des graphismes approximés.

Sortie verticale et carrée

Si la vidéo est destinée à Reels, Shorts ou TikTok, convertissez le format d’image pendant le rendu plutôt que de rogner après coup. Rogner une incrustation 16:9 déjà terminée en 9:16 coupe les côtés des sous-titres en même temps que l’image.

Sablate effectue le rendu en 16:9 (1920×1080), 9:16 (1080×1920) ou 1:1 (1080×1080), en rognant vers le cadre cible ou en le complétant avec une copie floutée de la source, et dispose les sous-titres pour le cadre final. Gardez les sous-titres au-dessus du tiers inférieur d’un cadre vertical : les consignes de Meta pour Reels laissent libres les 35 % du bas, parce que le texte et les boutons de la plateforme les couvrent. Où placer les sous-titres sur Reels, TikTok et Shorts donne la zone de sécurité de chaque plateforme.

En bref

Utilisez un éditeur en ligne uniquement pour les clips courts où rien n’est confidentiel ; incrustez en local pour tout le reste, car il n’y a ni envoi, ni plafond de taille, ni plafond de durée. Incrustez quand la plateforme ne lit aucun fichier de sous-titres, ou quand les sous-titres font partie du rendu visuel — et livrez un fichier de sous-titres partout ailleurs, car un texte modifiable vaut mieux que des pixels qu’on ne peut pas corriger. Faites le rendu à partir de votre master, pas d’une copie déjà envoyée. Utilisez CRF 18 et copiez l’audio. Testez la première minute d’un long fichier avant l’encodage complet. Et vérifiez la police et le canevas avant de lancer cet encodage, car ce sont les deux choses qui font qu’un fichier de sous-titres parfait ressort faux.

Questions fréquentes

Que fait réellement l’incrustation des sous-titres dans une vidéo ?

Elle dessine le texte directement dans l’image et réencode la vidéo, si bien que les sous-titres deviennent des pixels plutôt qu’une piste séparée. Personne ne peut les désactiver, aucun lecteur n’a besoin de gérer un format de sous-titres, et les plateformes qui ignorent les fichiers de sous-titres les affichent quand même correctement. La contrepartie : c’est définitif, et cela coûte un réencodage.

L’incrustation des sous-titres réduit-elle la qualité de la vidéo ?

La vidéo est réencodée, donc une certaine perte est inévitable, mais elle peut être rendue invisible. Partez de votre master en meilleure qualité plutôt que d’un export déjà compressé, utilisez un réglage ciblé sur la qualité comme CRF 18 avec x264, et copiez le flux audio au lieu de le réencoder. C’est incruster deux fois le même fichier qui le dégrade visiblement.

Puis-je incruster des sous-titres sans envoyer ma vidéo en ligne ?

Oui. FFmpeg, HandBrake et les applications de sous-titrage pour ordinateur tournent entièrement sur votre propre machine, sans aucun envoi et sans limite de taille de fichier. Les outils dans le navigateur doivent d’abord envoyer toute la vidéo à un serveur, ce qui explique pourquoi ils plafonnent la taille et la durée, et pourquoi un enregistrement de deux heures y échoue généralement.

Quelle est la commande FFmpeg pour incruster des sous-titres dans une vidéo ?

Pour un SRT simple : ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4. Pour un fichier ASS stylé, utilisez le filtre ass à la place de subtitles. Sous Windows, le chemin à l’intérieur du filtre doit être échappé, ce qui est la raison la plus fréquente pour laquelle la commande échoue avec une erreur de fichier introuvable.

Pourquoi mes sous-titres incrustés sont-ils différents de l’aperçu ?

En général, la police ou la taille du canevas. Le moteur de rendu substitue une autre police si celle que vous avez choisie est absente ou ne peut pas dessiner cette écriture, et la taille des polices est relative à un canevas virtuel, si bien qu’un même chiffre donne des tailles de texte différentes sur une source en 1080p et en 4K. L’aperçu et le rendu doivent utiliser la même police et le même canevas pour correspondre.

Faut-il incruster les sous-titres pour TikTok, Reels et Shorts ?

Oui. Aucune de ces plateformes n’accepte de fichier de sous-titres en même temps que l’envoi, donc les sous-titres y sont soit incrustés dans la vidéo, soit générés par la plateforme elle-même. Les sous-titres générés par la plateforme sont gratuits, mais stylés à sa façon et souvent faux sur les noms propres et le jargon, ce qui explique pourquoi la plupart des créateurs incrustent les leurs.

Comment incruster des sous-titres dans une longue vidéo ?

Faites-le en local. Un enregistrement de deux heures en 1080p pèse plusieurs Go, plus que ce que la plupart des outils dans le navigateur acceptent, et représente environ une heure d’envoi sur une connexion ordinaire. FFmpeg, HandBrake ou une application de bureau le réencodent sur votre propre machine. Rendez d’abord la première minute en test avant de lancer l’encodage complet, et copiez l’audio au lieu de le réencoder.