GNU/Linux >> Tutoriels Linux >  >> Linux

Modification des sous-titres sous Linux

Je suis un amateur de cinéma mondial et de films régionaux depuis des décennies. Les sous-titres sont l'outil essentiel qui m'a permis de profiter des meilleurs films dans différentes langues et de différents pays.

Si vous aimez regarder des films avec des sous-titres, vous avez peut-être remarqué que parfois les sous-titres ne sont pas synchronisés ou ne sont pas corrects.

Saviez-vous que vous pouvez modifier les sous-titres et les améliorer ? Laissez-moi vous montrer quelques modifications de base des sous-titres sous Linux.

Extraire des sous-titres à partir de données de sous-titres codés

Vers 2012, 2013, j'ai découvert un outil appelé CCEextractor. Au fil du temps, c'est devenu l'un des outils essentiels pour moi, surtout si je tombe sur un fichier multimédia dans lequel le sous-titre est intégré.

CCExtractor analyse les fichiers vidéo et produit des fichiers de sous-titres indépendants à partir des données de sous-titrage.

CCExtractor est un outil multiplateforme, gratuit et open source. L'outil a beaucoup mûri depuis ses années de formation et a fait partie de GSOC et Google Code-in de temps en temps.

L'outil, pour le dire simplement, est plus ou moins un ensemble de scripts qui fonctionnent les uns après les autres dans un ordre sérialisé pour vous donner un sous-titre extrait.

Vous pouvez suivre les instructions d'installation de CCExtractor sur cette page.

Après l'installation, lorsque vous souhaitez extraire les sous-titres d'un fichier multimédia, procédez comme suit :

ccextractor <path_to_video_file>

La sortie de la commande ressemblera à ceci :

