Saltar al contenido principal
SubtitleMatrix

Convertir SRT a ASS

O pega el texto de los subtítulos

Qué cambia esta conversión

1 cosa se descarta o requiere 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

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 reescribe un archivo SRT como un script de Advanced SubStation Alpha. Los dos formatos no entienden lo mismo por subtítulo: el SRT es una lista de cues con marcas de tiempo, mientras que el ASS es un script con cabecera, tabla de estilos y líneas Dialogue. Por eso cada cue pasa a ser una línea Dialogue apuntada a un único estilo, y los tiempos se reescriben en notación ASS —0:00:01.00 en lugar de 00:00:01,000— porque el ASS cuenta centésimas de segundo donde el SRT cuenta milisegundos. La única pérdida es la precisión: todo lo demás llega intacto.

El formato no se pega, se traduce. Un tramo en cursiva se convierte en un código de sustitución ASS que se activa al inicio del tramo y se desactiva al final, y lo mismo ocurre con la negrita. Un salto de línea dentro de un cue se convierte en el código de salto de línea de ASS, así que dos líneas siguen siendo dos líneas dentro de un mismo evento en vez de dos cues contiguos. Lo que el SRT no puede expresar —una tipografía, una posición, un borde— no se inventa por ti: obtienes un script limpio con un único estilo utilizable, listo para reestilizar en cualquier editor ASS.

Un archivo o una temporada completa, sin calcular la velocidad de fotogramas (los dos formatos guardan tiempo de reloj) y sin que nada salga de tu equipo.

Ejemplos

Un archivo SRT típico convertido a ASS

Entrada

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

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.50,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,{\i1}Whispering{\i0} now.\NAnd a second line.
Dialogue: 0,0:00:06.00,0:00:09.25,Default,,0,0,0,,{\b1}Bold{\b0} statement.

En esta salida se pierde la precisión. Todo lo demás coincide línea por línea.

La misma conversión con una entrada problemática

Entrada

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

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.50,Default,,0,0,0,,{\b1}Bold{\b0} and {\i1}italic{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,
Dialogue: 0,0:00:08.00,0:00:09.00,Default,,0,0,0,,Last one.

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é la conversión de SRT a ASS añade una tabla de estilos que no pedí?

Porque en ASS no existe un cue sin estilo. Cada línea Dialogue apunta a un estilo, así que el script tiene que declarar al menos uno. El conversor crea un único estilo llamado Default —Arial, tamaño 20, blanco con contorno oscuro— y dirige a él todas las líneas. Cambia esa fila de la cabecera y cambia el archivo entero.

¿Qué significa el número que va después del punto decimal al convertir SRT a ASS?

Centésimas de segundo. El ASS guarda el tiempo con precisión de centésimas, así que un inicio en 00:00:01,250 del SRT se escribe 0:00:01.25. Es la resolución más fina que tiene el formato, y tu archivo tampoco traía nada más fino.

¿Cómo pasan las etiquetas de cursiva y negrita de SRT a ASS?

Como estilo ASS real. Un tramo en cursiva se convierte en un código de cursiva que envuelve ese tramo, y la negrita en un código de negrita. Un editor ASS las mostrará como estilo y no como marcado sobrante, que es la diferencia entre un script que se abre limpio y otro que se abre lleno de caracteres sueltos.

¿Se conserva un salto de línea duro de un cue de SRT en el archivo ASS?

Sí, como el código de salto de línea de ASS. Dos líneas dentro de un cue del SRT siguen siendo dos líneas dentro de un único evento Dialogue, de modo que el tiempo de la segunda línea sigue siendo el tiempo del cue.

¿La salida de SRT a ASS sigue sincronizada con el mismo video?

Sí. Aquí nada desplaza ni reescala el tiempo. El primer cue empieza en el mismo momento y el último termina en el mismo momento; solo ha cambiado lo que rodea a las palabras.

Herramientas relacionadas