Aller au contenu principal
SubtitleMatrix

Convertir TTML en TXT

Ou collez le texte d'un sous-titre

Ce que cette conversion change

5 éléments perdus ou à décider

  • Minutage

    toute la chronologie (le format de sortie n'enregistre aucun minutage)

  • Style

    tout le style (gras, italique, couleur, contour, ombre)

  • Positionnement

    le positionnement à l'écran (chaque bloc revient à la position par défaut)

  • Sauts de ligne

    les sauts de ligne (les blocs sur plusieurs lignes seront réunis sur une seule)

  • Contenu propre au format

    le contenu que le format source garde hors de ses blocs (blocs hors sous-titres, texte d'en-tête, réglages par bloc, événements commentés) — le format cible n'a nulle part où le mettre

Ce rapport de pertes vient de la matrice de capacités de ces deux formats, pas du fichier particulier que vous avez chargé. Un fichier précis peut perdre davantage s'il utilise des fonctionnalités que le format autorise mais que la matrice ne modélise pas.

Cette page convertit un fichier TTML en texte brut. Les éléments <p> sont démontés : chaque ligne de texte atterrit sur sa propre ligne, les balises <span> et <br/> sont retirées, et il ne reste que les mots. C’est la sortie adaptée à la relecture, à la traduction ou à la réutilisation dans un document.

Le TXT ne contient aucun minutage : les attributs begin et end, les timecodes en images et les durées disparaissent. Il ne contient pas non plus de style ni de position, donc les tables <style> et <layout>, les couleurs et les régions n’ont aucun endroit où aller. C’est la conversion la plus réductrice de cette famille.

Un paragraphe de deux lignes donne deux lignes de texte consécutives, et la notion de bloc partagé est perdue : c’est la perte de structure de lignes signalée par le rapport. Les entités XML restent telles qu’elles sont écrites dans le texte. Le traitement reste local.

Exemples

Un fichier TTML typique, converti en TXT

Entrée

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
  <head>
    <styling>
      <style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
    </styling>
    <layout>
      <region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
    </layout>
  </head>
  <body>
    <div>
      <p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
      <p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
    </div>
  </body>
</tt>

Sortie

Hello there.
How are you?
Fine, thanks.

Les balises en ligne sont retirées et le paragraphe de deux lignes donne deux lignes de texte, sans aucun horodatage.

La même conversion sur une entrée abîmée

Entrée

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
    ttp:frameRate="25" xml:lang="en">
  <body>
    <div>
      <p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
      <p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
      <p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
      <p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom &amp; Jerry.</p>
    </div>
  </body>
</tt>

Sortie

Loaded from an offset and a duration.
A coarser clock spelling.
Frames, at 25fps.
Half-open and Tom &amp; Jerry.

Les offsets et durées ne laissent aucune trace ; le texte reste dans l’ordre du document et les entités sont conservées telles quelles.

Questions fréquentes

Que reste-t-il d’un fichier TTML dans le TXT ?

Uniquement les mots. Les paragraphes sont démontés en lignes de texte, les balises de mise en forme et les sauts de ligne XML sont retirés, et aucun horodatage n’est conservé. Le résultat se lit partout, mais ne peut plus servir de sous-titres tel quel.

Que deviennent les timecodes et les frames du TTML ?

Ils sont supprimés. Le TXT n’a pas de champ temporel et n’essaie pas de convertir les heures ou les images en une autre notation. La conversion perd donc tout le minutage, y compris les valeurs calculées avec ttp:frameRate.

Comment un paragraphe de deux lignes est-il écrit ?

Ses deux lignes deviennent deux lignes consécutives du TXT. L’information selon laquelle elles appartenaient au même paragraphe et s’affichaient ensemble est perdue : c’est la perte de structure de lignes, distincte de la perte de temps.

Les styles en ligne sont-ils supprimés ou recopiés ?

Ils sont supprimés : le TXT ne garde que le texte visible. Un mot en italique ou en couleur ressort comme un mot ordinaire, et les balises <i> ou <font> ne sont pas écrites. Le rendu final est donc neutre, sans indication de la mise en forme d’origine.

Les entités XML apparaissent-elles dans le TXT ?

Elles restent telles qu’elles sont écrites dans le texte source. Un &amp; du TTML se retrouve donc littéralement dans le TXT, plutôt que d’être transformé en esperluette. Ce comportement est cohérent avec les autres conversions de cette famille.

Le TXT a-t-il besoin de l’attribut end d’un paragraphe TTML ?

Non. La question ne se pose plus : le TXT ne conserve aucun temps. Le paragraphe livre simplement son texte, ligne par ligne. C’est la seule conversion TTML où l’absence de fin n’a aucun effet sur la sortie.

Outils associés