
Incruster des sous-titres dans une vidéo : les réglages qui fonctionnent
Summarize this article with:
Incrustés ou souples en une minute
Les sous-titres incrustés (sous-titres ouverts) sont des pixels intégrés à l'image vidéo. Ils s'affichent sur tous les lecteurs, toutes les plateformes, sans aucune action du spectateur. Les sous-titres souples (sous-titres fermés) sont des pistes de texte distinctes attachées à un fichier vidéo. Le spectateur peut les activer ou les désactiver, le moteur de recherche peut les indexer, et on peut les remplacer par une autre langue sans refaire de rendu.
Le bon choix dépend entièrement de la destination. Pour TikTok, Instagram Reels et la plupart des fichiers vidéo téléchargés, l'incrustation est la seule voie fiable. Pour YouTube, Vimeo et LinkedIn, les pistes souples sont préférables. La suite de ce guide porte sur l'incrustation : quand elle s'impose, comment procéder avec FFmpeg ou un éditeur vidéo, et les compromis de qualité et de style qui comptent vraiment.
Pour l'inverse — choisir et téléverser une piste de sous-titres souple —, consultez le guide comment ajouter des sous-titres à une vidéo. Pour la différence conceptuelle entre sous-titres ouverts et fermés, voir l'article sous-titres ouverts ou fermés.
Quand l'incrustation est requise et quand elle ne l'est pas
TikTok et Instagram Reels n'offrent pas aux spectateurs de commutateur fiable pour les sous-titres des vidéos mises en ligne par les créateurs. Instagram propose un sticker de sous-titrage automatique pendant la création d'un Reel et génère des sous-titres par reconnaissance vocale, mais il n'accepte pas de fichier SRT prêt à l'emploi que les spectateurs peuvent activer ou désactiver. TikTok Studio inclut un générateur de sous-titres automatiques et l'édition manuelle du texte, mais pas une véritable piste de sous-titres fermés que le spectateur peut activer. Sur ces deux plateformes, le texte incrusté est le seul moyen de garantir que chaque spectateur voie vos sous-titres, quel que soit son appareil ou ses réglages.
Plateformes où vous ne devez PAS incruster, et où vous devez utiliser une piste souple à la place :
- YouTube : Téléversez un fichier SRT ou VTT via YouTube Studio. Les spectateurs peuvent activer les sous-titres, changer de langue, et Google peut indexer le texte.
- LinkedIn : LinkedIn accepte les fichiers SRT joints lors du téléversement de la vidéo. La plateforme affiche les sous-titres sous forme de calque activable.
- Vimeo : Prend en charge le téléversement de fichiers SRT/VTT comme pistes activables.
- Facebook : Accepte les téléversements SRT, même si le système de sous-titrage automatique de Facebook s'en occupe souvent tout seul.
Une approche hybride pratique pour les créateurs présents sur plusieurs plateformes : incruster une version stylisée pour les formats courts des réseaux sociaux, et téléverser un SRT propre à côté de la version YouTube. Le fichier de sous-titres source est le même ; seul l'export change.
Étape 1 : Mettez le SRT au point avant d'incruster
Les sous-titres incrustés ne peuvent plus être modifiés après le rendu. Refaire le rendu d'une heure de vidéo 4K pour corriger trois coquilles coûte un vrai temps de calcul. Avant de toucher à FFmpeg ou à votre éditeur, relisez soigneusement le SRT.
Checklist rapide avant de commencer :
- Lisez chaque ligne du SRT dans un éditeur de texte.
- Contrôlez au hasard les timecodes par rapport à l'audio à trois ou quatre endroits.
- Limitez chaque bloc de sous-titre à deux lignes maximum, 42 caractères par ligne maximum.
- Vérifiez que les noms propres, les marques et les chiffres sont exacts.
- Assurez-vous que la police prévue couvre tous les caractères du fichier (les écritures non latines méritent une attention particulière ici).
Si vous n'avez pas encore de SRT, le générateur de sous-titres produit un SRT synchronisé en quelques minutes et prend en charge 99 langues.

