Saltar al contenido principal
SubtitleMatrix

Convertir ASS a SRT

Conversión de formatosAdvanced SubStation Alpha (ASS)
O pega el texto de los subtítulos

Qué cambia esta conversión

4 cosas se descartan o requieren una decisión

  • Estilo

    todo el estilo (negrita, cursiva, color, contorno, sombra)

  • Posición

    la posición en pantalla (cada bloque vuelve a la posición predeterminada)

  • Karaoke

    la sincronización karaoke (resaltado por sílaba)

  • 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 script Advanced SubStation Alpha en SRT simple. La línea de tiempo se conserva, reescrita de la notación de ASS (0:00:01.00) a la de SRT (00:00:01,000), y también se conservan las palabras. Del estilo sobrevive solo lo que SRT sabe expresar: un tramo en cursiva sale como etiqueta de cursiva y uno en negrita, como etiqueta de negrita.

Todo lo que el script dice sobre el dibujo se queda sin destino. La posición en pantalla, la fuente, el contorno, la sombra y el tiempo por sílaba del karaoke son instrucciones para un renderizador, y SRT no tiene renderizador al que instruir. Por eso se descartan en vez de colarse en el texto como marcado falso, y cada una aparece listada debajo del cuadro de archivo para que el costo se vea antes de convertir. En total se pierden cuatro cosas: los estilos, el posicionamiento en pantalla, el karaoke y las construcciones que quedan fuera del modelo de cue.

Una temporada entera no es problema: los archivos se procesan de uno en uno, la ejecución puede cancelarse a mitad de camino y todo se descarga en un único ZIP. La conversión ocurre en tu navegador, así que el script nunca se sube.

Ejemplos

Un archivo ASS típico convertido a SRT

Entrada

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Resultado

1
00:00:01,000 --> 00:00:04,000
Hello there.

2
00:00:05,000 --> 00:00:08,500
<i>Italic</i> and <b>bold</b> text.

3
00:00:09,000 --> 00:00:12,000
Positioned

4
00:00:13,000 --> 00:00:16,000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>

5
00:00:17,000 --> 00:00:20,000
Line one
Line two

6
00:00:21,000 --> 00:00:24,000
Top left

En esta salida se pierden: estilos, posicionamiento, karaoke 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

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Resultado

1
00:00:01,000 --> 00:00:04,000
Hello, world

2
00:00:05,000 --> 00:00:08,000
{\fad(300,300)}Unmodelled override

3
00:00:09,000 --> 00:00:12,000
Both, wrong order

4
00:00:13,000 --> 00:00:16,500
One decimal centisecond

5
00:00:17,000 --> 00:00:20,000
Soft
break

Este 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

¿Dónde quedó el posicionamiento al convertir ASS a SRT?

SRT no tiene forma de colocar un subtítulo en un punto concreto de la pantalla: es el reproductor quien decide dónde aparece. Una línea que llevaba una posición explícita sale como un subtítulo normal, y las coordenadas no pueden aparecer en la salida. Es una de las partidas del listado que hay sobre el cuadro de archivo.

¿Qué pasó con el karaoke al convertir ASS a SRT?

El karaoke por sílaba es una instrucción de tiempo, no texto, y SRT no tiene una instrucción equivalente. Las sílabas se conservan, marcadas para que puedas encontrarlas, pero las duraciones que las encendían una tras otra se pierden: SRT muestra el subtítulo entero de una vez.

¿Cómo se convierten los códigos de tiempo de ASS a SRT?

ASS escribe horas, minutos, segundos y centésimas; SRT escribe horas, minutos, segundos y milésimas. Las centésimas se multiplican por diez y cambia el separador, así que la línea de tiempo se conserva hasta la centésima de segundo, con la precisión con que la guardaba el original.

¿Qué ocurre con los estilos del script al pasar a SRT?

Se leen, y lo que SRT puede expresar se traslada: la cursiva y la negrita que activa el estilo de un subtítulo se convierten en etiquetas en la salida. Todo lo demás que lleva un estilo (fuente, tamaño, colores, contorno, márgenes) se descarta, porque en SRT no hay dónde ponerlo.

¿Importa que mi script ASS use varios estilos al convertirlo a SRT?

No. Cada línea Dialogue se lee por separado y el estilo al que remite se busca para esa línea, así que un script con una docena de estilos se convierte igual que uno con un solo estilo.

Herramientas relacionadas