Universal Subtitle Format
Le format de sous-titres XML de l'époque de Matroska : des styles nommés, plusieurs langues dans un même fichier, et de la place pour d'autres usages. Peu de lecteurs l'ont adopté, mais il contient tout ce que Subtitld conserve, alors Subtitld enregistre ses projets dedans.
En bref
| Extension | .usf |
|---|---|
| Type de média | text/xml |
| Spécification | USF 1.1, un projet de CoreCodec (2010), toujours en ligne chez Titlevision |
| Précision temporelle | Millisecondes |
| Encodage du texte | Déclaré dans le XML. UTF-8, sauf indication contraire. |
| Style | Styles nommés, et <i>, <b>, <u> et <font> dans le texte |
| Positionnement | Neuf emplacements et marges, pour un style ou un texte |
| Locuteurs | Un speaker sur chaque texte |
| Langues | Plusieurs dans un même fichier, un bloc <subtitles> pour chacune, par code ISO 639-2 |
| Dans les conteneurs | Matroska sous la forme S_TEXT/USF |
Anatomie d'un fichier
Un document XML : un en-tête de métadonnées et de styles, puis un bloc de sous-titres pour chaque langue.
<USFSubtitles version="1.0"> <metadata>…</metadata> <styles>…</styles> <subtitles> <language code="por"> Portuguese (Brazil) </language> <subtitle start="00:00:01.000" stop="00:00:02.500"> <text>Olá!</text> </subtitle> </subtitles> </USFSubtitles>
- 1 · Racine
<USFSubtitles>, avec la version d'USF qu'il suit. - 2 · En-tête
Le titre, les auteurs et la langue ; les styles nommés que peuvent utiliser les sous-titres.
- 3 · Langue
Un bloc
<subtitles>pour chaque langue, par son code ISO 639-2. - 4 · Sous-titre
Son début, sa fin (ou sa durée) et son texte.
Temps
Les secondes seules suffisent. 100 vaut 00:01:40.000, et 1.5 une seconde et demie. Un sous-titre peut donner sa duration au lieu de sa stop.
Texte
Le texte d'USF est un sous-ensemble de XHTML : balises en minuscules, correctement imbriquées, <br/> fermé.
| Élément | Effet | Dans Subtitld |
|---|---|---|
<i>, <b>, <u> |
Italique, gras, souligné | Conservé |
<font color="#00FF0000"> |
Une couleur, et une police, une taille, un contour ou une ombre | La couleur conservée |
<br/> |
Un saut de ligne | Conservé |
<s> |
Barré : sur la liste des projets d'USF, pas dans la spécification | Écrit pour le barré ; d'autres outils peuvent afficher le texte en clair |
<karaoke>, <k t="250"/> |
Synchronisation karaoké | Le texte conservé |
<image>, <shape> |
Images et dessins | Non conservés |
La transparence vient en premier, et se compte à l'envers. Les couleurs d'USF sont #AARRGGBB, avec 00 pour opaque et FF pour transparent. #00FF0000 est du rouge plein ; #FF0000, sans transparence, l'est aussi.
Styles et emplacements
<style name="Narrator">
<fontstyle italic="yes"/>
<position alignment="TopCenter"/>
</style>
Un texte utilise un style par son nom, <text style="Narrator">, et prend sa police, sa couleur, son italique, son graisse et son soulignement, ainsi que son emplacement : l'un des neuf, de TopLeft à BottomRight. Un style nommé Default restyle chaque sous-titre, donc Subtitld n'en écrit aucun, et les lecteurs gardent leur propre apparence.
Langues
Chaque langue a son propre bloc <subtitles>, nommé par son code ISO 639-2 : eng, fre, ger, por. Un code peut désigner plus d'une langue telle que Subtitld les connaît, alors Subtitld écrit aussi le nom de chaque langue dans l'élément, et lit por comme portugais du Brésil ou du Portugal grâce à ce nom.
<language code="por">
Portuguese (Brazil)
</language>
USF dans Subtitld
Les projets de Subtitld sont en USF. Un projet .usfx est un USF accompagné de ce qu'il lui faut à côté, la vidéo, les voix et les doublages, dans un seul fichier.
- Le texte, la mise en forme et l'emplacement de chaque sous-titre
- Les traductions, un bloc chacune
- Les locuteurs, avec leurs couleurs, et leurs images si on le demande
- Les doublages et leurs voix, les clips eux-mêmes si on le demande
- Début et fin, à la milliseconde
- Polices, tailles, contours et ombres, ligne par ligne
- Images, dessins et synchronisation karaoké
- Effets
Ce que Subtitld ajoute, les autres outils le laissent intact.
Ouvrir un fichier USF
Subtitld lit ce qu'il écrit lui-même et ce que font les autres outils :
- l'encodage que déclare le XML ;
- l'italique, le gras, le soulignement, la couleur et l'emplacement du style nommé qu'utilise un texte ;
<font>avecitalic,boldouunderline, comme certains outils l'écrivent ;- une
durationà la place d'unstopabsent, et des temps en secondes seules ; - plusieurs textes dans un sous-titre, comme ses lignes ;
- le bloc de chaque langue apparié au premier selon l'heure, si bien que les blocs n'ont pas besoin de contenir le même nombre de sous-titres ;
- les codes ISO 639-2 et les noms des langues, ainsi que les codes qu'écrivaient les anciennes versions de Subtitld.
Un fichier qui n'est pas du USF le dit, et n'ouvre rien.
Enregistrer en USF
USF conserve tout le projet, donc Exporter, puis Sous-titres et USF, ne demande que ce qu'il faut mettre à l'intérieur :
- Intégrer les images des locuteursLa photo de chaque locuteur, en base64, dans son style.
- Intégrer les clips audioLe clip de chaque doublage, en base64, dans son sous-titre.
Le fichier est en UTF-8, ses langues par code ISO 639-2 et par nom, avec un titre, qu'USF exige, et sans style Default.
Anecdotes
USF est sorti pour la première fois en novembre 2002, projet de CoreCodec conçu comme une alternative XML à Advanced SubStation Alpha.
La dernière version, de novembre 2010. Sa spécification mentionne encore <s> parmi ses projets.
À partir de la version 0.9, VLC affiche le texte et les temps d'USF, avec un peu de sa mise en forme, comme le fait VSFilter.
Formats associés
-
.ttmlTimed Text Markup Language
-
.assAdvanced SubStation Alpha
-
.smiSynchronized Accessible Media Interchange
Ouvrez-le dans Subtitld avec la vidéo et recalez-le sur la forme d'onde.