¿Qué es el lenguaje de marcado de texto temporizado?

El lenguaje de marcado de texto temporizado (Timed Text Markup Language, TTML) es un formato del W3C basado en XML para distintos tipos de subtítulos. Representa la temporización, la disposición, el estilo y la ubicación del texto en regiones asociadas con contenido multimedia.

Cómo funciona el lenguaje de marcado de texto temporizado

TTML modela un documento de texto temporizado como XML con espacios de nombres: una raíz tt cuyo elemento head contiene declaraciones de estilo y disposición, y cuyo elemento body contiene elementos de contenido div, p y span que hacen referencia a ellas. Esos elementos pueden incluir atributos begin, end y dur y actúan de forma predeterminada como contenedores temporales paralelos, de modo que los tiempos de un elemento hijo son desplazamientos respecto al inicio de su antecesor temporizado más cercano. Las regiones definen las áreas en las que se distribuye el contenido. Como el lenguaje completo es amplio, los perfiles declaran qué funciones puede usar un documento y cuáles debe admitir un procesador; IMSC define un perfil de texto y otro de imagen de TTML2 para la entrega de distintos tipos de subtítulos. El W3C describe TTML como un formato de intercambio entre sistemas de autoría que también puede utilizarse directamente para la distribución.

Datos clave

  1. Los valores begin, end y dur de un elemento anidado se miden desde el inicio de su contenedor temporal antecesor más cercano, que es paralelo de forma predeterminada, no desde el inicio del contenido multimedia. Por tanto, un div con begin="10s" desplaza diez segundos todos los párrafos que contiene, y un conversor que solo lee los atributos propios de cada párrafo sitúa esas entradas antes de tiempo.
  2. Las expresiones temporales que cuentan fotogramas dependen de ttp:frameRate en el elemento raíz. Cuando no está presente, TTML2 recurre a una frecuencia definida por la aplicación o, en su defecto, a 30 fotogramas por segundo, por lo que un archivo creado a 25 fotogramas por segundo sin el atributo queda mal temporizado; IMSC exige el atributo siempre que se usen tiempos basados en fotogramas.
  3. Los perfiles restringen el lenguaje, por lo que un documento TTML2 válido puede ser rechazado en etapas posteriores. IMSC define perfiles separados de texto e imagen y prohíbe por completo algunas funciones de TTML2. HLS solo acepta TTML como IMSC1: el borrador actual de la especificación HLS exige que los segmentos de subtítulos IMSC sean MP4 fragmentados que cumplan con el perfil de texto IMSC1, señalizados con un identificador CODECS como stpp.ttml.im1t.
  4. MDN documenta que el elemento HTML track acepta archivos WebVTT (.vtt), así que prevé convertir TTML o renderizarlo mediante un script para reproducirlo en el navegador. Los reproductores compatibles con TTML realizan ese trabajo por sí mismos: hls.js, por ejemplo, analiza IMSC1 de segmentos MP4 fragmentados y convierte cada elemento temporizado en un objeto de entrada WebVTT.

Cuándo es importante el lenguaje de marcado de texto temporizado

Elige TTML cuando un flujo de trabajo de radiodifusión, reproducción o streaming lo requiera y admita el perfil necesario. La reproducción en navegadores suele favorecer WebVTT, por lo que la entrega directa de TTML puede requerir conversión o compatibilidad específica del reproductor.

Cómo ayuda Transloadit con el lenguaje de marcado de texto temporizado

Los Robots de Transloadit relacionados con subtítulos procesan SRT y WebVTT tanto en la entrada como en la salida de un flujo de trabajo: /video/subtitle acepta archivos de subtítulos SRT, VTT y ASS como entrada, junto con JSON con marcas de tiempo de /speech/transcribe con el parámetro format establecido en json, mientras que /speech/transcribe puede generar archivos de subtítulos srt o webvtt.

La tabla de formatos de audio/video indica que ttml solo admite escritura, no lectura, en los stacks de FFmpeg, así que convierte las fuentes TTML a SRT o WebVTT antes de estos Steps.

Explora los formatos de archivo y las capacidades de compresión de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis