Convertir SRT a TTML el subtítulo en el XML que pidió la plataforma.
Para convertir SRT a TTML, pega el subtítulo o arrastra el .srt y descarga el .ttml. Cada bloque se vuelve un párrafo con inicio y fin en milisegundos, la cursiva pasa a ser un estilo de TTML y el salto de línea se vuelve <br/>. El XML sale en UTF-8, listo para quien pide TTML o DFXP.
Gratis, sin registroSegundo archivo
Por ejemplo, el nombre del video y la versión para aprobar.
Este texto no tiene tiempos. Vamos a crear el subtítulo por el ritmo de lectura: cada línea o frase se vuelve un bloque de hasta 2 líneas.
El JSON trae el tiempo de cada palabra. Cortamos bloques de hasta 2 líneas de 42 caracteres, al final de las frases y en las pausas.
¿Quieres el subtítulo listo directo del video? Nosotros transcribimos y subtitulamos por ti.
Informe del subtítulo
- Subtítulos
- Duración
- Palabras
- CPS promedio
- CPS máximo
- Con alerta
| # | Tiempo | Duración | Texto | Caracteres por línea | CPS | Alertas |
|---|
Cómo convertir SRT a TTML
- 01
Pega o arrastra el .srt
Aceptamos SRT sin numeración, con punto en lugar de coma o guardado en Windows-1252, la codificación habitual de subtítulos antiguos.
- 02
Revisa y limpia
El informe muestra la duración, los caracteres por línea y la velocidad de lectura de cada subtítulo. Corrige superposiciones antes de generar el XML.
- 03
Descarga el .ttml
Copia el XML o descarga el archivo. Si la plataforma pide el idioma, completa el atributo xml:lang arriba antes de enviarlo.
¿Quién pide subtítulos en TTML en lugar de SRT?
TTML es el formato de subtítulos en XML del W3C, y la solicitud suele venir de flujos de trabajo más formales: plataformas de streaming, distribuidoras, canales de televisión, agencias de subtitulado y algunos reproductores y plataformas de cursos. Al ser XML, puede llevar estilo, posición y metadatos, y pasa por una validación automática antes de entrar al sistema.
Si el destino es YouTube o Vimeo, no hace falta convertir: los dos aceptan SRT. Convierte cuando la especificación de entrega pida TTML o DFXP. Y cuidado con los perfiles propios: algunas plataformas grandes exigen un perfil específico de TTML o IMSC, con reglas extra. El archivo que generamos es un TTML genérico y válido, que sirve de base, pero puede necesitar ajustes para pasar esos validadores.
| Destino | Formato que suele pedir |
|---|---|
| YouTube y Vimeo | SRT sirve, no hace falta convertir |
| Reproductores web con track | VTT |
| Streaming y distribuidoras | TTML, DFXP o un perfil IMSC |
| Canales de televisión | TTML o SMPTE-TT |
| Plataformas de cursos | Revisa la especificación |
Cómo queda el SRT dentro del TTML
El archivo empieza con la declaración XML y la etiqueta <tt> con los namespaces de TTML. En el encabezado va un estilo por defecto, centrado. En el cuerpo, cada bloque del SRT se vuelve un <p> con begin y end en el formato 00:00:01.500: la coma de los milisegundos pasa a punto y la numeración desaparece, porque TTML no la usa.
El texto se escapa para no romper el XML: & se vuelve & y < se vuelve <. Cursiva, negrita y subrayado pasan a spans con tts:fontStyle, tts:fontWeight y tts:textDecoration, siempre cerrados en el orden correcto, aunque el SRT tenga una etiqueta abierta de más.
subtitulos.srt
7
00:01:12,480 --> 00:01:15,020
<i>¿Se acuerdan</i>
de la clase pasada?
subtitulos.ttml
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="">
<head>
<styling>
<style xml:id="default" tts:textAlign="center"/>
</styling>
</head>
<body style="default">
<div>
<p begin="00:01:12.480" end="00:01:15.020"><span tts:fontStyle="italic">¿Se acuerdan</span><br/>de la clase pasada?</p>
</div>
</body>
</tt> Qué revisar antes de enviar el TTML
El atributo xml:lang sale vacío, porque un SRT no dice en qué idioma está. Muchas plataformas rechazan el archivo sin el idioma, así que cambia xml:lang="" por xml:lang="es", "en" o "pt-BR", según el subtítulo. Es un cambio de segundos en cualquier editor de texto.
Los tiempos salen en reloj con milisegundos, la forma más aceptada. Si la especificación pide tiempos en cuadros, con ttp:frameRate, o posiciones definidas por regiones, hay que agregarlos después, porque el SRT no trae esa información. El color hecho con <font color> y el {\an8} de subtítulo arriba no pasan.
- Completa xml:lang con el código del idioma del subtítulo.
- Revisa si la plataforma acepta milisegundos o exige cuadros.
- Si piden .dfxp, mira en la especificación si basta con la extensión.
- Pasa el archivo por el validador de la propia plataforma antes de entregar.
Superposición y velocidad de lectura: por qué revisar antes
Los validadores de TTML suelen ser menos tolerantes que un reproductor común. Dos subtítulos que se superponen por unos milisegundos pasan desapercibidos en YouTube, pero pueden frenar una entrega. Por eso conviene activar la limpieza que corrige superposiciones antes de convertir.
El informe también marca los subtítulos con más de 42 caracteres por línea o por encima de 17 caracteres por segundo, referencias habituales de televisión y streaming. Si tu especificación usa otros límites, la herramienta para validar subtítulos permite cambiar los números y aplicar los estándares de TV, Netflix y YouTube.
Más que convertir SRT a TTML. Generamos el subtítulo de tu video.
Ver también
Preguntas frecuentes
¿Cómo convertir SRT a TTML?
Pega el subtítulo o arrastra el .srt, deja TTML como salida y descarga el .ttml. Cada bloque se vuelve un párrafo <p> con el mismo inicio y fin, en milisegundos. Es gratis, sin registro, y el XML sale en UTF-8.
¿TTML o DFXP? ¿Qué extensión uso?
Guardamos el archivo con la extensión .ttml. DFXP es el nombre del primer perfil de TTML, y muchas plataformas aceptan el mismo contenido con la extensión .dfxp. Si la especificación de entrega pide .dfxp, revisa si basta con renombrar o si hay un perfil con reglas propias.
¿El TTML generado pasa en cualquier plataforma de streaming?
No lo podemos garantizar. El archivo es un TTML válido y genérico, que muchas plataformas aceptan. Algunas exigen un perfil propio de TTML o IMSC, con tiempos en cuadros, regiones y metadatos obligatorios. Usa nuestro archivo como base y pásalo por el validador de la plataforma.
¿Por qué el xml:lang sale vacío?
Porque el SRT no indica el idioma del subtítulo, y preferimos no adivinar. Abre el .ttml en un editor de texto y completa el atributo en la etiqueta <tt>, por ejemplo xml:lang="es". Muchas plataformas rechazan el archivo sin ese código.
¿La cursiva y los colores del SRT pasan al TTML?
Cursiva, negrita y subrayado pasan, como estilos tts:fontStyle, tts:fontWeight y tts:textDecoration. El color hecho con <font color> y el {\an8} de subtítulo arriba no pasan: el subtítulo sale centrado, en la posición por defecto.
Recibí un TTML y tengo que editarlo. ¿Puedo volver a SRT?
Sí. Usa la herramienta para convertir TTML a SRT, edita en tu programa y después vuelve a convertir a TTML aquí. Los tiempos en cuadros o ticks del archivo original se recalculan a milisegundos en la primera conversión.
¿Todavía no tienes el SRT? Nosotros generamos el subtítulo de tu video.
Sube el video o pega el enlace de YouTube. Transcribimos palabra por palabra, con el tiempo de cada parlamento, y descargas el SRT listo para convertir a TTML.
Ves el resultado en tu material antes de registrar la tarjeta.