¿Qué es WebVTT?

WebVTT es un formato de texto del W3C para entradas temporizadas asociadas con audio o video web. Un archivo .vtt puede contener distintos tipos de subtítulos, etiquetas de capítulos, descripciones, posicionamiento y estilos limitados para las entradas.

Cómo funciona WebVTT

Un archivo WebVTT es texto en UTF-8, identificado con el tipo de medio text/vtt, que comienza con la cadena WEBVTT, seguida de bloques opcionales de regiones y estilos y, después, de bloques de entradas. Cada entrada tiene una línea de temporización y un contenido que se muestra como texto de distintos tipos de subtítulos, o se interpreta como un título de capítulo o metadatos, según cómo utilice la pista el software que la recibe. Los ajustes de la entrada en la línea de temporización controlan la dirección de escritura, la línea y la posición, el tamaño, la alineación y la región. El texto de las entradas solo admite un conjunto reducido de etiquetas, y CSS se aplica a las entradas mediante el pseudoelemento ::cue, que respeta una lista fija de propiedades. Las marcas de tiempo se interpretan con respecto a la línea de tiempo del medio al que acompaña el archivo, por lo que un archivo sincronizado para un montaje necesita volver a sincronizarse cuando ese medio se recorta, se acelera o se reemplaza.

Datos clave

  1. La línea de temporización de una entrada consta de una marca de tiempo de inicio, la cadena --> y una marca de tiempo de fin, donde cada marca de tiempo se escribe como mm:ss.ttt o hh:mm:ss.ttt, con un punto antes de exactamente tres dígitos de milisegundos. Cuando el analizador no puede interpretar esa línea, descarta la entrada y pasa al siguiente bloque, por lo que una línea de temporización incorrecta elimina una entrada sin detener el procesamiento del resto del archivo.
  2. Un elemento HTML track indica la dirección del archivo en src, su función en kind y su idioma en srclang; si se omite kind, la función predeterminada es la de subtítulos, y srclang es obligatorio para los subtítulos. Un archivo de un origen distinto al de la página solo se carga si el elemento de medios que lo contiene tiene un atributo crossorigin y la respuesta supera la comprobación CORS. Sin ese atributo, el navegador restringe la solicitud al propio origen de la página y la pista no se carga.
  3. WebVTT se basó en el formato SRT de SubRip, pero un archivo SRT no es un archivo WebVTT válido. Carece de la firma WEBVTT, sin la cual un analizador WebVTT interrumpe el procesamiento, y las líneas de temporización de SRT suelen escribir los milisegundos después de una coma, mientras que WebVTT requiere un punto. La conversión de WebVTT a SRT pierde más información: la entrada básica de SRT, compuesta por un número de secuencia, una línea de temporización y texto, no tiene un lugar definido para los ajustes de las entradas, las regiones ni los bloques STYLE.
  4. HTTP Live Streaming transporta los subtítulos como segmentos WebVTT. El RFC 8216 indica que cada segmento debería incluir un encabezado X-TIMESTAMP-MAP que relacione los tiempos de las entradas con las marcas de tiempo MPEG-2 de las otras variantes. Cuando falta el encabezado, los clientes deben suponer que el tiempo 0 de las entradas corresponde a la marca de tiempo MPEG-2 con valor 0, lo cual solo es correcto si las marcas de tiempo del audio y del video también comienzan ahí.

Cuándo es importante WebVTT

Un reproductor de video HTML puede cargar pistas WebVTT para subtítulos, capítulos o metadatos temporizados. Se descarta cualquier entrada cuya línea de temporización no pueda analizarse y se ignoran las propiedades CSS ajenas al conjunto permitido, por lo que un archivo puede cargarse aunque falten algunas entradas o no se les apliquen estilos.

Cómo ayuda Transloadit con WebVTT

El Robot /speech/transcribe de Transloadit devuelve una transcripción como archivo de subtítulos WebVTT cuando su parámetro format tiene el valor webvtt. El Robot /video/subtitle acepta archivos de subtítulos SRT y VTT y los añade al video como un flujo independiente o como subtítulos incrustados en la imagen.

Activar speaker_labels añade etiquetas de hablantes solo a las salidas json y meta; la documentación del Robot indica que la salida WebVTT no cambia.

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