On retrouve de plus en plus de vidéos sous-titrées sur les réseaux. Les sous-titres permettent de mieux capter l’attention des utilisateurs et favorisent la mémorisation des informations par les utilisateurs.

Toutefois, sous-titrer ses vidéos demande beaucoup de temps. Il existe bien des logiciels de sous-titrage automatique, mais ils sont soit coûteux, soit ils ne sont pas super au point. De plus, ils ne laissent pas toujours beaucoup de libertés en termes de personnalisation des sous-titres (taille, couleur, style et position des caractères).

FFmpeg fait partie des options gratuites et open-source les plus adaptées pour sous-titrer ses vidéos sans limites. Il s’adapte à de nombreux formats de vidéos, offre une conversion efficace et permet d’automatiser le processus de sous-titrage à partir de scripts ou de programmes.

Dans ce tutoriel, nous allons vous partager les différentes étapes nécessaires au sous-titrage simple d’une vidéo avec FFmpeg.

Voici la vidéo sur laquelle nous allons ajouter des sous-titres :

Créer un fichier texte pour les sous-titres

Pour commencer, nous devons créer un fichier texte répertoriant tous les détails sur les sous-titres en termes de temps et de contenu.

Ouvrez votre bloc-notes et commencez à écrire comme suit :

Sur la première ligne, écrivez le chiffre 1.
Revenez à la ligne et ajoutez l'horodatage de votre sous-titre. Commencez par indiquer le temps de vidéo auqueldoit apparaîtrevotre ligne de sous-titres. Il doit prendre le format suivant : 00:00:00,00 (HH:MM:SS,MS). Ajoutez le symbole --> et indiquez le temps auqueldoit disparaîtrecette première ligne de sous-titre.

Sautez une nouvelle ligne et ajoutez le contenu de votre ligne de sous-titre. Attention, ne faites pas des lignes trop longues. Il vaut mieux couper une phrase en plusieurs lignes pour le confort des utilisateurs.

Pour chaque nouvelle ligne de sous-titres, recommencez l'opération jusqu'à la fin de la vidéo.

Voici à quoi cela ressemble dans notre exemple :

Une fois que votre fichier texte est prêt, enregistrez-le au format txt. Vous le placerez dans un nouveau dossier créé pour l’occasion. Dans notre exemple, nous nommons le fichier texte Subtitles_FFmpeg.txt et nous le plaçons dans un dossier nommé “Subtitles”. Dans ce même dossier, on ajoutera également la vidéo sans sous-titre. On la nomme without_subtitles.mp4..

Ajoutez les sous-titres à votre vidéo à partir de FFmpeg

Votre fichier texte terminé et bien rangé, nous pouvons invoquer FFmpeg pour lui demander d’ajouter ces sous-titres à la vidéo. Vous devrez l’avoir installé auparavant. Vous pourrez le faire depuis http://www.ffmpeg.org.

Pour commencer, ouvrez une invite de commande.(Sous Windows, cliquez sur "Windows "+"R". Recherchez "cmd" et appuyez sur Entrée).

Dans la fenêtre de commande, accédez au répertoire où se trouvent votre fichier vidéo et votre fichier texte de sous-titres en utilisant la commande "cd". Dans notre cas, nous rentrerons : cd C:\NUsers\NUser\NDocuments\NSubtitles

Assurez-vous de remplacer “Utilisateur” par votre nom d’utilisateur réel.

Une fois que vous êtes dans le répertoire contenant les fichiers vidéo et de sous-titres, vous pouvez utiliser la commande FFmpeg pour ajouter les sous-titres à la vidéo. Voici la commande que vous pouvez utiliser :

ffmpeg -i yourvideo.mp4 -vf "subtitles=yoursubtitledocument.txt:force_style='Fontsize=20'" -c:a copy -c:v libx264 -crf 23 -preset veryfast nameoftheoutputvideo.mp4

Dans ce codec, vous devez remplacer:

  • yourvideo.mp4 par le nom de votre vidéo sans sous-titre (n’oubliez pas d’ajouter l’extension “.mp4”)
  • yoursubtitledocument.txt par le nom de votre document texte contenant les sous-titres (n’oubliez pas d’ajouter l’extension “.txt”)
  • nameoftheoutputvideo.mp4 par le nom que vous souhaitez donner à la vidéo avec sous-titre (n’oubliez pas d’ajouter l’extension “.txt”)

Voici à quoi cela ressemble pour notre exemple :

ffmpeg -i without_subtitles.mp4 -vf "subtitles=Subtitle_FFmpeg.txt:force_style='Fontsize=20'" -c:a copy -c:v libx264 -crf 23 -preset veryfast with_subtitles.mp4

Si vous voulez jouer sur certains paramètres, voici les détails de ce codec :

  • ffmpeg permet d’invoquer le programme FFmpeg ;
  • i without_subtitles.mp4 permet de préciser le fichier d’entrée de la vidéo ;
  • vf “subtitles=Subtitle_FFmpeg.txt:force style=’Fontsize=20’” est une option pour le filtre vidéo. On y retrouve le nom du fichier au format TXT et une option supplémentaire pour le style et la taille de la police (force_style=’Fontsize=20’) ;
  • c:a copy permet de copier le flux audio d’origine sans conversion (même si dans notre exemple, la vidéo est dépourvue de son) ;
  • c:v libx264 spécifie le codec vidéo à utiliser pour la conversion ;
  • crf 23 correspond à la qualité de la vidéo (plus le chiffre est élevé, plus le poids de la vidéo est faible et plus la qualité de la vidéo est faible) ;
  • preset veryfast permet une conversion plus rapide, mais le fichier vidéo en sortie est plus lourd ;
  • with_subtitles.mp4 est le nom du fichier de sortie, soit la vidéo finale avec les sous-titres.

Après avoir exécuté la commande, FFmpeg commencera à traiter la vidéo et à ajouter les sous-titres. Cela peut prendre un certain temps en fonction de la durée de la vidéo et de la puissance de votre ordinateur.

Une fois que FFmpeg a terminé d’ajouter les sous-titres, vousretrouverez la vidéo avec les sous-titres dans le même dossier que les fichiers d'origine.

Dans notre cas, on retrouve un fichier nommé "with_subtitles.mp4" dans "C:\Users\Utilisateur\Documents\Subtitles".

Voici le fichier final :

Néanmoins, si cela vous semble encore trop compliqué, vous pouvez toujours utiliser une API de génération de vidéos comme Abyssale pour mettre en place ce process.

Désormais, plus d’excuses pour publier des vidéos sans sous-titre sur les réseaux 😉