Aperçu
Le fichier Web Video Text Tracks (WebVTT) est un simple fichier texte utilisé pour associer des légendes, des sous-titres, des descriptions, etc. avec des segments de temps dans votre vidéo.
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
Pour plus de détails sur l'ajout d'un fichier WebVTT, consultez le Ajouter des légendes aux vidéos document.
Ajouter un en-tête de métadonnées
Dans le cadre de la spécification HLS, vous devez ajouter un X-TIMESTAMP-MAP
en-tête de métadonnées à chaque en-tête WebVTT afin de synchroniser les horodatages entre l'audio et la vidéo avec vos sous-titres.
S'il vous manque cet en-tête ou le MPEGTS
valeur n'est pas correcte, vous pouvez constater que vos sous-titres ne sont pas synchronisés avec la vidéo. C'est parce que lorsque le X-TIMESTAMP-MAP
l'en-tête est manquant, le client suppose un décalage d'horodatage par défaut de 0. Par exemple, la différence entre l'utilisation d'une valeur de 900000 et 0 peut entraîner la suppression de vos sous-titres de 10 secondes.
X-TIMESTAMP-MAP
format :
X-TIMESTAMP-MAP=MPEGTS:<MPEG-2 time>,LOCAL:<cue time>
Voici un exemple de fichier WebVTT :
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
Pour plus de détails, consultez le Segments de sous-titres section du document du protocole HLS d'Apple.
Déterminer la valeur de décalage
Si vous utilisez Dynamic Ingest ou Zencoder de Brightcove pour transcoder votre contenu, utilisez une valeur de décalage de MPEGTS:900000
.
Si vous utilisez un système d'encodage autre que Zencoder, il est préférable d'obtenir la valeur nécessaire. Apple vous recommande de définir le décalage pour qu'il corresponde à votre vidéo encodée.
Les MPEGTS
correspond à la valeur d'horodatage de présentation (PTS) de la trame MPEG à l'heure donnée. LOCAL
temps. Si vous utilisez le système d'acquisition hérité de Brightcove, vous constaterez peut-être que vous pouvez utiliser une valeur de MPEGTS:0
.
Si votre compte est activé pour la livraison dynamique et que vous hébergez des sous-titres avec nous (sous-titres non distants), nous ferons tout fonctionner automatiquement par magie (PTS doit être nul et nous veillerons à ce qu'il le soit.)
Si votre compte est activé pour la livraison dynamique et que vous utilisez des sous-titres distants, vous devez définir la valeur PTS sur zéro.
Par exemple, pour obtenir la valeur de décalage, vous pouvez procéder comme suit :
Demande 1 :
Dans le terminal, récupérez une vidéo HLS et stockez-la dans un fichier local. Dans ce cas, nous le nommons 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"
Demande 2 :
Ensuite, utilisez le ffprobe
commande pour obtenir la valeur de décalage. ffprobe
est un analyseur de flux multimédia, qui fait partie de la Cadre FFmpeg. Vous devrez le télécharger et l'installer sur votre ordinateur.
ffprobe -show_frames seg.ts
Réponse :
Votre réponse devrait ressembler à ceci :
pkt_pts=900000
pkt_pts_time=10.000000
pkt_dts=900000
pkt_dts_time=10.000000
Les meilleures pratiques
Les instructions suivantes devraient vous aider lors du développement de votre application avec des sous-titres.
Durée du sous-titre
Il est recommandé que la durée du sous-titre ne dépasse pas la durée de la vidéo. Cela empêchera l'affichage des sous-titres ou l'apparition d'une zone introuvable dans la barre de progression une fois la lecture vidéo terminée.