¿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
- Los valores
begin,endydurde 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, undivconbegin="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. - Las expresiones temporales que cuentan fotogramas dependen de
ttp:frameRateen 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. - 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
CODECScomostpp.ttml.im1t. - MDN documenta que el elemento HTML
trackacepta 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.
- Robot de subtítulos para video
- Robot de transcripción de voz: parámetro format
- Formatos de audio/video por stack de FFmpeg
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- W3C: lenguaje de marcado de texto temporizado 2 (TTML2)
- W3C: perfiles TTML para distintos tipos de subtítulos en contenido multimedia de Internet, versión 1.2 (IMSC 1.2)
- MDN: el elemento track (integrar una pista de texto)
- Borrador del IETF: HTTP Live Streaming, edición 2, sección 3.1.5 sobre subtítulos IMSC
- Apple: especificación de autoría HLS para dispositivos Apple (requisitos de subtítulos)
- hls.js v1.6.13: src/utils/imsc1-ttml-parser.ts