piapia123
es

Conversor de subtítulos SRT ↔ WebVTT

Multimedia

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Convierte entre SRT y WebVTT, con ajuste de la línea de tiempo por encima. La conversión de formato es la mitad aburrida; lo útil son las otras dos cosas. Desplazar toda la pista arregla el desfase entre audio y subtítulos: un montaje y sus subtítulos vienen a menudo de grupos distintos y quedan separados entre medio segundo y dos segundos, y corregirlo línea a línea no es realista. Un número negativo adelanta todo. Escalar arregla un desajuste de fotogramas por segundo, que es lo que más se confunde con un desplazamiento. Unos subtítulos hechos para 25 fps sobre un montaje a 23,976 fps se van de forma progresiva: el principio cuadra y diez minutos después pueden fallar por segundos, mientras que algún punto intermedio da la casualidad de estar bien. Eso pide un multiplicador (25 ÷ 23,976 ≈ 1,0427) y ningún desplazamiento lo arregla. Cuando los dos problemas están presentes el orden importa, y aquí es primero escalar y luego desplazar. ⚠️ Un desplazamiento excesivo se rechaza en vez de escribirse. Al adelantar cinco segundos, las primeras líneas quedan antes de cero. Ajustarlas a cero las amontona al principio; escribirlas tal cual produce marcas de tiempo como `-00:00:01,000`. Un reproductor responde a las dos con silencio: ni error ni aviso, esas líneas simplemente no vuelven a aparecer. Por eso aquí se rechaza y se dice cuántas líneas están implicadas. Dos detalles más se tratan según la especificación: los números de SRT se renumeran (son solo posicionales, y los de la entrada pueden estar desordenados), y la salida de WebVTT no lleva números (esa posición es un identificador de cue y no un número de orden, y escribir `1`, `2` invita a confundirlo con la numeración de SRT).

Funciones

  • SRT ↔ WebVTT en ambos sentidos, con el formato de entrada detectado
  • Desplaza toda la línea de tiempo (segundos, puede ser negativo): arregla el desfase de audio
  • Escala la línea de tiempo: arregla un desajuste de fotogramas por segundo, que se va más cuanto más largo es el archivo y no lo arregla un desplazamiento
  • Cuando se aplican las dos, primero escalar y luego desplazar (el otro orden escala también el desfase)
  • ⚠️ Un desplazamiento que produciría tiempos negativos se rechaza con un recuento, en vez de escribir un archivo roto
  • Los números de SRT se renumeran en orden: no llevan ningún dato y los de la entrada pueden estar desordenados
  • La salida de WebVTT omite los números pero conserva los identificadores de cue y los ajustes existentes
  • Entiende la forma sin horas de WebVTT (`00:01.000` es un segundo, no una hora)
  • Trata CRLF, BOM y bloques de comentario NOTE / STYLE
  • No se sube nada ni pasa por ningún servidor

Cómo se usa

  1. Pega el SRT o el WebVTT: el formato se detecta solo
  2. Elige el formato de salida
  3. Para un desfase, introduce un desplazamiento en segundos; para un desajuste de fotogramas, un factor de escala
  4. El resultado se actualiza al escribir: cópialo o descárgalo

Preguntas frecuentes

Mis subtítulos están desincronizados: ¿desplazar o escalar?
Mira el patrón. Un desfase constante de principio a fin pide desplazar: introduce un número fijo de segundos (negativo si los subtítulos aparecen antes de tiempo, positivo si tarde). Correctos al principio pero cada vez más desviados pide escalar, que es un desajuste de fotogramas: unos subtítulos hechos para 23,976 fps sobre un montaje a 25 fps necesitan 25 ÷ 23,976 ≈ 1,0427, y el caso inverso necesita 23,976 ÷ 25 ≈ 0,959. ⚠️ Los dos problemas a menudo van juntos (otro montaje *y* otra fuente de subtítulos); entonces rellena los dos, y el orden es primero escalar y luego desplazar, porque al revés se escala también el desfase que acabas de añadir.
¿Por qué un desplazamiento demasiado grande da error y otras herramientas solo lo recortan?
Porque recortar rompe el archivo en silencio. Al adelantar cinco segundos, las primeras líneas quedan en tiempo negativo: ajustarlas a cero hace que se muestren todas a la vez, y escribirlas tal cual produce marcas de tiempo ilegales como `-00:00:01,000`. Un reproductor no informa de ninguna de las dos: esas líneas simplemente dejan de aparecer, y tú concluyes que los subtítulos son así, cuando en realidad la herramienta los ha estropeado. Por eso aquí se rechaza y se dice cuántas líneas se salen de rango: reduce el desplazamiento o borra las primeras líneas que de verdad no quieras.
¿Cambian los números del SRT?
Sí: la salida los renumera 1, 2, 3… en orden. Los números de SRT no llevan información; solo significan «esta es la enésima línea», y los del archivo de entrada pueden estar desordenados o tener huecos (habitual tras copiar y pegar o editar a mano), lo que hace que algunos reproductores no muestren nada más allá de las primeras entradas. La salida de WebVTT no escribe números: esa posición guarda un identificador de cue (cualquier cadena), y poner `1`, `2`, `3` ahí es legal pero invita a creer que funciona como la numeración de SRT. Los identificadores existentes se conservan.
¿Admite ASS / SSA?
No. ASS / SSA no es solo «texto con marcas de tiempo»: lleva un sistema de estilos completo (fuentes, contornos, posicionamiento, efectos karaoke, capas), y ni SRT ni WebVTT tienen dónde meterlo. Una conversión de un solo sentido perdería necesariamente la mayor parte del estilo, y el resultado *parece* una conversión correcta mientras la posición y las fuentes salen mal en el reproductor, algo que descubres viéndolo. Así que aquí solo se cubren los dos formatos que se convierten entre sí sin pérdida.

Herramientas relacionadas