L'éducation

Comment ajouter des sous-titres avec FFmpeg (guide d'utilisation en ligne de commande)

par David Nguyen 12 min lecture
Dans cet article

Ajouter des sous-titres à une vidéo ne devrait pas nécessiter un diplôme en informatique — mais c’est souvent l’impression que l’on a lorsqu’on se retrouve face à un terminal en ligne de commande pour la première fois. FFmpeg, l'outil de traitement vidéo libre et open source, offre de puissantes fonctionnalités de sous-titrage sans frais de licence. Que vous ayez besoin d'intégrer des sous-titres directement dans votre vidéo ou d'y incorporer des pistes de sous-titres activables à la volée, FFmpeg permet de réaliser ces deux opérations à l'aide de quelques commandes bien conçues. Pour ceux qui préfèrent éviter complètement la ligne de commande, sous-titres automatiques Certains outils permettent de transformer un processus manuel en quelques clics, mais la maîtrise de FFmpeg vous offre un contrôle total sur l'intégration et le rendu des sous-titres.

Principaux enseignements

  • FFmpeg prend en charge deux types de sous-titres : les sous-titres « soft », qui sont des pistes activables à volonté, et les sous-titres « hard », qui sont intégrés de manière permanente à la vidéo.
  • Les fichiers SRT utilisent un formatage simple des horodatages, tandis que les fichiers ASS/SSA permettent une mise en forme avancée grâce à des polices, des couleurs, un positionnement et des effets
  • Le traitement des sous-titres intégrés nécessite un réencodage de la vidéo, ce qui est plus lent et sollicite davantage le processeur.
  • Les sous-titres intégrés peuvent souvent être ajoutés lors de la copie des flux vidéo et audio d'origine, ce qui évite de devoir réencoder la vidéo.
  • La version 8.0 de FFmpeg a introduit un filtre audio Whisper optionnel pour la transcription automatique, mais la prise en charge de l'AV1 dépend de la manière dont le binaire FFmpeg a été compilé et nécessite un modèle compatible.
  • SRT offre une large compatibilité avec les outils de sous-titrage, les lecteurs et les plateformes
  • Les fichiers ASS/SSA offrent un contrôle étendu sur la mise en forme, notamment des effets de texte animés et une mise en évidence de type « karaoké ».
  • Les sous-titres « soft » permettent de préserver la qualité d'origine de la vidéo lorsque le flux vidéo est copié sans réencodage.

Comprendre les formats de sous-titres : SRT, VTT et ASS/SSA

Avant de vous plonger dans les commandes FFmpeg, vous devez bien comprendre avec quoi vous travaillez. Les fichiers de sous-titres existent sous plusieurs formats, chacun répondant à des besoins différents et offrant des niveaux de contrôle variables.

Qu'est-ce qu'un fichier SRT ?

Le format SRT (SubRip Text) est l'un des formats de sous-titres les plus utilisés en raison de sa simplicité. Sa structure suit un modèle très simple :

1

00:00:01,000 –> 00:00:03,500

Voici le premier sous-titre.

2

00:00:03,500 –> 00:00:06,000

Voici le deuxième sous-titre.

Chaque entrée contient un numéro séquentiel, une plage d'horodatage et le texte affiché. Vous pouvez créer et modifier des fichiers SRT dans n'importe quel éditeur de texte : Notepad, TextEdit ou VS Code conviennent tous. Le format prend en charge les sauts de ligne de base, mais ses capacités de mise en forme natives sont limitées.

Le format que vous choisissez détermine les possibilités offertes par vos sous-titres :

  • SRT (SubRip): Texte au format Plain avec horodatage, compatibilité étendue et mise en forme limitée
  • VTT (WebVTT): Un format adapté au Web, doté de paramètres de repères et d'une mise en forme de base, couramment utilisé avec les lecteurs vidéo HTML5
  • ASS/SSA (Advanced SubStation Alpha): Contrôle complet de la mise en page, notamment des polices, des couleurs, du positionnement, des ombres et des animations

Pour les contenus destinés aux réseaux sociaux nécessitant des sous-titres à l'image de votre marque, les fichiers ASS offrent la flexibilité nécessaire pour s'adapter à votre identité visuelle. En matière d'accessibilité et de compatibilité étendue, le format SRT constitue souvent un choix pratique.

Configuration de FFmpeg : installation et utilisation de base

FFmpeg s'exécute depuis la ligne de commande, ce qui signifie que vous devrez saisir des commandes dans Terminal sous macOS ou Linux, ou dans l'Invite de commandes ou PowerShell sous Windows. La procédure d'installation varie selon le système d'exploitation :

Windows: Rendez-vous sur le Page de téléchargement de FFmpeg et cliquez sur l'un de ses liens vers une version compatible avec Windows. Décompressez les fichiers, puis ajoutez le fichier de la version poubelle dossier à votre variable d'environnement PATH.

Mac: Ouvrez le Terminal et exécutez brew install ffmpeg si vous utilisez le gestionnaire de paquets Homebrew.

Linux: Exécuter sudo apt install ffmpeg sous Ubuntu ou Debian, ou sudo pacman -S ffmpeg sur les distributions basées sur Arch.

Vérifiez votre installation en tapant :

ffmpeg -version

Une configuration réussie affiche les informations relatives à la version et à la configuration de compilation. Pour les sous-titres incrustés, vérifiez si la configuration inclut –enable-libass, ou exécuter ffmpeg - filtres et confirmer que le sous-titres le filtre est répertorié.

Structure de base des commandes FFmpeg

Chaque commande FFmpeg suit un schéma cohérent :

ffmpeg -i fichier_source.mp4 [options] fichier_de_sortie.mp4

Les -i Le drapeau désigne votre fichier d'entrée, les options modifient le traitement et l'argument final indique le nom de votre fichier de sortie. Comprendre cette structure facilite la lecture des commandes, même les plus complexes.

Sous-titres intégrés : ajouter des pistes de sous-titres externes à une vidéo

Les sous-titres intégrés sont stockés sous forme de pistes distinctes au sein d'un fichier vidéo, ce qui permet aux spectateurs de les activer ou de les désactiver. Cette approche permet de préserver la qualité d'origine de la vidéo, car le flux vidéo n'a pas besoin d'être réencodé.

Intégration de fichiers SRT sans réencodage de la vidéo

Voici une commande de base pour les sous-titres incrustés dans un fichier MP4 :

ffmpeg -i video.mp4 -i subtitles.srt -c copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4

Voyons cela plus en détail :

  • -i video.mp4: Votre vidéo source
  • -i sous-titres.srt: Votre fichier de sous-titres
  • -c copie: Copier des flux d'entrée compatibles sans les réencoder
  • -c:s mov_text: Convertir la piste de sous-titres au format compatible avec MP4 mov_text format
  • -metadata:s:s:0 language=eng: Indiquez « anglais » comme langue de la première piste de sous-titres

Le traitement est généralement beaucoup plus rapide que le rendu de sous-titres intégrés, car FFmpeg peut copier les flux vidéo et audio tout en ne convertissant que le flux de sous-titres. Pour les équipes qui doivent créer des fichiers de sous-titres avant de les intégrer, Sonix peut générer automatiquement des fichiers SRT à partir de fichiers audio ou vidéo.

Gestion de plusieurs langues de sous-titres

Pour les contenus nécessitant plusieurs options linguistiques :

ffmpeg -i video.mp4 -i english.srt -i spanish.srt -map 0 -map 1 -map 2 -c copy -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=spa output.mp4

Cela permet de créer un fichier vidéo unique proposant des pistes de sous-titres en anglais et en espagnol. Le -carte Les options incluent explicitement les flux provenant de chaque entrée.

Intégration des sous-titres : graver les sous-titres directement dans la vidéo

Les sous-titres intégrés font partie intégrante des images vidéo et s'affichent quel que soit le réglage du lecteur. Cela permet de garantir que les sous-titres restent visibles dans les environnements de diffusion qui n'affichent pas de manière fiable les pistes de sous-titres distinctes.

Utilisation du filtre « Sous-titres » pour les sous-titres permanents

La commande de base pour le « burn-in » est la suivante :

ffmpeg -i video.mp4 -vf “ subtitles=subtitles.srt ” -c:v libx264 -c:a copy output.mp4

Les -vf L'option « video-filter » applique le filtre de sous-titres, en affichant le texte directement sur les images vidéo. Comme ce filtre agit sur des images décodées, la vidéo doit être réencodée. Le -c : une copie Cette option conserve le flux audio d'origine lorsqu'il est compatible avec le conteneur de sortie.

Personnalisation de l'apparence des sous-titres

Le texte blanc « Plain » ne correspond pas toujours à l'esthétique d'une vidéo professionnelle. FFmpeg’s force_style Cette option vous permet de remplacer les propriétés de style ASS :

ffmpeg -i video.mp4 -vf “ subtitles=subtitles.srt:force_style=’FontName=Roboto,FontSize=18,BackColour=&H40000000,BorderStyle=3′ ” -c:v libx264 -c:a copy output.mp4

Cela permet de créer des légendes avec un arrière-plan partiellement transparent. Les options de mise en forme disponibles pour Available sont les suivantes :

  • Nom de la police: Un nom de police compatible avec AVai
  • Taille de la police: Une valeur ASS pour la taille de police ; la taille affichée dépend du redimensionnement des sous-titres et de la vidéo
  • Couleur primaire: Couleur du texte dans ASS &HAABBGGRR notation
  • Couleur d'arrière-plan: Couleur d'arrière-plan ou d'ombre, y compris la transparence
  • BorderStyle: Généralement 1 pour un aperçu ou 3 pour un arrière-plan encadré
  • Plan: Épaisseur du contour en unités de script ASS
  • Ombre: Profondeur d'ombre en unités du script ASS

La disponibilité de la police avail dépend du système et de la version de FFmpeg. Pour des workflows portables, vous devrez peut-être spécifier un répertoire de polices via le filtre répertoire des polices option.

Problèmes courants et dépannage

Plusieurs problèmes posent souvent des difficultés aux débutants en FFmpeg :

“ Ce filtre n'existe pas : sous-titres ”: Il se peut que votre version de FFmpeg ne prenne pas en charge la bibliothèque libass. Vérifiez ffmpeg - filtres, installez une version qui inclut le filtre, ou compilez FFmpeg avec –enable-libass.

Caractères altérés: Le fichier de sous-titres utilise peut-être un encodage de caractères incorrect. Enregistrez-le à nouveau au format UTF-8. Si vous utilisez un autre encodage, utilisez le filtre de sous-titres charenc option, lorsqu'elle est prise en charge.

Sous-titres désynchronisés: Utilisation -itsoffset avant l'entrée des sous-titres pour décaler l'ensemble du flux de sous-titres. Les valeurs positives retardent les sous-titres ; les valeurs négatives les font avancer.

Taille considérable du fichier de sortie: Les sous-titres intégrés nécessitent un réencodage de la vidéo. Pour une sortie au format H.264, réglez la qualité et la taille à l'aide d'un encodeur prenant en charge le CRF, tel que -c:v libx264 -crf 23. Des valeurs de CRF plus faibles donnent généralement des fichiers de meilleure qualité et de plus grande taille.

Exemples de commandes FFmpeg spécifiques pour des cas d'utilisation courants

Ajouter des sous-titres SRT à une vidéo MP4 (méthode logicielle)

ffmpeg -i interview.mp4 -i captions.srt -c copy -c:s mov_text output.mp4

Utilisez cette option pour les lecteurs et les flux de distribution prenant en charge la sélection de pistes de sous-titres au sein des fichiers MP4. Pour les plateformes proposant une interface dédiée au téléchargement des sous-titres, il peut s'avérer plus fiable de télécharger le fichier SRT séparément.

Graver un fichier VTT au format MKV (difficile)

ffmpeg -i webinar.mkv -vf “ subtitles=captions.vtt ” -c:v libx264 -c:a copy output.mkv

Les -c : une copie Cette option permet de conserver l'audio d'origine sans le réencoder lorsque le codec est compatible avec le conteneur de sortie.

Légendes stylisées pour les réseaux sociaux

ffmpeg -i clip.mp4 -vf “ subtitles=captions.srt:force_style=’FontName=Arial,FontSize=24,PrimaryColour=&H00FFFFFF,BackColour=&H80000000,BorderStyle=3,Alignment=2′” -c:v libx264 -preset veryfast -c:a copy output.mp4

Alignement=2 place les sous-titres en bas au centre, conformément aux règles d'alignement ASS standard. Le -réglage par défaut « veryfast » Cette option accélère libx264 un encodage au détriment d'une partie de l'efficacité de la compression.

Techniques avancées de sous-titrage avec FFmpeg

Réglage de la synchronisation des sous-titres

Lorsque les sous-titres ne correspondent pas parfaitement à l'audio :

ffmpeg -i video.mp4 -itsoffset 2.5 -i subtitles.srt -c copy -c:s mov_text output.mp4

Cela retarde le flux de sous-titres de 2,5 secondes. Pour l'avancer, utilisez une valeur négative telle que -itsoffset -1,5.

Tirer parti de l'ASS pour des effets visuels avancés

Les fichiers ASS offrent des fonctionnalités que les fichiers SRT plain ne proposent pas en standard :

  • Effets d'animation sur le texte, tels que les fondus et les déplacements
  • Mise en évidence de type « karaoké »
  • Plusieurs positions de texte simultanées
  • Mise en forme par caractère ou par mot

Créez des fichiers ASS à l'aide d'un logiciel de création de sous-titres, puis appliquez-les à l'aide du filtre ASS de FFmpeg :

ffmpeg -i video.mp4 -vf “ ass=styled_captions.ass ” -c:v libx264 -c:a copy output.mp4

Création de sous-titres avec le filtre « Whisper » de FFmpeg

La version 8.0 de FFmpeg a introduit un filtre audio optionnel, « Whisper », capable de générer des transcriptions, notamment des fichiers de sous-titres. Cependant, toutes les versions binaires de FFmpeg 8.x ne l'intègrent pas.

Commencez par vérifier si votre version propose ce filtre :

ffmpeg -filters | grep whisper

Dans Windows PowerShell, vous pouvez utiliser :

ffmpeg -filters | Select-String whisper

Vous aurez également besoin d'un fichier de modèle Whisper compatible. Voici un exemple de structure de commande :

ffmpeg -i input.mp4 -af “ whisper=model=/path/to/model.bin:language=auto:destination=output.srt:format=srt ” -f null –

Les options exactes peuvent varier selon la version et la compilation de FFmpeg. Les compilations compatibles peuvent utiliser des backends GPU pris en charge, mais l'accélération dépend de la bibliothèque Whisper liée, du matériel available, des pilotes et de la configuration de la compilation.

Le filtre permet de générer une première transcription, mais la précision varie en fonction du modèle, de la langue, des accents, de la qualité de l'enregistrement, des bruits de fond et du vocabulaire. Vérifiez toujours les sous-titres générés automatiquement avant leur publication.

FFmpeg et les logiciels de montage vidéo : combler le fossé

FFmpeg excelle dans le traitement par lots et l'automatisation, tandis que les éditeurs spécialisés offrent une précision visuelle. La solution idéale consiste souvent à combiner ces deux outils.

Quand utiliser FFmpeg plutôt que des logiciels de montage vidéo spécialisés ?

Optez pour FFmpeg dans les cas suivants :

  • Traitement de dizaines ou de centaines de vidéos
  • Exécution de tâches automatisées par lots
  • Ajouter des sous-titres à l'aide de scripts réutilisables
  • Travail dans des pipelines CI/CD ou des environnements de serveurs

Optez pour un logiciel de montage vidéo dans les cas suivants :

  • Réglage visuel précis de la synchronisation de chaque sous-titre
  • Création de légendes animées complexes
  • Travailler sur des productions nécessitant un positionnement précis au niveau de chaque image
  • Besoin d'un aperçu visuel en temps réel lors de l'ajustement des sous-titres

Exportation de sous-titres générés par FFmpeg pour les logiciels de montage non linéaire

FFmpeg permet d'extraire ou de convertir un flux de sous-titres textuels intégrés compatible :

ffmpeg -i video.mp4 -map 0:s:0 subtitles.srt

Cette option sélectionne la première piste de sous-titres et la convertit au format SRT lorsque le type de sous-titres source peut être représenté sous forme de texte. Les pistes de sous-titres basées sur des images ne peuvent pas être converties directement au format SRT sans reconnaissance de texte. Le fichier obtenu peut être modifié dans un autre outil de gestion de sous-titres ou intégré à un projet plus vaste flux de travail vidéo.

Optimisation des processus de sous-titrage avec Sonix

Les outils en ligne de commande offrent puissance et flexibilité, mais ils exigent une aisance technique que tout le monde ne possède pas ou ne souhaite pas acquérir. Lorsque les délais pressent et que la précision est de mise, la transcription manuelle, le synchronisation des sous-titres et la gestion des fichiers peuvent devenir des goulots d'étranglement.

Sonix aborde le processus de sous-titrage différemment en recourant à l'IA et à des outils accessibles via un navigateur pour les étapes qui précèdent l'encodage final :

  • Transcription automatique convertit les fichiers audio et vidéo en texte modifiable et horodaté
  • Prise en charge multilingue propose une transcription en Plus de 54 langues
  • Édition via un navigateur associe la lecture synchronisée à des commandes de réglage de la synchronisation du texte et des sous-titres
  • Exportation des sous-titres comprend les formats SRT, VTT, TTML, FCPXML et d'autres formats de production pris en charge
  • Identification de l'orateur identifie automatiquement les différents locuteurs dans les flux de travail de transcription pris en charge

Sonix indique officiellement que la génération de sous-titres prend généralement environ cinq minutes par heure de vidéo, bien que la durée réelle de traitement puisse varier. Ses outils de sous-titrage permettent également d'ajuster la synchronisation, de personnaliser la mise en forme et de générer des sous-titres incrustés.

Pour les équipes qui traitent des volumes de contenu réguliers, la solution de Sonix caractéristiques de la collaboration propose des dossiers partagés, des autorisations de consultation et de modification, des notes au niveau des paragraphes, un historique des versions et des transferts de tâches bien organisés. Sonix utilise un modèle d'édition ciblée dans lequel une personne effectue les modifications tandis que les autres peuvent consulter, écouter, effectuer des recherches et laisser des notes.

Sonix, c'est aussi Certification SOC 2 Type II, les données étant chiffrées en transit à l'aide du protocole TLS et au repos à l'aide de l'algorithme AES-256. Les organisations traitant des données soumises à une réglementation doivent néanmoins évaluer le produit, le plan, la configuration et les exigences contractuelles spécifiques qui s'appliquent à leur cas d'utilisation.

FFmpeg remains est idéal pour l'intégration finale, la conversion et le rendu. Pour les étapes précédentes (transcription, révision, traduction et collaboration), une plateforme accessible via un navigateur permet de réduire le travail manuel lié à la préparation des fichiers.

Verdict final : choisir entre FFmpeg et les plateformes de transcription professionnelles

Le choix entre FFmpeg et une plateforme de transcription spécialisée dépend des exigences de votre flux de travail et de votre niveau de maîtrise technique.

Optez pour FFmpeg lorsque vous avez besoin :

  • Contrôle Detailed des paramètres d'encodage et d'affichage des sous-titres
  • Traitement par lots pour les pipelines vidéo automatisés
  • Intégration aux workflows existants en ligne de commande
  • Un outil open source sans frais d'abonnement récurrents
  • Étapes de traitement multimédia scriptables et reproductibles

Optez pour une plateforme de transcription professionnelle lorsque vous avez besoin :

  • Conversion automatique de la parole en texte sans avoir à créer manuellement la transcription
  • Édition via navigateur avec lecture synchronisée
  • Transcription multilingue et traduction
  • Collaboration au sein de l'équipe et processus de révision
  • Identification et étiquetage des locuteurs
  • Fonctionnalités de sécurité et d'administration documentées

Pour de nombreuses équipes chargées du contenu, un processus de travail efficace combine les deux : utiliser Sonix pour générer et relire des transcriptions horodatées, accompagnées d'indications sur l'interlocuteur et d'outils de collaboration, puis utiliser FFmpeg pour intégrer ou graver les sous-titres dans les fichiers vidéo finaux. Cette approche combine un processus de transcription assistée avec un contrôle technique sur le résultat final.

Questions fréquemment posées

Quelle est la différence entre les sous-titres « soft » et « hard » ?

Les sous-titres « soft » sont stockés sous forme de pistes distinctes que les spectateurs peuvent activer ou désactiver via les paramètres d'un lecteur multimédia compatible. Les sous-titres « hard » sont intégrés de manière permanente dans les images vidéo et s'affichent quel que soit le support de la piste de sous-titres. Les sous-titres « soft » permettent de conserver le flux vidéo d'origine lorsqu'ils sont ajoutés sans réencodage, tandis que les sous-titres « hard » nécessitent un réencodage de la vidéo.

FFmpeg peut-il générer automatiquement des sous-titres à partir d'un fichier audio ?

FFmpeg 8.0 a introduit un filtre audio Whisper optionnel pour la transcription de la parole en texte, mais cette fonctionnalité n’est disponible que dans les binaires compilés avec le support de Whisper et nécessite un fichier de modèle compatible. Certaines versions peuvent utiliser des backends GPU pris en charge, bien que l’accélération matérielle ne soit pas garantie. La précision varie en fonction du modèle sélectionné, de la langue, de la qualité audio, des accents, du bruit et du vocabulaire, et la sortie standard du filtre ne prend pas en charge le même workflow d’identification de locuteur que celui proposé par les plateformes de transcription.

Comment puis-je modifier la police ou la couleur des sous-titres incrustés avec FFmpeg ?

Utilisez le force_style option dans le filtre des sous-titres. Par exemple, -vf “ subtitles=captions.srt:force_style=’FontName=Arial,FontSize=20,PrimaryColour=&H0000FFFF' ” applique une police Arial avec une valeur de couleur ASS. Les couleurs ASS utilisent &HAABBGGRR notation, où AA correspond à alpha. Vous pouvez également spécifier Couleur d'arrière-plan, BorderStyle, Plan, Ombre, ainsi que les propriétés d'alignement.

Quels formats de sous-titres FFmpeg prend-il en charge ?

FFmpeg peut lire, écrire, convertir ou traiter de nombreux formats de sous-titres, notamment SRT, WebVTT, ASS/SSA, ainsi que plusieurs formats de sous-titres basés sur des images. La prise en charge exacte dépend de la version de FFmpeg, du format d'entrée, du conteneur de sortie et du codec de sous-titres sélectionné. Pour les sous-titres intégrés dans un fichier MP4, -c:s mov_text est couramment utilisé. Les conteneurs Matroska peuvent stocker plus directement des codecs de sous-titres tels que SRT et ASS, tandis que les flux de travail utilisant des sous-titres intégrés recourent généralement au sous-titres ou cul filtres pour les formats de texte pris en charge.

Comment puis-je m'assurer que mes sous-titres sont parfaitement synchronisés avec ma vidéo ?

Prévisualisez de courts extraits avant de traiter la vidéo dans son intégralité. Si la piste de sous-titres dans son ensemble semble systématiquement en avance ou en retard, placez -itsoffset Avant la saisie des sous-titres : les valeurs positives retardent la piste, tandis que les valeurs négatives l'avancent. En cas de problèmes ne concernant que certaines lignes, modifiez les horodatages dans le fichier de sous-titres ou utilisez un éditeur de sous-titres visuel doté d'une forme d'onde et de commandes de lecture.

Obtenez une transcription précise en quelques minutes

Commencez à transcrire plus intelligemment. Essayez Sonix gratuitement ou découvrez nos tarifs pour trouver le plan qui vous convient.