Convertir SMI a ASS
O pega el texto de los subtítulos
Qué cambia esta conversión
2 cosas se descartan o requieren una decisión
- Precisión
la precisión de los tiempos: el reloj del resultado es más grueso, así que cada marca de tiempo se redondea al 10 ms más cercano
- 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 ASS. Arrastra el archivo o pega el texto y descargas la versión ASS; la conversión se ejecuta entera en el navegador, sin subir nada y sin cuenta.
En esta dirección se pierden dos cosas. La primera es la precisión: SMI guarda un instante al milisegundo (Start=4126) y ASS solo llega a las centésimas (0:00:04.13), así que cada marca se redondea a los 10 ms más cercanos y ningún bloque se mueve más de 5 ms. La segunda es el contenido propio de SAMI: el bloque <STYLE> de la cabecera, la etiqueta <TITLE>, el atributo Class=ENCC de cada párrafo y los bloques <P> que vaciaban la pantalla no forman parte del modelo de bloques y se descartan; están en el informe de pérdidas de arriba. El texto, las líneas y el orden sobreviven.
Un archivo va bien y una temporada completa también: la cola los procesa en orden y los resultados se descargan juntos en un solo ZIP.
Ejemplos
Un archivo SMI típico convertido a ASS
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
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.
En esta salida se pierden: precisión y 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
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:02.50,0:00:09.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Tom & Jerry
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
¿Por qué cambian las marcas de tiempo al convertir SAMI a ASS?
ASS guarda el tiempo como 0:00:04.13 y SAMI como Start=4126: centésimas frente a milésimas. Por eso cada marca se redondea a los 10 ms más cercanos y 00:00:04,126 sale como 4,13 s. Nada se estira ni se reordena, y ningún bloque se mueve más de 5 ms; si vas a alinear estos subtítulos con otro archivo, ese es el único punto donde la conversión deja de ser exacta.
¿Qué ocurre con el bloque STYLE, el TITLE y los atributos Class de SAMI en ASS?
Nada de eso forma parte del modelo de bloques: el <STYLE> de la cabecera guarda CSS para los párrafos, el <TITLE> es un título del documento y Class=ENCC apunta un párrafo a una de esas reglas. ASS tiene su propia sección de estilos, pero no es un equivalente de esas declaraciones, así que se descartan y aparecen como contenido propio del formato en el informe de pérdidas. Las etiquetas en línea del texto sí sobreviven.
¿Cómo se ve la salida cuando un archivo SAMI se convierte en ASS?
Como ASS: sin números de bloque. Cada subtítulo es una línea Dialogue: dentro de la sección [Events], con un campo de capa donde SRT pone el número. Cada bloque SMI se convierte en un bloque ASS, en el mismo orden y con el mismo texto.
¿Qué pasa con un bloque SMI de dos líneas al convertirlo en ASS?
El <br> del SAMI se escribe como \N, que es como ASS 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 ASS y el reproductor las muestra juntas.
¿Se conserva el orden de los bloques SMI en la salida ASS?
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 ASS los devuelve al orden; es un cambio en la estructura del archivo, no en su contenido, y es deliberado.
¿Puedo convertir el ASS resultante de vuelta a SAMI?
Sí, y esa dirección tiene su propia lista: al convertir ASS a SMI se pierden estilos, posiciones, karaoke y contenido propio del formato. Esa lista es distinta de la de arriba porque los dos formatos guardan cosas diferentes.
¿La salida ASS 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 ASS en UTF-8.