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.
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, HandBrake et les applications de sous-titrage pour ordinateur font tout cela en local, sans le plafond de taille de fichier des outils dans le navigateur.
La suite couvre les quatre façons de le faire, les commandes qui fonctionnent, et les deux choses qui abîment réellement la qualité.
Quand l’incrustation est le bon choix
| Incrusté (hardsub) | Fichier ou piste de sous-titres (softsub) | |
|---|---|---|
| Le spectateur peut le désactiver | Non | Oui |
| Fonctionne sur TikTok, Reels, Shorts | Oui | Non, pas pris en charge |
| Fonctionne sur YouTube, Vimeo | Oui | Oui, et indexable |
| Compte pour la conformité accessibilité | Généralement non | Oui |
| Indexé par les moteurs de recherche | Non | Oui |
| Corriger une faute plus tard | Refaire le rendu de la vidéo | Modifier un fichier texte |
| Plusieurs langues dans un seul fichier | Non, un rendu par langue | Oui, une piste par langue |
| Style préservé à l’identique | Oui | Seulement 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
| FFmpeg | HandBrake | Outils dans le navigateur | Applications de sous-titrage pour ordinateur | |
|---|---|---|---|---|
| Prix | Gratuit | Gratuit | Palier gratuit, puis abonnement | Paiement unique ou abonnement |
| Envoie votre vidéo | Non | Non | Oui, le fichier entier | Non |
| Limite de taille / durée | Aucune | Aucune | Oui, généralement stricte | Aucune |
| Crée les sous-titres | Non | Non | Oui | Oui |
| Contrôle du style | Via ASS ou force_style | Limité | Modèles prédéfinis | Complet, avec aperçu en direct |
| Courbe d’apprentissage | Ligne de commande | Modérée | Aucune | Faible |
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.
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 le texte hors du cinquième inférieur d’un cadre vertical — cette zone est couverte par l’interface propre à la plateforme sur la plupart des téléphones.
Le faire sans ligne de commande
Si vous n’avez pas déjà un 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 exactement à l’aperçu.
L’incrustation est disponible sur la formule gratuite, avec une petite marque dans un coin ; Pro retire cette marque et ajoute l’export .ass, le .mkv multipiste et l’export par lots pour un paiement unique de $29. Téléchargez-la ou consultez la page des tarifs pour le détail complet.
En bref
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. Et vérifiez la police et le canevas avant de lancer l’encodage, car ce sont les deux choses qui font qu’un fichier de sous-titres parfait ressort faux.