Re: Metadata in the VTT file header (bug 15851), use cases (and a need to close this)

On Sep 12, 2012, at 9:18 , Philip Jägenstedt <philipj@opera.com> wrote:

> On Thu, 30 Aug 2012 02:13:03 +0200, David Singer <singer@apple.com> wrote:
> 
>> On Aug 29, 2012, at 16:53 , Ian Hickson <ian@hixie.ch> wrote:
>> 
>>> On Wed, 29 Aug 2012, David Singer wrote:
>>>> 
>>>> 5) Time alignment. When WebVTT is used as the caption source for a
>>>> system where timestamps are from an arbitrary origin (e.g. a continuous
>>>> MPEG-2 Transport stream) we need a way to say that 'timestamp X in this
>>>> VTT file aligns with Timestamp Y in the media stream' so as to get
>>>> synchronization.  This is naturally put into the header.
>>> 
>>> If there's a WebVTT file with fixed timestamps and a media stream with
>>> arbitrary timestamps, then the only place where it makes sense to put the
>>> synchronisation information is in the media stream. Putting it in the
>>> WebVTT stream makes no sense; if you are able to adjust that stream then
>>> why not just adjust the timestamps?
>> 
>> Pardon?  You're suggesting completely re-writing the timestamps in the mpeg-2 transport stream so as to … do exactly what?  What we need is a mapping, not a need to re-write whole streams.
> 
> MPEG-2 TS doesn't seem particularly relevant to the Web. In any case, adjusting all of the WebVTT timestamps using JavaScript would be trivial, as would rewriting the entire WebVTT file on the server.

MPEG-2 TS timestamps cycle, and I don't think WebVTT ones are allowed to.  Re-writing entire files, finding every timestamp in them, is a lot less 'trivial' than a mapping.

MPEG-2 TS continues to be a popular format, despite its age.  It is the media format behind our live streaming system, for example.

> For the record, I'm also not very enthusiastic about adding key-value metadata to WebVTT. Duplicating language and kind seem like a nice way to confuse, and browsers would just ignore the metadata anyway. The suggested syntax for multi-line values also looks pretty exotic to me.


You're assuming a browser embedding; we envisage VTT used in a whole bunch of scenarios and locations.

Given the need for a value-terminator and a header-block-terminator (blank line), escaping lines that look like those (plus escaping lines that look like the escape) seems pretty simple, obvious, and minimal.  The choice of the 'bracketing' characters is taste;  I suggested [[ and ]], others preferred "|" and ".".  As long as the terminator is rare in the obvious use-case (CSS), I don't think it really matters.

David Singer
Multimedia and Software Standards, Apple Inc.

Received on Wednesday, 12 September 2012 19:24:20 UTC