Saltar al contenido principal
SubtitleMatrix

Convertir ASS a SSA

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

Qué cambia esta conversión

No se pierde nada en esta dirección: cada característica del formato de origen tiene un lugar al que ir en el formato de destino.

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.

ASS y SSA son dos dialectos del mismo lenguaje de scripts. El más nuevo, Advanced SubStation Alpha, se declara con ScriptType v4.00+ y guarda sus estilos en una sección V4+; el original declara v4.00 y los guarda en una sección V4. Las líneas Dialogue, los códigos de sustitución y la notación de tiempos son comunes, así que esta conversión reescribe el encabezado en lugar de traducir los subtítulos.

El trabajo está en la tabla de estilos, porque las columnas cambian entre dialectos. Se nota sobre todo en las columnas de color: V4+ separa los colores de contorno y de sombra, mientras que V4 los llama terciario y de fondo. El conversor lee tu archivo según la lista de columnas que este declara y después escribe la lista que espera el dialecto de destino, llevando cada valor a la columna correspondiente. El encabezado de la sección y el tipo de script declarado también se actualizan, porque un archivo que dice v4.00+ y usa columnas V4 es rechazado por la mayoría de los renderizadores.

Nada de tus tiempos ni de tu texto cambia, y la conversión se ejecuta por completo en tu navegador.

Ejemplos

Un archivo ASS típico convertido a SSA

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

[Script Info]
Title: Example
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,,&H00000000,0,0,1,2,2,2,10,10,10,,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,,&H00000000,-1,0,1,2,2,2,10,10,10,,1

[Events]
Format: Marked, 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: 0,0:00:21.00,0:00:24.00,Default,,0,0,0,,Top left

Aquí no se pierde nada: compara las dos columnas 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

[Script Info]
Title: Dirty sample
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,,&H00000000,-1,0,1,2,2,2,10,10,10,,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
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,,{\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.50,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\Nbreak

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

¿Qué diferencia hay entre ASS y SSA al convertir uno en otro?

La lista de columnas de la tabla de estilos, la línea del tipo de script y el encabezado de la sección de estilos. Las líneas Dialogue, los códigos de sustitución y la sintaxis de tiempos son comunes, y por eso un script puede convertirse entre dialectos sin tocar ni un solo subtítulo.

¿Sobrevive el color de contorno al convertir ASS a SSA?

Sí. La columna de contorno de V4+ y la columna terciaria de SSA guardan el mismo tipo de valor en el mismo tipo de lugar; solo cambia el nombre en la fila de encabezado. El conversor pasa una a la otra en vez de descartar cualquiera de las dos.

¿El SSA resultante se reproduce en un reproductor antiguo?

Normalmente esa es la razón para convertir en este sentido. La salida declara el tipo de script antiguo y usa la sección de estilos antigua, que es lo que esperan esos renderizadores. Un archivo nuevo cargado en un reproductor antiguo suele mostrar el diálogo pero ignora todo el estilo.

¿Se tocan los tiempos al convertir ASS a SSA?

No. Ambos dialectos escriben el tiempo en horas, minutos, segundos y centésimas, así que cada marca de tiempo se copia sin cambios y los subtítulos siguen sincronizados con el mismo video.

¿Qué pasa si mi ASS usa columnas del otro dialecto al pasar a SSA?

Se lee según la lista de columnas que declara el archivo, no por posición. Sea cual sea el orden de las columnas, los valores se emparejan con sus papeles y la salida se escribe en el orden que especifica el dialecto de destino.

Herramientas relacionadas