Qu’est-ce que Timed Text Markup Language ?
Timed Text Markup Language (TTML) est un format du W3C fondé sur XML pour les sous-titres d’accessibilité et les sous-titres. Il représente la synchronisation du texte, sa mise en page, son style et son placement dans des régions associées aux médias.
Fonctionnement de Timed Text Markup Language
TTML modélise un document de texte synchronisé sous forme de XML avec espaces de noms : un élément racine tt dont l’élément head contient les déclarations de style et de mise en page, et dont l’élément body contient les éléments de contenu div, p et span qui y font référence. Ces éléments peuvent porter les attributs begin, end et dur et se comportent par défaut comme des conteneurs temporels parallèles. Les temps d’un élément enfant sont donc des décalages par rapport au début de son ancêtre temporisé le plus proche. Les régions définissent les zones dans lesquelles le contenu est disposé. Comme le langage complet est vaste, les profils déclarent les fonctionnalités qu’un document peut utiliser et qu’un processeur doit prendre en charge ; IMSC définit un profil texte et un profil image de TTML2 pour la diffusion de sous-titres et de sous-titres d’accessibilité. Le W3C décrit TTML comme un format d’échange entre systèmes de création qui peut aussi servir directement à la distribution.
Points clés
- Les attributs
begin,endetdurd’un élément imbriqué sont mesurés à partir du début de son conteneur temporel ancêtre le plus proche, parallèle par défaut, et non à partir du début du média. Un élémentdivavecbegin="10s"décale donc de dix secondes chaque paragraphe qu’il contient, et un convertisseur qui ne lit que les attributs propres à chaque paragraphe place ces sous-titres trop tôt. - Les expressions temporelles qui comptent les images dépendent de l’attribut
ttp:frameRatede l’élément racine. En son absence, TTML2 utilise une fréquence définie par l’application ou, à défaut, 30 images par seconde. Un fichier créé à 25 images par seconde sans cet attribut est donc mal synchronisé ; IMSC exige cet attribut dès que des temps exprimés en images sont utilisés. - Les profils restreignent le langage, si bien qu’un document TTML2 valide peut tout de même être rejeté en aval. IMSC définit des profils texte et image distincts et interdit totalement certaines fonctionnalités de TTML2. HLS n’accepte TTML que sous la forme IMSC1 : le projet actuel de spécification HLS exige que les segments de sous-titres IMSC soient en MP4 fragmenté conforme au profil texte IMSC1, signalé par un identifiant
CODECStel questpp.ttml.im1t. - La documentation MDN indique que l’élément HTML
trackaccepte des fichiers WebVTT (.vtt). Prévoyez donc de convertir TTML ou d’en effectuer le rendu par script pour la lecture dans un navigateur. Les lecteurs qui prennent en charge TTML effectuent eux-mêmes ce travail : hls.js, par exemple, analyse le contenu IMSC1 des segments MP4 fragmentés et transforme chaque élément temporisé en objet de sous-titre WebVTT.
Quand Timed Text Markup Language est utile
Choisissez TTML lorsqu’un système de télédiffusion, un lecteur ou un flux de travail de diffusion en streaming l’exige et prend en charge le profil nécessaire. La lecture dans un navigateur privilégie souvent WebVTT ; la diffusion directe de TTML peut donc nécessiter une conversion ou une prise en charge propre au lecteur.
Comment Transloadit vous aide avec Timed Text Markup Language
Les Robots de Transloadit dédiés aux sous-titres gèrent SRT et WebVTT en entrée comme en sortie d’un flux de travail : /video/subtitle accepte en entrée des fichiers de sous-titres SRT, VTT et ASS, ainsi que du JSON horodaté issu du Robot /speech/transcribe avec le paramètre format défini sur json, tandis que /speech/transcribe peut produire des fichiers de sous-titres srt ou webvtt.
Le tableau des formats audio/vidéo indique que ttml est disponible en écriture uniquement, et non en lecture, sur les piles FFmpeg. Convertissez donc les sources TTML en SRT ou WebVTT avant ces Steps.
- Robot de sous-titrage vidéo
- Robot de transcription de la parole : paramètre format
- Formats audio/vidéo par pile FFmpeg
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- W3C : Timed Text Markup Language 2 (TTML2)
- W3C : profils TTML pour les sous-titres et sous-titres d’accessibilité des médias sur Internet, version 1.2 (IMSC 1.2)
- MDN : l’élément track (intégrer une piste de texte)
- Projet de l’IETF : HTTP Live Streaming, édition 2, section 3.1.5 sur les sous-titres IMSC
- Apple : spécification de création HLS pour les appareils Apple (exigences relatives aux sous-titres)
- hls.js v1.6.13 : src/utils/imsc1-ttml-parser.ts