$ ccextractor $something.mkv
CCExtractor 0.87, Carlos Fernandez Sanz, Volker Quetschke.
Télétexte tiré du telxcc de Petr Kutalek
—————————————————— ———————–
Entrée :$something.mkv
[Extrait :1] [Mode flux :détection automatique]
[Program :Auto ] [Hauppage mode :No] [Utiliser le code MythTV :Auto ]
[Mode de synchronisation :Auto] [Débogage :Non] [Entrée de tampon :Non]
[Utiliser pic_order_cnt_lsb pour H.264 : Non] [Imprimer les traces du décodeur CC : Non ]
[Format cible :.srt] [Encodage :UTF-8] [Délai :0] [Trim lines :Non]
[Ajouter des données de couleur de police :Oui] [Ajouter une composition de police :Oui]
[Convertir la casse :Non] [Joindre l'édition vidéo :Non]
[Heure de début de l'extraction :non définie (à partir du début)]
[Heure de fin d'extraction :non définie (à la fin)]
[Diffusion en direct :Non] [Fréquence d'horloge :90000]
[Page télétexte :détection automatique]
[Texte des crédits de début :aucun]
[Quantisation-mode :fonction interne de CCExtractor]
————————————————— ————–
Ouverture du fichier :$something.mkv
Le fichier semble être un conteneur Matroska/WebM
Analyse des données en mode Matroska
Type de document :matroska
Échelle de code temporel :1000000
Application de multiplexage :libebml v1.3.1 + libmatroska v1.4.2
Application d'écriture :mkvmerge v8.2.0 ('World of Adventure') 64bit
Titre :$something
Entrée de suivi :
Numéro de piste :1
UID :1
Type :vidéo
ID de codec :V_MPEG4/ISO/AVC
Langue :mal
Nom :$something
Entrée de suivi :
Numéro de piste :2
UID :2
Type :audio
ID de codec :A_MPEG/L3
Langue :mal
Nom :$something
Entrée de suivi :
Numéro de piste :3
UID :un numéro
Type :sous-titre
ID de codec :S_TEXT/UTF8
Nom :$something
99 % | 144:34
100 % | 144:34
Fichier de sortie :$something_eng.srt
Terminé, temps de traitement =6 secondes
Problèmes ? Ouvrir un ticket ici
https://github.com/CCExtractor/ccextractor/issues
voir rawccextractor-output.txthébergé avec ❤ par GitHub

Il analyse essentiellement le fichier multimédia. Dans ce cas, il a constaté que le fichier multimédia est en malyalam et que le conteneur multimédia est un .mkv récipient. Il a extrait le fichier de sous-titres portant le même nom que le fichier vidéo en y ajoutant _eng.

CCExtractor est un outil merveilleux qui peut être utilisé pour améliorer les sous-titres avec Subtitle Edit que je partagerai dans la section suivante.

Lecture intéressante :Il existe un résumé intéressant des sous-titres sur vicaps qui raconte et partage pourquoi les sous-titres sont importants pour nous. Il entre également dans les détails de la réalisation de films pour ceux qui s'intéressent à ces sujets.

Modification des sous-titres avec l'outil SubtitleEditor

Vous savez probablement que la plupart des sous-titres sont au format .srt format . La belle chose à propos de ce format est que vous pouviez le charger dans votre éditeur de texte et y apporter de petites corrections.

A srt le fichier ressemble à ceci lorsqu'il est lancé dans un simple éditeur de texte :

1
00:00:00,959 –> ; 00:00:13,744
"LE CABINET
OF DR. CALIGARI"
2
00:00:40,084 –> ; 00:01:02,088
UN CONTE de la réapparition moderne d'un mythe du XIe siècle
involte l'influence étrange et mystérieuse
d'un moine saltimbanque sur un somnambule.
voir rawsample-subtitle.txthébergé avec ❤ par GitHub

Le sous-titre de l'extrait que j'ai partagé provient d'un joli vieux film allemand intitulé Le Cabinet du Dr Caligari (1920)

Subtitleeditor est un outil merveilleux lorsqu'il s'agit d'éditer des sous-titres. L'éditeur de sous-titres est et peut être utilisé pour manipuler la durée, la fréquence d'images du fichier de sous-titres pour qu'il soit synchronisé avec le fichier multimédia, la durée des pauses entre les deux et bien plus encore. Je vais partager ici une partie de l'édition de base des sous-titres.

Installez d'abord subtitleeditor de la même manière que vous avez installé ccextractor, en utilisant votre méthode d'installation préférée. Dans Debian, vous pouvez utiliser cette commande :

sudo apt install subtitleeditor

Une fois installé, voyons quelques-uns des scénarios courants dans lesquels vous devez modifier un sous-titre.

Manipuler les fréquences d'images pour synchroniser avec le fichier multimédia

Si vous constatez que les sous-titres ne sont pas synchronisés avec la vidéo, l'une des raisons peut être la différence entre les fréquences d'images du fichier vidéo et du fichier de sous-titres.

Comment connaître les fréquences d'images de ces fichiers, alors ?

Pour obtenir la fréquence d'images d'un fichier vidéo, vous pouvez utiliser l'outil mediainfo. Vous devrez peut-être d'abord l'installer à l'aide du gestionnaire de packages de votre distribution.

L'utilisation de mediainfo est simple :

$ mediainfo somefile.mkv | grep Frame
 Format settings                          : CABAC / 4 Ref Frames
 Format settings, ReFrames                : 4 frames
 Frame rate mode                          : Constant
 Frame rate                               : 25.000 FPS
 Bits/(Pixel*Frame)                       : 0.082
 Frame rate                               : 46.875 FPS (1024 SPF)

Vous pouvez maintenant voir que la fréquence d'images du fichier vidéo est de 25 000 FPS. L'autre fréquence d'images que nous voyons concerne l'audio. Bien que je puisse expliquer pourquoi des fps particuliers sont utilisés dans l'encodage vidéo, l'encodage audio, etc., ce serait un sujet différent. Il y a beaucoup d'histoire qui lui est associée.

Ensuite, il faut connaître la fréquence d'images du fichier de sous-titres et c'est un peu compliqué.

Habituellement, la plupart des sous-titres sont au format compressé. Décompressez l'archive .zip avec le fichier de sous-titres qui se termine par quelque chose.srt. Parallèlement, il existe généralement un fichier .info portant le même nom qui peut parfois avoir la fréquence d'images du sous-titre.

Si ce n'est pas le cas, c'est généralement une bonne idée d'aller sur un site et de télécharger le sous-titre à partir d'un site qui contient ces informations sur la fréquence d'images. Pour ce fichier allemand spécifique, je vais utiliser Opensubtitle.org

Comme vous pouvez le voir dans le lien, la fréquence d'images du sous-titre est de 23,976 FPS. De toute évidence, il ne fonctionnera pas bien avec mon fichier vidéo avec une fréquence d'images de 25 000 FPS.

Dans ce cas, vous pouvez modifier la fréquence d'images du fichier de sous-titres à l'aide de l'outil Éditeur de sous-titres :

Sélectionnez tout le contenu du fichier de sous-titres en faisant CTRL+A. Allez dans Timings -> Changer la fréquence d'images et modifiez les fréquences d'images de 23,976 ips à 25 000 ips ou tout ce que vous souhaitez. Enregistrez le fichier modifié.

Modification de la position de départ d'un fichier de sous-titres

Parfois, la méthode ci-dessus peut suffire, parfois même si elle ne suffira pas.

Vous pouvez trouver des cas où le début du fichier de sous-titres est différent de celui du film ou d'un fichier multimédia alors que la fréquence d'images est identique .

Dans ce cas, procédez comme suit :

Sélectionnez tout le contenu du fichier de sous-titres en faisant CTRL+A. Allez dans Timings -> Sélectionnez Déplacer les sous-titres.

Modifiez la nouvelle position de départ du fichier de sous-titres. Enregistrez le fichier modifié.

Si vous voulez être plus précis, utilisez mpv pour voir le film ou le fichier multimédia et cliquez sur le timing, si vous cliquez sur la barre de chronométrage qui montre combien le film ou le fichier multimédia s'est écoulé, cliquer dessus révélera également le microseconde.

J'aime généralement être précis, alors j'essaie d'être aussi précis que possible. C'est très difficile en MPV car le temps de réaction humain est imprécis. Si je veux être super précis, j'utilise quelque chose comme Audacity, mais c'est un autre jeu de balle car vous pouvez en faire beaucoup plus avec. Cela pourrait également être quelque chose à explorer dans un futur article de blog.

Manipuler la durée

Parfois, même faire les deux ne suffit pas et vous devez même réduire ou ajouter la durée pour la synchroniser avec le fichier multimédia. C'est l'un des travaux les plus fastidieux car vous devez fixer individuellement la durée de chaque phrase. Cela peut arriver surtout si vous avez des fréquences d'images variables dans le fichier multimédia (de nos jours rares mais vous obtenez toujours de tels fichiers).

Dans un tel scénario, vous devrez peut-être modifier la durée manuellement et l'automatisation n'est pas possible. Le meilleur moyen est soit de réparer le fichier vidéo (ce qui n'est pas possible sans dégrader la qualité vidéo) ou d'obtenir une vidéo d'une autre source avec une qualité supérieure, puis de la transcoder avec les paramètres que vous préférez. Encore une fois, bien qu'il s'agisse d'une entreprise majeure sur laquelle je pourrais faire la lumière dans un futur article de blog.

Conclusion

Ce que j'ai partagé ci-dessus concerne plus ou moins l'amélioration des fichiers de sous-titres existants. Si vous deviez commencer un scratch, vous avez besoin de beaucoup de temps. Je n'ai pas du tout partagé cela parce qu'un film ou tout matériel vidéo d'une heure par exemple peut facilement prendre de 4 à 6 heures ou même plus selon les compétences du sous-titreur, la patience, le contexte, le jargon, les accents, l'anglais natif, traducteur, etc., tout cela fait une différence dans la qualité du sous-titre.

J'espère que vous trouverez cela intéressant et qu'à partir de maintenant, vous gérerez un peu mieux vos sous-titres. Si vous avez des suggestions à ajouter, veuillez laisser un commentaire ci-dessous.



Linux
  1. Les 10 meilleures applications d'édition multimédia pour Linux

  2. Cinelerra GG Infinity - Un logiciel de montage vidéo gratuit pour Linux

  3. Commande Linux mv

  4. Linux du command

  5. Ouvrir les sous-titres externes sur mpv sous Linux sans terminal

Meilleurs éditeurs de photos pour Linux

Modification d'images sur la ligne de commande Linux avec ImageMagick

Meilleurs outils pour prendre et éditer des captures d'écran sous Linux

Linux contre Unix

15 meilleurs logiciels de montage vidéo pour le système Linux

Quelles applications de montage vidéo sont disponibles sous Linux ?