Convertir VTT en TTML
Ou collez le texte d'un sous-titre
Ce que cette conversion change
1 élément perdu ou à décider
- 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 WebVTT en TTML. Chaque bloc devient un élément p avec des attributs begin et end, imbriqué dans un body et souvent un div, sous une déclaration XML. Aucun numéro de bloc n'apparaît : la structure remplace le compteur.
Les deux formats ne conservent pas les mêmes choses : les constructions propres au WebVTT n'ont pas de place dans le TTML. L'en-tête, les blocs NOTE, STYLE et REGION et les réglages comme align ou position sont écartés, alors que les blocs eux-mêmes, texte, temps et balises, passent entiers et que le TTML dispose d'un vocabulaire de styles et de régions plus large.
Un fichier ou une saison entière, traité dans le navigateur, avec un seul ZIP à la fin.
Exemples
Un fichier VTT typique, converti en TTML
Entrée
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
Sortie
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there.</p>
<p begin="00:00:04.500" end="00:00:08.000">Second line with <span tts:fontStyle="italic">italics</span>.</p> </body>
</tt>
La seule perte annoncée est le contenu propre au VTT : le texte se compare ligne par ligne.
La même conversion sur une entrée mal formée
Entrée
a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.
Sortie
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:02.000">No header, two lines before the timecode.</p> </body>
</tt>
C'est le genre de dégâts que portent les vrais fichiers : fins de ligne mélangées, espaces parasites, champs vides. Comparez avec l'exemple propre ci-dessus pour voir ce que l'analyseur pardonne.
Questions fréquentes
Que deviennent les blocs NOTE, STYLE et REGION d'un VTT dans le TTML ?
Ils sont écartés : le TTML range ses styles et ses régions dans son propre vocabulaire, pas dans des blocs NOTE ou STYLE du WebVTT. L'en-tête et les réglages align ou position suivent le même chemin ; le texte et les temps des blocs passent entiers.
À quoi ressemble la sortie quand un VTT devient un TTML ?
À du TTML : pas de numéros, chaque sous-titre est un élément p avec begin et end, dans un body et souvent un div, sous une déclaration XML. Chaque bloc VTT donne un p, dans le même ordre.
Les temps du VTT restent-ils exacts dans le TTML ?
Oui, à la milliseconde : le WebVTT et le TTML écrivent tous deux 00:00:04.126, donc les codes temporels sortent caractère pour caractère comme ils sont entrés.
Comment un bloc VTT de deux lignes sort-il en TTML ?
Deux lignes séparées par un élément br, qui est la façon dont le TTML écrit un saut de ligne dur. La paire reste un seul élément p, donc un seul sous-titre.
Les blocs VTT gardent-ils leur ordre dans le TTML ?
Oui, triés par début croissant : les éléments p se suivent dans l'ordre chronologique, ce qui correspond aussi à l'ordre attendu par les lecteurs TTML.
Que perd le retour TTML vers VTT ?
Le retour a sa propre liste : le style, le positionnement et les constructions propres au TTML. Le WebVTT a des réglages de position et un bloc STYLE, mais pas les régions ni la feuille de style du TTML, donc une partie ne revient pas.
Le fichier TTML produit est-il un XML bien formé ?
Oui : le document s'ouvre sur une déclaration XML et ferme tous ses éléments. Il est écrit en UTF-8, avec des fins de ligne Unix et sans BOM, quel que soit l'encodage du VTT d'origine.