Convertir ASS a LRC
O pega el texto de los subtítulos
Qué cambia esta conversión
5 cosas se descartan o requieren una decisión
- Tiempos
las horas de fin de los bloques (el formato de salida solo registra cuándo empieza un bloque)
- 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 ASS a LRC. Suelta un archivo o pega el texto y recuperas la versión LRC. La conversión se ejecuta por completo en tu navegador, así que no se sube nada y no hace falta cuenta.
Estos dos formatos no guardan las mismas cosas, y la diferencia no es cosmética: el tiempo, los estilos, el posicionamiento, el karaoke y el contenido propio del formato no tienen dónde ir en LRC. El listado que aparece arriba sale de lo que cada formato puede expresar, no de tu archivo, así que la respuesta es la misma antes de cargar nada.
Un archivo está bien, y una temporada entera también: la cola los procesa en orden y los resultados se descargan juntos en un único ZIP.
Ejemplos
Un archivo ASS típico convertido a LRC
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
[ti:Example]
[00:01.00]Hello there.
[00:05.00]Italic and bold text.
[00:09.00]Positioned
[00:13.00]karaoke
[00:17.00]Line one
[00:17.00]Line two
[00:21.00]Top left
En esta salida se pierden: tiempo, 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
[ti:Dirty sample]
[00:01.00]Hello, world
[00:05.00]{\fad(300,300)}Unmodelled override
[00:09.00]Both, wrong order
[00:13.00]One decimal centisecond
[00:17.00]Soft
[00:17.00]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
¿Qué pasa con el tiempo de fin de cada subtítulo ASS en LRC?
LRC registra cuándo empieza una línea y nada más: un reproductor de letras mantiene la línea hasta que empieza la siguiente, así que un tiempo de fin sería redundante. Cada fin se descarta y cada inicio de ASS queda intacto.
¿Qué pasa con la negrita, la cursiva y el color de ASS en LRC?
LRC no guarda ningún tipo de estilo, así que se va todo: una etiqueta de sustitución como {\i1} escrita en el texto del evento, o un color que venía de la tabla [V4+ Styles]; nada tiene dónde aterrizar y cada línea se escribe como texto plano. Las palabras no se tocan.
¿Qué pasa con la posición en pantalla al convertir ASS a LRC?
LRC no puede decir dónde se dibuja un subtítulo, así que los códigos \pos, \an y \move se descartan al salir de ASS y cada subtítulo vuelve a la posición por defecto que elige el reproductor: el borde inferior del cuadro y centrado, en la mayoría de los casos.
¿Qué ocurre con el karaoke al convertir ASS a LRC?
El tiempo se va; las palabras quedan. El karaoke vive en los códigos \k, \kf y \ko que lleva un evento ASS, que marcan cuándo se enciende cada sílaba, y LRC no tiene forma de registrar un instante dentro de una línea, así que las marcas desaparecen y las sílabas llegan como texto LRC normal.
¿Qué pasa con el bloque [Script Info] del ASS cuando el archivo se vuelve LRC?
Cada línea Dialogue del script ASS se convierte en una línea de letra, y el título pasa como etiqueta [ti:]. Todo lo demás se va: la tabla de estilos, las claves restantes de [Script Info], las líneas Comment y lo incrustado en [Fonts] o [Graphics]. LRC no tiene concepto de script, solo de líneas y de cuándo empiezan.
¿Cómo es el LRC que sale de un archivo ASS?
Como LRC: sin números de subtítulo, cada línea lleva su propia marca de tiempo entre corchetes. Cada subtítulo ASS se convierte en un subtítulo LRC, en el mismo orden y con el mismo texto.
¿Cómo sale en LRC un subtítulo ASS de dos líneas?
Como dos líneas con marca de tiempo que llevan la misma hora, que es como LRC dice que esas dos van juntas. El emparejamiento sobrevive: las dos líneas ASS siguen perteneciendo a un mismo subtítulo en la salida LRC y un reproductor las muestra juntas.
¿Se conserva el orden de los subtítulos ASS en el LRC?
Sí, y de paso se ordenan por tiempo de inicio: primero el más temprano, que es lo que espera cada formato de este sitio y cómo los leen los reproductores. Si tu ASS listaba los subtítulos fuera de orden, la salida LRC los pone en orden; eso cambia la estructura del archivo, no su contenido, y es deliberado.
¿Puedo convertir el LRC de vuelta a ASS?
Sí, y tiene su propia lista: convertir LRC a ASS pierde tiempos. Esa lista es distinta de la de arriba porque los dos formatos guardan cosas distintas.
¿El LRC conserva la codificación del archivo ASS?
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 ASS. Un archivo que llega en UTF-16 o en una codificación monocbyte de Windows se decodifica al entrar (el panel de resultados lo indica cuando ocurre); lo que sale es siempre el mismo LRC UTF-8.