Convertir ASS a SRT
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 timecodeResultado
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.