Étape 2 : Incruster avec FFmpeg
FFmpeg est la voie la plus rapide pour une incrustation ponctuelle comme pour un traitement par lots. La commande de base :
ffmpeg -i input.mp4 -vf "subtitles=captions.srt" -c:a copy output.mp4
L'option -vf applique un filtre vidéo. Le filtre subtitles lit le SRT via le moteur de rendu libass et superpose le texte. L'option -c:a copy copie la piste audio sans la réencoder.
Par défaut, le texte s'affiche en blanc avec un contour noir, près du bas de l'image. Pour un rendu stylisé, passez des paramètres via force_style :
ffmpeg -i input.mp4 \
-vf "subtitles=captions.srt:force_style='Fontname=Arial,FontSize=24,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=3,Outline=2,Shadow=1,Alignment=2,MarginV=40'" \
-c:a copy \
output.mp4
Deux choses à savoir sur la syntaxe de force_style :
- Les valeurs de couleur utilisent le format ASS/BGR, pas RGB.
&H00FFFFFFcorrespond au blanc (00=alpha, FF=bleu, FF=vert, FF=rouge dans l'ordre BGR). Si vous recopiez telle quelle une couleur hexadécimale HTML, le rendu sera faux. BorderStyle=3ajoute un rectangle d'arrière-plan derrière le texte.BorderStyle=1ajoute un simple contour. Le style boîte se lit mieux sur des fonds vidéo chargés.
Qualité et taille de fichier
Incruster des sous-titres impose un réencodage complet de la vidéo. L'audio est copié, mais les images vidéo sont décodées, composées avec le texte, puis réencodées. Pour une sortie H.264, FFmpeg utilise par défaut un CRF de 23, ce qui convient à une diffusion web. Si vous partez d'une source de haute qualité et voulez limiter la perte de génération, passez -crf 18 ou -crf 20 :
ffmpeg -i input.mp4 \
-vf "subtitles=captions.srt:force_style='Fontname=Arial,FontSize=24,BorderStyle=3,Alignment=2,MarginV=40'" \
-c:v libx264 -crf 18 -c:a copy \
output.mp4
CRF plus bas = meilleure qualité = fichier plus gros. Pour les téléversements sur les réseaux sociaux, un CRF de 20 à 23 est une cible raisonnable. Pour un archivage, visez 18. Ne dépassez pas 28, sinon le rendu du texte lui-même paraîtra pixellisé.
Étape 3 : Incruster dans un éditeur vidéo
Si vous préférez un aperçu visuel pendant le travail, tous les grands éditeurs savent incruster. Le workflow est le même sur Premiere Pro, DaVinci Resolve, Final Cut Pro et CapCut :
- Importez la vidéo sur la timeline.
- Importez le SRT comme piste de légendes ou de sous-titres (Resolve l'appelle Subtitles ; Premiere l'appelle Captions).
- Choisissez police, taille, couleur et position avec les outils de style des sous-titres.
- À l'export, choisissez l'option qui incorpore les sous-titres dans la vidéo.
Dans DaVinci Resolve, allez sur la page Deliver, ouvrez Subtitle Settings, cochez Export Subtitle et sélectionnez « Burn into video » dans le menu déroulant du format. Ce réglage grave les sous-titres définitivement dans l'image.
Dans Premiere Pro, cochez « Export Captions » dans la fenêtre d'export et choisissez « Burn captions into video » plutôt que « Sidecar file ».
L'avantage sur FFmpeg, c'est l'aperçu en temps réel : vous voyez les sous-titres sur la timeline et pouvez faire défiler la vidéo pour vérifier le minutage avant de lancer le rendu. L'inconvénient, c'est que les éditeurs abîment parfois l'import des SRT, surtout avec des caractères non ASCII ou des retours à la ligne inhabituels. Testez sur un court extrait avant d'exporter la vidéo complète.
Pour les incrustations par lots multilingues, FFmpeg est plus fiable qu'un éditeur graphique, car vous pouvez scripter le remplacement du SRT :
for lang in en es fr de; do
ffmpeg -i input.mp4 \
-vf "subtitles=captions-${lang}.srt:force_style='Fontname=Arial,FontSize=24,BorderStyle=3,Alignment=2,MarginV=40'" \
-c:v libx264 -crf 20 -c:a copy \
output-${lang}.mp4
done
Chaque version linguistique donne lieu à un rendu séparé. Les timecodes restent identiques d'une traduction à l'autre : vous ne remplacez que le fichier texte. Consultez le guide workflow de traduction des sous-titres pour le pipeline complet.
Étape 4 : Adapter le style à la plateforme
Les sous-titres incrustés doivent être dimensionnés pour la disposition réelle de l'écran du spectateur sur chaque plateforme, pas seulement pour « avoir l'air lisible sur ma timeline ».
TikTok et Instagram Reels (9:16 vertical) : Texte blanc, taille de police équivalente à 36-48 px, rectangle d'arrière-plan d'environ 70 % d'opacité. Centré horizontalement. Positionné à 60-70 % de la hauteur de l'image pour rester au-dessus de la barre d'interface basse de TikTok et sous l'indicateur de progression en haut. Une seule ligne donne le rendu le plus net ; deux lignes parfois pour les phrases longues.
YouTube Shorts (9:16 vertical) : L'interface de YouTube prend moins de place à l'écran que celle de TikTok, vous avez donc un peu plus de marge. Texte blanc, ombre portée plutôt que rectangle, position vers 70 % de hauteur. Police entre 42 et 56 px.
Fil Instagram (carré 1:1) : Le format carré laisse de l'espace horizontal. Texte blanc avec ombre portée discrète, 28-36 px, deux lignes maximum, positionné à 80 % de hauteur.
YouTube, LinkedIn, vidéo horizontale (16:9) : Position standard dans le tiers inférieur. Texte blanc avec contour noir, 24-32 px, deux lignes maximum, 42 caractères par ligne maximum. MarginV=30 ou MarginV=40 dans le force_style de FFmpeg empêche le texte de toucher le bord inférieur.
L'article bonnes pratiques de style des sous-titres donne les mesures précises des zones de sécurité pour chaque plateforme.
Problèmes d'incrustation courants et solutions
Le texte paraît flou ou crénelé. Cela vient presque toujours de Outline=0 dans votre force_style. Sans contour, le texte se fond dans le bruit de la vidéo. Réglez Outline=1 ou Outline=2.
Les sous-titres sont désynchronisés après l'incrustation. C'est en général un problème de fréquence d'images. Le SRT a été synchronisé sur une source à 30 i/s, mais vous incruster dans une timeline à 29,97 i/s, ou l'inverse. Resynchronisez le SRT ou alignez la fréquence d'images de sortie sur celle de la source avec -r 30 dans votre commande FFmpeg.
Des caractères spéciaux s'affichent en carrés. La police par défaut n'inclut pas cette écriture. Pour l'arabe, le chinois, le devanagari, le thaï ou le cyrillique, définissez Fontname=Noto Sans dans force_style. Noto Sans offre la couverture de glyphes la plus large de toutes les polices librement disponibles. Pour les langues européennes à diacritiques, la plupart des polices système conviennent très bien.
Les couleurs semblent fausses dans force_style. Rappelez-vous que les valeurs de couleur sont en BGR, pas en RGB. &H0000FF en BGR correspond au rouge, pas au bleu. Testez sur un court extrait avant le rendu complet.
Fichier trop volumineux après l'incrustation. L'incrustation réencode la vidéo. Si vous vous contentiez jusque-là de copier le flux, la sortie encodée sera plus lourde. Partez de -crf 20 à -crf 23 pour des tailles de fichier adaptées à la diffusion web.
Mon avis : pour les formats courts des réseaux sociaux, FFmpeg avec un modèle force_style enregistré en alias shell constitue le workflow répétable le plus rapide. Vous lancez une commande, attendez l'encodage, et le fichier est prêt à être mis en ligne. Le passage par un éditeur visuel vaut le coup quand vous devez retoucher le minutage sous-titre par sous-titre, ou quand le projet comporte des choix de style complexes difficiles à exprimer en paramètres ASS.
Questions fréquentes
Quelle est la différence entre des sous-titres incrustés et des sous-titres souples ?
Les sous-titres incrustés (aussi appelés sous-titres ouverts ou sous-titres codés en dur) sont rendus directement dans les pixels de la vidéo. Le spectateur ne peut ni les désactiver, ni changer leur style, ni les traduire, et ils se lisent sur n'importe quel appareil sans prise en charge d'une piste de sous-titres. Les sous-titres souples (sous-titres fermés) forment une piste de texte distincte attachée au fichier vidéo ou téléversée à ses côtés. Les spectateurs peuvent les activer ou les désactiver, et les plateformes peuvent indexer le texte pour la recherche.
TikTok et Instagram prennent-ils en charge des pistes de sous-titres souples que les spectateurs peuvent activer ?
Pas de manière fiable pour les vidéos mises en ligne par les créateurs. Instagram n'accepte pas de fichier SRT préparé à l'avance que les spectateurs peuvent activer ou désactiver. TikTok Studio dispose d'un générateur de sous-titres automatiques, mais pas d'une véritable piste de sous-titres fermés activable par le spectateur, équivalente au bouton CC de YouTube. Les sous-titres incrustés sont l'approche sûre et garantie visible sur les deux plateformes.
L'incrustation de sous-titres réduit-elle la qualité de la vidéo ?
Oui, car l'incrustation exige un réencodage complet de la vidéo. L'ampleur de la perte de qualité dépend de votre réglage CRF. Par défaut, FFmpeg utilise un CRF de 23 avec libx264, ce qui reste acceptable pour une diffusion web. Pour une meilleure qualité au prix d'un fichier plus volumineux, utilisez un CRF de 18 à 20. L'audio n'est pas réencodé lorsque vous passez -c:a copy, il n'y a donc aucune perte de qualité audio.
Puis-je incruster des sous-titres en plusieurs langues sans réenregistrer la vidéo ?
Oui. Chaque version linguistique demande un rendu séparé, mais le fichier vidéo et les timecodes sont identiques. Vous ne faites que remplacer le fichier SRT entre deux exécutions. Une courte boucle shell dans FFmpeg s'en charge automatiquement : parcourez vos fichiers SRT par langue, pointez le filtre subtitles vers chacun d'eux et générez un fichier distinct par langue.
Sources
- Documentation du filtre subtitles et de force_style de FFmpeg : https://ffmpeg.org/doxygen/2.8/vf__subtitles_8c_source.html
- Guide Bannerbear sur les sous-titres avec FFmpeg (force_style, format des couleurs) : https://www.bannerbear.com/blog/how-to-add-subtitles-to-a-video-file-using-ffmpeg/
- Guide du CRF pour x264/x265 : https://slhck.info/video/2017/02/24/crf-guide.html
- Export avec incrustation des sous-titres dans DaVinci Resolve : https://caption-x.com/blog/how-to-add-captions-davinci-resolve
- Options de sous-titres Instagram Reels (aide officielle) : https://help.instagram.com/225479678901832/
- Téléversement SRT des sous-titres fermés sur LinkedIn : https://www.linkedin.com/help/linkedin/answer/a552177/add-closed-captions-to-videos-on-linkedin
- Bonnes pratiques de sous-titres Instagram Reels selon OpusClip 2026 : https://www.opus.pro/blog/instagram-reels-caption-subtitle-best-practices
- Sous-titres ouverts ou fermés sur les réseaux sociaux : https://www.sky-scribe.com/en/blog/closed-vs-open-captions
Try transcription free
Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.
Related Articles
How to Add Timestamps to a Transcript
Learn how to add timestamps to a transcript with an audio-to-text tool, then export timestamped SRT or VTT subtitle files for easy navigation and editing.
How to Transcribe a Conference Talk to Text
Learn how to transcribe a conference talk or keynote to text, label speakers, and export SRT, VTT, or TXT using a straightforward upload or URL workflow.