Convertir SMI a TTML
O pega el texto de los subtítulos
Qué cambia esta conversión
1 cosa se descarta o requiere una decisión
- Contenido específico del formato
contenido que el formato de origen guarda fuera de sus bloques (bloques que no son cue, texto de cabecera, ajustes por bloque, eventos comentados): el formato de destino no tiene sitio para él
Esta lista proviene de la matriz de capacidades de estos dos formatos, no del archivo concreto que has cargado. Un archivo específico puede perder más si usa características que el formato permite pero que la matriz no modela.
Esta página convierte un archivo SAMI (SMI) en TTML. Arrastra el archivo o pega el texto y obtienes el documento XML; la conversión se ejecuta por completo en el navegador, sin subir nada ni registrarte.
Se pierde una sola cosa: el contenido propio de SAMI. El bloque <STYLE> de la cabecera, con CSS para los párrafos, la etiqueta <TITLE>, los atributos Class=ENCC y los bloques <P> que vaciaban la pantalla no forman parte del modelo de bloques y no tienen representación en TTML; el informe de pérdidas de arriba los cuenta. Todo lo demás se conserva: cada bloque pasa a ser un elemento <p> con begin y end, un <br> se convierte en <br/>, los tiempos quedan al milisegundo (Start=4126 es 00:00:04.126) y el orden se respeta.
Un archivo o una temporada: la cola procesa en orden y entrega los resultados en un solo ZIP.
Ejemplos
Un archivo SMI típico convertido a TTML
Entrada
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
Resultado
<?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:03.000">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000">How are you?<br/>Fine, thanks.</p> </body>
</tt>
En esta salida se pierde: contenido propio del formato. Todo lo demás coincide línea por línea.
La misma conversión con una entrada difícil
Entrada
<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
Resultado
<?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:02.500" end="00:00:09.000">Line one<br/>Line two</p>
<p begin="00:00:09.000" end="00:00:12.000">Tom & Jerry</p> </body>
</tt>
Es el tipo de daño que traen los archivos reales: finales de línea mezclados, espacios sueltos, campos vacíos. Compáralo con el ejemplo limpio de arriba para ver qué perdona el analizador.
Preguntas frecuentes
¿Qué pasa con el bloque STYLE, el TITLE y los Class de SAMI al convertir a TTML?
No se escriben: el modelo de bloques guarda tiempos, líneas y estilos en línea, y el <STYLE> con CSS, el <TITLE> y los atributos Class=ENCC son metadatos del documento SAMI. TTML tiene su propia estructura de estilos, pero no es un equivalente de esas declaraciones, así que se descartan y se cuentan como contenido propio del formato perdido.
¿Cómo se ve la salida cuando un SMI se convierte en TTML?
Como TTML: sin números de bloque. Cada subtítulo es un elemento <p> con atributos begin y end, anidado en un <body> (y normalmente en un <div>), con una declaración XML encima del documento. Cada bloque SMI se convierte en un bloque TTML, en el mismo orden y con el mismo texto.
¿Son exactos los tiempos de SMI en el archivo TTML?
Sí, al milisegundo, que es el máximo detalle de ambos formatos. SAMI escribe un instante como Start=4126 y TTML lo escribe como 00:00:04.126; no hay redondeo ni desplazamiento entre los dos, y un bloque que estaba en pantalla 2,5 s sigue estándolo.
¿Qué ocurre con un bloque SMI de dos líneas al pasar a TTML?
El <br> del SAMI se escribe como <br/>, que es como TTML representa un salto de línea duro. La pareja se mantiene: lo que SAMI mostraba en dos líneas sigue siendo un solo subtítulo en la salida TTML y el reproductor las muestra juntas.
¿Se conserva el orden de los bloques SMI en la salida TTML?
Sí, y de paso se ordenan por hora de inicio: primero el más temprano, que es lo que esperan todos los formatos de este sitio y cómo los leen los reproductores. Si tu archivo SAMI traía los bloques desordenados, la salida TTML los devuelve al orden; es un cambio en la estructura del archivo, no en su contenido, y es deliberado.
¿Puedo convertir el TTML resultante de vuelta a SAMI?
Sí, y esa dirección tiene su propia lista: al convertir TTML a SMI se pierden la posición y el contenido propio del formato. Esa lista es distinta de la de arriba porque los dos formatos guardan cosas diferentes.
¿La salida TTML mantiene la codificación del archivo SMI?
No: la salida es UTF-8, con finales de línea Unix y sin marca de orden de bytes, sea cual sea la codificación del archivo SMI. Un archivo que llega en UTF-16 o en una codificación mono byte de Windows se decodifica al entrar (el panel de resultados lo indica cuando ocurre); lo que sale es siempre el mismo TTML en UTF-8.