Synchronized Accessible Media Interchange
Les légendes de Microsoft pour Windows Media Player, depuis 1998 : du HTML avec une synchronisation avant chaque légende, et une feuille de style dont les classes sont des langues, si bien qu'un seul fichier peut en contenir plusieurs. Rarement vu ailleurs, c'est pourtant le fichier de sous-titres habituel en Corée.
En bref
| Extension | .smi |
|---|---|
| Type de média | Aucun enregistré |
| Spécification | Microsoft, Understanding SAMI 1.0 (2001, mise à jour en 2003). Ouverte, sans redevances. |
| Précision temporelle | Millisecondes |
| Encodage du texte | Non déclaré. Les anciens fichiers coréens sont surtout en CP949, les plus récents en UTF-8 ; Subtitld détecte les deux. |
| Mise en forme | Balises en ligne de HTML et CSS : italique, gras, souligné, barré, couleur, polices |
| Positionnement | Aucun sur l'image : les légendes s'affichent dans une zone à elles |
| Intervenants | Une ligne Source (ID=Source), affichée au-dessus de la légende |
| Langues | Plusieurs dans un même fichier, une classe CSS chacune |
| Dans les conteneurs | Aucun. Un fichier à côté de la vidéo, portant le même nom. |
Anatomie d'un fichier
Un document HTML : une feuille de style qui nomme les langues, puis une synchronisation pour chaque moment où les légendes changent.
<SAMI><HEAD><STYLE><!-- .KRCC {lang:ko-KR;} .ENCC {lang:en-US;} --></STYLE></HEAD><BODY> <SYNC Start=23000> <P Class=KRCC>넌 정말 못됐어. <P Class=ENCC>You're a jerk. <SYNC Start=24500> <P Class=KRCC> <P Class=ENCC>
- 1 · En-tête
La feuille de style : une classe par langue, avec son
langet unNameque les lecteurs affichent. La première classe est celle avec laquelle les lecteurs démarrent. - 2 · Synchronisation
Le moment, en millisecondes depuis le début de la vidéo.
- 3 · Légendes
Un paragraphe par langue. Chacun reste jusqu'à la synchronisation suivante qui en a un dans sa classe ;
l'efface.
Temps
Une synchronisation n'a qu'un début et rien d'autre. Une légende se termine quand commence la suivante dans sa langue, ou quand une légende vide commence ; chaque pause a donc sa propre synchronisation.
Les balises de fermeture sont facultatives. L'exemple de Microsoft ne ferme ni <P> ni <SYNC>, et les lecteurs le lisent dans les deux cas. Windows Media Player peut exiger les balises en capitales, comme les écrit l'exemple.
Styles
Le texte de SAMI est du HTML, et sa feuille de style du CSS. Une légende prend le style de P, puis celui de sa classe, puis son attribut style, puis les balises qu'elle contient.
| Écrit | Effet | Dans Subtitld |
|---|---|---|
<I>, <EM> |
Italique | Conservé |
<B>, <STRONG> |
Gras | Conservé |
<U>, <S>, <STRIKE> |
Souligné, barré | Conservés |
<FONT color="#FFD700"> |
Couleur du texte | Conservée |
color, font-style, font-weight, text-decoration |
Les mêmes, depuis la feuille de style ou un style |
Conservés |
<BR> |
Un retour à la ligne | Conservé |
<FONT face>, font-size, margin |
Police, taille, espacement | Non conservés |
<RUBY>…<RT> |
Une lecture au-dessus du texte | Le texte est conservé, sa lecture non |
Langues
Chaque classe est une langue. Les lecteurs les proposent par leur Name, affichent la première définie tant qu'on ne leur dit pas autrement, et montrent un paragraphe sans classe quelle que soit la langue. Un fichier coréen peut porter de l'anglais à côté du coréen, et le spectateur choisit.
Quand Subtitld ouvre un fichier qui en contient plusieurs, la première langue est celle des sous-titres, et chaque autre est une traduction, placée sur le sous-titre qu'elle recouvre le plus. Exporter l'original et une traduction les réécrit en deux langues, les sous-titres de la traduction n'apparaissant que là où elle en a.
Intervenants
<SYNC Start=23000>
<P Class=ENCC ID=Source>Celia
<P Class=ENCC>You're a jerk.
Un paragraphe avec ID=Source n'est pas une légende. Il nomme celui qui parle, sur une ligne au-dessus de la légende, et reste jusqu'à ce qu'un autre le remplace. Subtitld le lit comme l'intervenant de chaque légende qu'il surmonte, et l'écrit ainsi lorsqu'on le lui demande.
Les lecteurs diffèrent sur ce point. FFmpeg, et les lecteurs bâtis sur lui, affichent la ligne Source en italique au-dessus de la légende. MPlayer la fond dans la première ligne de la légende. Les noms placés avant le texte (Celia : …) se lisent partout de la même façon.
Le SAMI dans Subtitld
- Le texte et les retours à la ligne de chaque sous-titre
- Italique, gras, souligné, barré et couleur
- Les traductions, en langues à part entière
- Les intervenants, sous forme de lignes Source
- Début et fin, à la milliseconde, dans l'ordre
- L'endroit où un sous-titre se place : SAMI n'a pas de place sur l'image
- Polices, tailles et marges
- Les lectures de ruby
- Doublages, visages et couleurs des intervenants
Enregistrez un projet .usfx pour conserver ce qui est propre à Subtitld.
Ouvrir un fichier SAMI
Subtitld ouvre .smi et .sami, et :
- lit le SAMI comme les navigateurs lisent le HTML : balises en capitales ou non, fermées ou non, attributs entre guillemets ou non, synchronisations dans le désordre, texte hors paragraphe ;
- prend chaque langue : la première comme celle des sous-titres, les autres comme leurs traductions ;
- garde l'italique, le gras, le souligné, le barré et la couleur, depuis les balises comme depuis la feuille de style ;
- prend les lignes Source comme intervenants, prêts pour le doublage ;
- termine la dernière légende là où les
Metricsdu fichier indiquent que la vidéo se termine, ou au bout de quatre secondes ; - décode n'importe quel encodage, CP949 compris.
Exporter en SAMI
Exporter, puis Sous-titres et SAMI, propose :
- TexteL'original, une traduction, ou les deux en deux langues.
- Noms des intervenantsOmis, placés avant le texte (Thom : …), ou sous forme de lignes Source, la façon propre à SAMI.
- Mise en formeConservée, ou supprimée.
- Décalage des tempsChaque sous-titre plus tôt ou plus tard, du même écart.
- EncodageUTF-8, avec ou sans marque d'ordre d'octets, UTF-16, Windows-1252, ou CP949 pour les anciens lecteurs coréens.
- Fins de ligneLinux et macOS, ou Windows.
Le fichier est du SAMI 1.0 tel que l'écrit l'exemple de Microsoft, avec ses balises en capitales : une classe par langue, une synchronisation là où chaque sous-titre commence et une vide là où il se termine, et la mise en forme en <I>, <B>, <U>, <S> et <FONT color>.
Donnez au fichier le nom de la vidéo : tears-of-steel.smi à côté de tears-of-steel.mp4. Windows Media Player trouve un .smi de cette façon (pas un .sami), et la plupart des lecteurs aussi.
Anecdotes
Microsoft a publié SAMI à l'été 1998, dans le cadre de son travail d'accessibilité : des légendes sur PC, pour les personnes sourdes ou malentendantes.
La spécification de Microsoft efface une légende par une espace insécable. FFmpeg écarte toute synchronisation qui en contient une ; quand une autre langue continue, Subtitld écrit donc un paragraphe vide à la place.
Beaucoup de fichiers coréens nomment leur classe d'après le pays et non la langue : KRCC, là où les exemples de Microsoft ont ENUSCC.
Formats associés
Ouvrez-le dans Subtitld avec la vidéo et recalez-le sur la forme d'onde.