Resumen
El archivo Web Video Text Tracks (WebVTT) es un archivo de texto simple que se utiliza para asociar títulos, subtítulos, descripciones, etc., con segmentos de tiempo en su video.
WEBVTT
00:00:03.50 --> 00:00:05.000 align:middle line:84%
In this video, you'll learn
about how Video Cloud Studio is
Para obtener detalles sobre cómo agregar un archivo WebVTT, consulte la Agregar subtítulos a los videos documento.
Agregar un encabezado de metadatos
Como parte de la especificación HLS, debe agregar un X-TIMESTAMP-MAP
encabezado de metadatos a cada encabezado de WebVTT para sincronizar las marcas de tiempo entre el audio y el video con sus subtítulos.
Si falta este encabezado o el MPEGTS
El valor no es correcto, es posible que vea que sus subtítulos no están sincronizados con el video. Esto se debe a que cuando X-TIMESTAMP-MAP
Falta el encabezado, el cliente asume un desplazamiento de marca de tiempo predeterminado de 0. Por ejemplo, la diferencia entre usar un valor de 900000 y 0 puede hacer que sus subtítulos se desvíen 10 segundos.
X-TIMESTAMP-MAP
formato:
X-TIMESTAMP-MAP=MPEGTS:<MPEG-2 time>,LOCAL:<cue time>
Aquí hay un archivo WebVTT de muestra:
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000
1
00:00:03.500 --> 00:00:05.000 align:middle line:84%
In this video, you'll learn
about how Video Cloud Studio is
Para obtener más detalles, consulte la Segmentos de subtítulos sección del documento de protocolo HLS de Apple.
Determine el valor de compensación
Si está utilizando Dynamic Ingest o Zencoder de Brightcove para transcodificar su contenido, use un valor de compensación de MPEGTS:900000
.
Si está utilizando un sistema de codificación que no sea Zencoder, es mejor obtener el valor necesario. Apple recomienda que configure el desplazamiento para que coincida con su video codificado.
La MPEGTS
El valor corresponde al valor de la marca de tiempo de presentación (PTS) de la trama MPEG en el LOCAL
hora. Si está utilizando el sistema de ingesta heredado de Brightcove, puede encontrar que puede usar un valor de MPEGTS:0
.
Si su cuenta está habilitada para Entrega dinámica y estás alojando subtítulos con nosotros (subtítulos no remotos) , luego haremos que todo funcione automáticamente de forma mágica (PTS debe ser cero y nos aseguraremos de que sea así).
Si su cuenta está habilitada para Dynamic Delivery y está utilizando remoto subtítulos, deberá establecer el valor de PTS en cero.
Por ejemplo, para obtener el valor de compensación, puede hacer lo siguiente:
Solicitud1:
En la terminal, obtenga un video HLS y guárdelo en un archivo local. En este caso, lo estamos nombrando seg.ts
.
curl -o seg.ts "http://brightcove.vo.llnwd.net/v1/unsecured/media/4360108595001/201507/1154/4360341622001/4360108595001_4360341622001_s-1.ts?pubId=4360108595001&videoId=4360283683001"
Solicitud2:
Luego, usa el ffprobe
comando para obtener el valor de compensación. ffprobe
es un analizador de flujo multimedia, que forma parte del Marco FFmpeg. Deberá descargarlo e instalarlo en su computadora.
ffprobe -show_frames seg.ts
Respuesta:
Tu respuesta debería ser similar a esta:
pkt_pts=900000
pkt_pts_time=10.000000
pkt_dts=900000
pkt_dts_time=10.000000
Mejores prácticas
Las siguientes pautas deberían ayudar al desarrollar su aplicación con subtítulos.
Duración de los subtítulos
Se recomienda que la duración de los subtítulos no exceda la duración del video. Esto evitará que se muestren subtítulos o que aparezca un área que no se puede buscar en la barra de progreso después de que se haya completado la reproducción del video.