- From: Cyril Concolato <cyril.concolato@telecom-paristech.fr>
- Date: Fri, 23 Oct 2015 10:50:37 +0200
- To: Silvia Pfeiffer <silviapfeiffer1@gmail.com>, Nigel Megitt <nigel.megitt@bbc.co.uk>
- Cc: public-texttracks@w3.org
Le 22/10/2015 23:33, Silvia Pfeiffer a écrit :
>
> Just so we are clear: this already exists and works well for WebVTT.
>
I don't know what you mean by 'exists'. There is a pull request on-going
but it is not (to my knowledge) implemented in any browser (is it?) or
authoring tool, which means it can be removed if never implemented.
>
> It has limitations though such as having to repeat styles across the
> segments. Which is why we are discussing alternative approaches. HTH.
>
And an alternative approach might in the future replace or complement
the current approach if the group feels like the limitations are too
strong, no?
Cyril
>
> Cheers,
> Silvia.
>
> Best Regards,
> Silvia.
>
> On 23 Oct 2015 12:52 am, "Nigel Megitt" <nigel.megitt@bbc.co.uk
> <mailto:nigel.megitt@bbc.co.uk>> wrote:
>
> It would also be possible to take the same approach with VTT as we
> have
> taken with TTML, which is that you have a sequence of independent
> documents each of which contains the styling etc needed to display
> itself,
> for whatever time period applies. Then you have something
> deliverable that
> will work, and you can separate out the problem of creating a
> single long
> document that contains "all the previous documents' content" into a
> different processing task. If you go down the route of timed
> styles then
> you're almost at that point anyway.
>
> Nigel
>
>
> On 22/10/2015 14:40, "Cyril Concolato"
> <cyril.concolato@telecom-paristech.fr
> <mailto:cyril.concolato@telecom-paristech.fr>> wrote:
>
> >Le 22/10/2015 13:36, Philip Jägenstedt a écrit :
> >> On Thu, Oct 22, 2015 at 10:47 AM, Cyril Concolato
> >> <cyril.concolato@telecom-paristech.fr
> <mailto:cyril.concolato@telecom-paristech.fr>> wrote:
> >>> Le 21/10/2015 15:39, Philip Jägenstedt a écrit :
> >>>> In the DASH/MP4/VTT software stack, is WebVTT the input or the
> >>>>output, and
> >>>> is it a file or a stream? AFAICT, the only issue would be with a
> >>>>WebVTT
> >>>> input stream (using the syntax in the spec, not any other
> framing)
> >>>>with
> >>>> STYLE blocks at the end, but since streaming standalone WebVTT
> >>>>doesn't exist
> >>>> yet I'm uncertain if that's really what you mean.
> >>> These are the good questions. It is currently possible to have a
> >>> never-ending WebVTT file being produced live, delivered over
> HTTP (e.g.
> >>> using chunked transfer encoding). Such WebVTT 'stream' cannot
> easily be
> >>> consumed by a browser today because the Streams API is not
> there yet,
> >>>but it
> >>> will be available in the future. Other (non-browser) WebVTT
> >>>implementations
> >>> can already use that today. This might require careful creation of
> >>>cues to
> >>> insure that each point is a random access, but that's possible
> today.
> >>> Several services can be done based on that: think of a
> WebRadio with
> >>> subtitling. Regarding MP4 packagine, an implementation could
> consume
> >>>such
> >>> stream and produces MP4 segments on the fly, if needed.
> >>>
> >>> For those implementations, if a new untimed style header would
> arrive
> >>>in the
> >>> input WebVTT stream and if such style would be defined to have
> effects
> >>>on
> >>> the whole 'file', i.e. including to cues prior in the 'file', then
> >>>playing
> >>> the live stream versus recording the stream and then playing a
> file
> >>>would
> >>> not have the same result. That would be problematic. That's why I
> >>>think that
> >>> styles should either be in the header (with semantics that
> they are
> >>>valid
> >>> for the whole file and without the ability to be in between
> cues) or
> >>>as a
> >>> timed block with a well defined time validity (like cues), or as
> >>>settings of
> >>> a cue. For the last two options, it really looks like WebVTT would
> >>>become a
> >>> multiplex of two types of timed data (cue and styles), I'm not
> sure we
> >>> should go in this direction and if a separate style file/stream
> >>>wouldn't be
> >>> better.
> >> Do you have a pointer to such a never-ending WebVTT file
> deployed on
> >> the public web?
> >No I don't, but that does not mean that it does not exist nor that we
> >should break such scenario.
> >> I honestly didn't think they would exist yet.
> >>
> >> To be pendantic, the reason that never-ending WebVTT files
> don't work
> >> in browsers isn't because of the Streams API, but because the media
> >> element's readyState cannot reach HAVE_FUTURE_DATA until the text
> >> tracks are ready:
> >>
> >>https://html.spec.whatwg.org/multipage/embedded-content.html#the-text-tra
> >>cks-are-ready
> >>
> >> This is what the spec bug is about, some mechanism to unblock
> >> readyState before text track parsing has finished:
> >> https://www.w3.org/Bugs/Public/show_bug.cgi?id=18029
> >Sorry, I wasn't clear. I know about that bug. I was already assuming
> >that a web app would fetch the WebVTT (using XHR or fetch, retrieving
> >the text content as a stream), parse it and produce the cues in
> JS, not
> >at all using the native browser support, because of that exact bug.
> >>
> >> Anyway, letting the parser discard style blocks after any cues
> until
> >> we've figured out the live streaming issues is OK with me. However,
> >> let's spell out the implications of keeping this restriction
> for live
> >> streams:
> >I agree that it's the right approach. We should be aware of the
> >limitations of such approach.
> >> If you don't know all of the style up front,
> >I agree that "if you don't know all of the style up front" you have a
> >problem to solve. Nigel already pointed that out, as being useful in
> >broadcast where you don't necessarily know in advance all your
> styles.
> >To me, there are 2 main approaches: using timed styles or refreshing
> >untimed styles.
> >
> >By timed styles, I imagine something like:
> >
> >00:01:00.000 --> 00:02:00.000 type:style
> >.myRedClass {
> > color: red;
> >}
> >.myGreenClass {
> > color: green;
> >}
> >
> >00:01:00.000 --> 00:01:30.000
> ><v.myGreenClass>Some green text
> >
> >00:01:20.000 --> 00:02:00.000
> ><v.myRedClass>Some red text
> >
> >A cue of with a 'type' settings whose value is 'style' carries style
> >content not text content. This has the advantage of giving precise
> >timing for the styles, and we can force styles to appear in start
> time
> >order (like cues) and before a cue that has a similar start time.
> There
> >are probably problems with the syntax (blank lines in CSS, I did not
> >follow that part of the discussion). Also, if you want to have
> seekable
> >streams you probably would have to split cues to remove overlap
> (nothing
> >different from normal cues).
> >
> >Alternatively, I could also imagine something simpler like:
> >00:01:00.000 --> 00:01:30.000 style:color:green;
> >Some green text
> >
> >00:01:20.000 --> 00:02:00.000 style:color:red;
> >Some red text
> >
> >Maybe this could modified to import styles instead of inlining
> them, I
> >didn't think about that. Also, as I pointed out in my previous email,
> >such VTT file starts to become a multiplex with styles and
> content. It
> >may be more appropriate to define a Style stream (maybe using the
> WebVTT
> >syntax) and to link the style stream with the content stream, either
> >from the WebVTT content file or from an additional <track> element.
> >> your only
> >> recourse is to add a new text track at the point where new style is
> >> needed.
> >Without defining timed styles (as above), adding a new text track
> is an
> >option, but not the only one, you can use one text track and fill it
> >with cues coming from different WebVTT files. In the HLS
> approach, every
> >WebVTT segment would (re-)define its styles. That does not mean
> you have
> >to maintain multiple tracks.
> >> This will involve scripts, at which point handling multiple
> >> WebVTT tracks will compare unfavorably with just using a WebSocket
> >> connection to deliver cues and style using a custom syntax.
> >Maybe in some cases the WebSocket approach can be useful, but
> there are
> >other issues as well like caching.
> >
> >--
> >Cyril Concolato
> >Multimedia Group / Telecom ParisTech
> >http://concolato.wp.mines-telecom.fr/
> >@cconcolato
> >
> >
>
--
Cyril Concolato
Multimedia Group / Telecom ParisTech
http://concolato.wp.mines-telecom.fr/
@cconcolato
Received on Friday, 23 October 2015 08:51:11 UTC