Recueil des commandes FFmpeg courantes
Sélection des commandes FFmpeg les plus pratiques, couvrant les scénarios courants comme la conversion de format, le montage, la compression, les sous-titres et la diffusion en continu.
Lire la suite →Maîtrisez diverses techniques de traitement des sous-titres avec FFmpeg, du débutant à l'expert
Il existe de nombreux formats de fichiers de sous-titres, chacun ayant des caractéristiques et des cas d'application différents. Avant de traiter des sous-titres avec FFmpeg, familiarisons-nous avec les formats de sous-titres courants.
SRT (SubRip Text) est le format de sous-titres le plus populaire et le plus simple, pris en charge par presque tous les lecteurs. C'est un format texte brut contenant des numéros séquentiels, des chronologies et le contenu des sous-titres.
1
00:00:01,000 --> 00:00:04,000
Ceci est la première ligne de sous-titre
2
00:00:05,000 --> 00:00:08,000
Ceci est la deuxième ligne de sous-titre
Avantages : format simple, bonne compatibilité, facile à éditer. Inconvénients : ne prend pas en charge la configuration des styles.
ASS (Advanced SubStation Alpha) est le format de sous-titres le plus puissant, prenant en charge de riches paramètres de style, incluant la police, la couleur, la position, les effets d'animation, etc.
[Script Info]
Title: Exemple de sous-titres
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour
Style: Default, Arial, 24, &H00FFFFFF
[Events]
Format: Layer, Start, End, Style, Text
Dialogue: 0, 0:00:01.00, 0:00:04.00, Default, Ceci est la première ligne de sous-titre
Avantages : styles riches, prise en charge des effets, haut degré de personnalisation. Inconvénients : format complexe, non pris en charge par certains appareils.
VTT (WebVTT) est un format de sous-titres conçu spécifiquement pour le web, nativement pris en charge par la balise video HTML5. Son format est similaire à SRT mais avec quelques fonctionnalités étendues.
WEBVTT
00:00:01.000 --> 00:00:04.000
Ceci est la première ligne de sous-titre
00:00:05.000 --> 00:00:08.000
Ceci est la deuxième ligne de sous-titre
Avantages : prise en charge native par le web, léger. Inconvénients : la prise en charge des navigateurs varie, fonctionnalités de style limitées.
Les sous-titres incrustés (Hardsub) consistent à rendre les sous-titres directement dans l'image vidéo. Les sous-titres font partie intégrante de la vidéo et ne peuvent pas être désactivés. L'avantage est une bonne compatibilité, lisibles par tous les lecteurs ; l'inconvénient est qu'ils ne peuvent pas être supprimés et nécessitent un réencodage.
Utilisez le filtre subtitles pour ajouter des sous-titres SRT :
ffmpeg -i input.mp4 -vf subtitles=sub.srt output.mp4
Si le nom du fichier de sous-titres contient des caractères spéciaux ou des chemins, vous devez les échapper :
ffmpeg -i input.mp4 -vf "subtitles='sub\ title.srt'" output.mp4
Les sous-titres ASS peuvent conserver les informations de style, utilisez le filtre ass :
ffmpeg -i input.mp4 -vf ass=subtitle.ass output.mp4
Pour les sous-titres SRT, vous pouvez configurer le style via le paramètre force_style :
ffmpeg -i input.mp4 -vf "subtitles=sub.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&H00FFFFFF&,OutlineColour=&H00000000&,Outline=2'" output.mp4
FontName : nom de la policeFontSize : taille de la policePrimaryColour : couleur principale (couleur du texte)OutlineColour : couleur du contourBackColour : couleur de fondOutline : épaisseur du contourShadow : profondeur de l'ombreBold : gras (-1=activé, 0=désactivé)Italic : italiqueRemarque : le format de couleur est &HAABBGGRR (Alpha, Bleu, Vert, Rouge), dans l'ordre inverse du format RGB courant.
Vous pouvez ajuster la position des sous-titres via le paramètre Alignment :
ffmpeg -i input.mp4 -vf "subtitles=sub.srt:force_style='Alignment=6,MarginV=50'" output.mp4
La valeur d'Alignment est comprise entre 1 et 9, correspondant à la position du pavé numérique (6=centre droit, 2=centre bas, 8=centre haut).
Les sous-titres souples (Softsub) consistent à intégrer les sous-titres en tant que piste indépendante dans le fichier vidéo. Ils peuvent être activés/désactivés et commutés pendant la lecture. L'avantage est la flexibilité, sans affecter la qualité de l'image ; l'inconvénient est qu'ils nécessitent une prise en charge du lecteur.
ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s mov_text output.mp4
MKV offre la meilleure prise en charge des sous-titres souples et peut être copié directement :
ffmpeg -i input.mkv -i subtitle.srt -c copy output.mkv
ffmpeg -i input.mp4 -i zh.srt -i en.srt -i jp.srt \
-c copy -c:s mov_text \
-metadata:s:s:0 language=chi -metadata:s:s:0 title="Chinois" \
-metadata:s:s:1 language=eng -metadata:s:s:1 title="English" \
-metadata:s:s:2 language=jpn -metadata:s:s:2 title="日本語" \
output.mp4
ffmpeg -i input.mp4 -i zh.srt -i en.srt \
-c copy -c:s mov_text \
-disposition:s:0 default \
-disposition:s:1 none \
output.mp4
Parfois, il est nécessaire d'extraire les sous-titres d'un fichier vidéo pour les éditer ou convertir leur format. FFmpeg peut accomplir cette tâche facilement.
Tout d'abord, consultez les informations sur les pistes de sous-titres dans la vidéo :
ffmpeg -i input.mkv
Trouvez le numéro de la piste de sous-titres (généralement 0:s:0, 0:s:1, etc.), puis extrayez-la :
ffmpeg -i input.mkv -map 0:s:0 output.srt
Si les sous-titres sont au format ASS, extrayez-les directement :
ffmpeg -i input.mkv -map 0:s:0 -c copy output.ass
ffmpeg -i input.mkv -map 0:s -c copy output_%d.srt
Les sous-titres dans un MP4 sont généralement au format mov_text et doivent être convertis en SRT :
ffmpeg -i input.mp4 -map 0:s:0 output.srt
Différents cas d'application nécessitent différents formats de sous-titres. FFmpeg peut convertir entre divers formats de sous-titres.
ffmpeg -i input.srt output.ass
ffmpeg -i input.srt output.vtt
La conversion de sous-titres ASS en SRT entraîne une perte des informations de style :
ffmpeg -i input.ass output.srt
ffmpeg -i input.vtt output.srt
Lors de l'ajout de sous-titres incrustés avec FFmpeg, la configuration du style est très importante. Voici une présentation détaillée des paramètres de style courants.
Le format de couleur utilisé par le filtre de sous-titres FFmpeg est &HAABBGGRR, où :
AA : transparence Alpha (00=entièrement transparent, FF=entièrement opaque)BB : composante bleueGG : composante verteRR : composante rougeRemarque : l'ordre est bleu-vert-rouge (BGR), pas le rouge-vert-bleu (RGB) courant.
| Couleur | Valeur de couleur | Description |
|---|---|---|
| Blanc | &H00FFFFFF& | Couleur de texte par défaut |
| Noir | &H00000000& | Couleur de contour/ombre |
| Rouge | &H000000FF& | Texte mis en évidence |
| Jaune | &H0000FFFF& | Couleur de sous-titres classique |
| Fond noir semi-transparent | &H80000000& | Fond noir à 50% de transparence |
ffmpeg -i input.mp4 -vf "subtitles=sub.srt:force_style='
FontName=Arial,
FontSize=24,
PrimaryColour=&H00FFFFFF&,
OutlineColour=&H00000000&,
BackColour=&H80000000&,
Bold=-1,
Italic=0,
Outline=2,
Shadow=1,
Alignment=2,
MarginV=40
'" output.mp4
ffmpeg -i input.mp4 -vf subtitles=sub.srt output.mp4ffmpeg -i input.mp4 -vf ass=sub.ass output.mp4ffmpeg -i input.mp4 -vf "subtitles=sub.srt:force_style='FontName=SimHei'" output.mp4ffmpeg -i input.mp4 -vf "subtitles=sub.srt:force_style='FontSize=30'" output.mp4ffmpeg -i input.mkv -i sub.srt -c copy output.mkvffmpeg -i input.mp4 -i sub.srt -c copy -c:s mov_text output.mp4ffmpeg -i input.mkv -map 0:s:0 output.srtffmpeg -i input.mkv -map 0:s -c copy sub_%d.srtffmpeg -i input.srt output.assffmpeg -i input.srt output.vttffmpeg -i input.ass output.srtGénéralement dû à un problème d'encodage du fichier de sous-titres. Assurez-vous que le fichier de sous-titres est encodé en UTF-8, ou spécifiez le jeu de caractères :
ffmpeg -i input.mp4 -vf "subtitles=sub.srt:charenc=GBK" output.mp4
Assurez-vous que la police spécifiée est installée sur le système. Sur Linux, vous pouvez placer le fichier de police dans le répertoire ~/.fonts, ou définir le chemin des polices :
FFLIBFREETYPE_FONTPATH=/path/to/fonts ffmpeg -i input.mp4 -vf subtitles=sub.srt output.mp4
Vous pouvez utiliser le paramètre itsoffset pour ajuster le décalage temporel des sous-titres :
ffmpeg -i input.mp4 -itsoffset 0.5 -i sub.srt -c:v copy -c:a copy -c:s mov_text output.mp4
FFmpeg offre de puissantes fonctionnalités de traitement des sous-titres, que ce soit pour ajouter des sous-titres incrustés ou souples, ou pour extraire et convertir des formats de sous-titres, tout peut être accompli facilement. Maîtriser ces commandes peut grandement améliorer l'efficacité du traitement vidéo.
Pour les utilisateurs qui ne sont pas familiers avec la ligne de commande, divers outils de traitement de sous-titres à interface graphique sont également disponibles. Cependant, la flexibilité et les puissantes fonctionnalités de FFmpeg restent le premier choix des utilisateurs professionnels.
Plus d'articles intéressants et d'outils pratiques
Sélection des commandes FFmpeg les plus pratiques, couvrant les scénarios courants comme la conversion de format, le montage, la compression, les sous-titres et la diffusion en continu.
Lire la suite →Analyse complète des caractéristiques de chaque format vidéo, des codecs pris en charge, de la compatibilité des navigateurs, de la comparaison de taille de fichier et des cas d'application.
Lire la suite →Présentation détaillée de 4 méthodes de fusion de fichiers TS avec FFmpeg, comparaison des avantages, inconvénients et cas d'application de chaque méthode.
Lire la suite →Utilisez notre outil de conversion vidéo en ligne gratuit, prenant en charge la conversion entre plusieurs formats, sans téléchargement ni installation
Essayer maintenant ➡