Qu’est-ce que WebVTT ?
WebVTT est un format texte du W3C pour les repères temporels associés à des contenus audio ou vidéo sur le web. Un fichier .vtt peut contenir des sous-titres, des sous-titres d’accessibilité, des intitulés de chapitres, des descriptions, des informations de positionnement et une mise en forme limitée des repères.
Fonctionnement de WebVTT
Un fichier WebVTT est un texte UTF-8, associé au type de média text/vtt, qui commence par la chaîne WEBVTT, suivie de blocs facultatifs de régions et de styles, puis de blocs de repères. Chaque repère comporte une ligne de synchronisation et un contenu affiché comme texte de sous-titres d’accessibilité ou de sous-titres, ou interprété comme titre de chapitre ou métadonnées, selon l’usage que le logiciel consommateur fait de la piste. Les réglages du repère sur la ligne de synchronisation contrôlent le sens d’écriture, la ligne et la position, la taille, l’alignement et la région. Le texte des repères n’accepte qu’un petit ensemble de balises, et CSS cible les repères via le pseudo-élément ::cue, qui prend en compte une liste fixe de propriétés. Les horodatages sont interprétés par rapport à la chronologie du média que le fichier accompagne ; un fichier synchronisé avec un montage donné doit donc être resynchronisé lorsque ce média est raccourci, accéléré ou remplacé.
Points clés
- La ligne de synchronisation d’un repère se compose d’un horodatage de début, de la chaîne
-->et d’un horodatage de fin. Chaque horodatage est écrit sous la formemm:ss.tttouhh:mm:ss.ttt, avec un point suivi d’exactement trois chiffres pour les millisecondes. Lorsque l’analyseur ne peut pas lire cette ligne, il ignore le repère et passe au bloc suivant ; une ligne de synchronisation incorrecte supprime donc un repère sans interrompre le traitement du reste du fichier. - Un élément HTML
trackindique l’adresse du fichier danssrc, son rôle danskindet sa langue danssrclang; en l’absence dekind, le rôle par défaut est celui de sous-titres, etsrclangest obligatoire pour les sous-titres. Un fichier dont l’origine diffère de celle de la page ne se charge que si l’élément média parent possède un attributcrossoriginet si la réponse satisfait au contrôle CORS. Sans cet attribut, le navigateur limite la requête à l’origine de la page et le chargement de la piste échoue. - WebVTT s’est fondé sur le format SRT de SubRip, mais un fichier SRT n’est pas un fichier WebVTT valide. Il ne possède pas la signature
WEBVTT, sans laquelle un analyseur WebVTT s’arrête, et les lignes de synchronisation SRT placent habituellement les millisecondes après une virgule, là où WebVTT exige un point. La conversion de WebVTT vers SRT perd davantage d’informations : le repère SRT de base, composé d’un numéro de séquence, d’une ligne de synchronisation et de texte, ne prévoit aucun emplacement pour les réglages des repères, les régions ou les blocsSTYLE. - HTTP Live Streaming transporte les sous-titres sous forme de segments WebVTT. La RFC 8216 indique que chaque segment devrait inclure un en-tête
X-TIMESTAMP-MAPqui associe les temps des repères aux horodatages MPEG-2 des autres déclinaisons. En l’absence de cet en-tête, les clients doivent supposer que le temps de repère 0 correspond à l’horodatage MPEG-2 de valeur 0, ce qui n’est correct que si les horodatages audio et vidéo commencent également à cette valeur.
Quand WebVTT est utile
Un lecteur vidéo HTML peut charger des pistes WebVTT pour des sous-titres d’accessibilité, des chapitres ou des métadonnées synchronisées. Un repère dont la ligne de synchronisation ne peut pas être analysée est ignoré, tout comme les propriétés CSS qui ne font pas partie de l’ensemble autorisé ; un fichier peut donc se charger alors que certains repères manquent ou ne sont pas mis en forme.
Comment Transloadit vous aide avec WebVTT
Le Robot /speech/transcribe de Transloadit renvoie une transcription sous forme de fichier de sous-titres WebVTT lorsque son paramètre format vaut webvtt. Le Robot /video/subtitle accepte les fichiers de sous-titres SRT et VTT et les ajoute à une vidéo sous forme de flux distinct ou les incruste dans l’image.
L’activation de speaker_labels ajoute des étiquettes de locuteur uniquement aux sorties json et meta ; la documentation du Robot précise que la sortie WebVTT reste inchangée.
- Robot de transcription de la parole : formats de sortie, dont
webvtt - Robot de sous-titrage vidéo : ajouter des sous-titres SRT ou VTT à une vidéo
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression