Re: [media] Moving forward with captions / subtitles

On Tue, 16 Feb 2010 05:56:08 +0800, Silvia Pfeiffer  
<silviapfeiffer1@gmail.com> wrote:

> Hi Philip,
>
> On Tue, Feb 16, 2010 at 12:04 AM, Philip Jägenstedt <philipj@opera.com>  
> wrote:
>> On Mon, 15 Feb 2010 19:29:48 +0800, Silvia Pfeiffer
>> <silviapfeiffer1@gmail.com> wrote:
>>
>>> On Mon, Feb 15, 2010 at 6:06 PM, Philip Jägenstedt <philipj@opera.com>
>>> wrote:
>>>>
>>>> On Mon, 15 Feb 2010 14:41:53 +0800, Silvia Pfeiffer
>>>> <silviapfeiffer1@gmail.com> wrote:
>>>>
>>>> We've agreed on the basics for a long time, this is all about finding  
>>>> the
>>>> appropriate markup/structure to express it, isn't it? I find my
>>>> <track><source> suggestion confusing because <track> actually contains
>>>> many
>>>> tracks. Also, it makes the nesting mandatory, as <source> cannot be  
>>>> given
>>>> as
>>>> a direct child to <audio>/<video> as that would conflict with the
>>>> resource
>>>> selection algorithm. <trackgroup><track> is intended to address both  
>>>> of
>>>> these problems.
>>>
>>> Oh, I didn't believe we would use <source> as the top-level, but it
>>> would continue to be track.
>>>
>>> So, it would be either:
>>>
>>> <track role="SUB">
>>>  <source src="subtitles.en.srt" lang="en">
>>>  <source src="subtitles.sv.srt" lang="sv">
>>>  <source src="subtitles.fr.srt" lang="fr">
>>>  <source src="subtitles.zh.srt" lang="zh">
>>> </track>
>>> <track role="captions">
>>>  <source src="captions.en.srt" lang="en">
>>>  <source src="captions.sv.srt" lang="sv">
>>>  <source src="captions.fr.srt" lang="fr">
>>>  <source src="captions.zh.srt" lang="zh">
>>> </track>
>>>
>>> when we want just one of the sources be chosen as the subtitle track.
>>>
>>> Or it would be:
>>>
>>> <track src="caption.en.srt" lang="en" role="CC">
>>> <track src="subtitles.sv.srt" lang="sv" role="SUB">
>>> <track src="subtitles.fr.srt" lang="fr" role="SUB">
>>> <track src="subtitles.zh.srt" lang="zh" role="SUB">
>>>
>>> if they were all independent and possible to be activated in parallel,
>>> just like the grouped tracks above can be active in parallel.
>>
>> Regardless of the element names, I think that if a minimized form  
>> (where the
>> inner element is omitted) is allowed it should result in 4 mutually
>> exclusive tracks, as this is quite surely the most common case.
>
>
> I'm not sure what is the most common use case and maybe Geoff as a
> practician can help here.
>
> Is it more common to have a list of alternative text tracks (probably
> subtitle tracks) on a video, or is it more common to have a mix of
> text tracks (probably of different roles, CC, SUB, TAD, etc) that can
> potentially be active together on a video.
>
> We could, of course, add in the "active" attribute that we also have
> in the JavaScript API and make selective tracks active just like we do
> it with multitrack files:
>
> <track src="caption.en.srt" lang="en" role="CC" active="true">
> <track src="subtitles.sv.srt" lang="sv" role="SUB" active="true">
> <track src="subtitles.fr.srt" lang="fr" role="SUB" active="false">
> <track src="subtitles.zh.srt" lang="zh" role="SUB" active="false">
>
> Then we do indeed replicate the multitrack structure of files.

Agreed, except active should be a boolean attribute, like autoplay.

>> Since we all seem to be at least somewhat confused, here's a "common"  
>> and
>> "complex" case expressed in both <track><source> and <trackgroup><track>
>> markup. <track> in both forms clearly does *not* mean the same thing.  
>> Draw
>> your own conclusions about which is better.
>
> Excellent, very much appreciated!
>
>
>> Simple case: two subtitle tracks in two different languages:
>>
>> In <track><source> markup:
>>
>> <video src="video.ogv">
>>  <track role="SUB">
>>    <source src="subs.en.srt" srclang="en">
>>    <source src="subs.sv.srt" srclang="sv">
>>  </track>
>> </video>
>>
>> In <trackgroup><track> markup:
>>
>> <video src="video.ogv">
>>  <track src="subs.en.srt" role="SUB" srclang="en">
>>  <track src="subs.sv.srt" role="SUB" srclang="sv">
>> </video>
>>
>> <trackgroup> is omitted because it is only needed when some tracks can  
>> be
>> enabled in parallel. If one doesn't like typing role="SUB" twice one  
>> can use
>> <trackgroup role="SUB">. In practice I think role="" will simply be  
>> omitted
>> in simple cases like this, if the selection algorithm we define allows  
>> it.
>>
>>
>>
>> Complex case: two subtitle tracks and two caption tracks in two  
>> different
>> languages:
>>
>> In <track><source> markup:
>>
>> <video src="video.ogv">
>>  <track role="SUB">
>>    <source src="subs.en.srt" srclang="en">
>>    <source src="subs.sv.srt" srclang="sv">
>>  </track>
>>  <track role="CC">
>>    <source src="cc.en.srt" srclang="en">
>>    <source src="cc.sv.srt" srclang="sv">
>>  </track>
>> </video>
>>
>> In <trackgroup><track> markup:
>>
>> <video src="video.ogv">
>>  <trackgroup role="SUB">
>>    <track src="subs.en.srt" srclang="en">
>>    <track src="subs.sv.srt" srclang="sv">
>>  </trackgroup>
>>  <trackgroup role="CC">
>>    <track src="cc.en.srt" srclang="en">
>>    <track src="cc.sv.srt" srclang="sv">
>>  </trackgroup>
>> </video>
>
> Just like Geoff, I am wondering in this case whether this means you
> either activate all the subtitles together or you activate all the
> captions together. Since <trackgroup> is about enabling tracks in
> parallel, this is what this would mean to me, right? And each
> trackgroup against each other is exclusive, i.e. in this example I can
> only either have subtitles or captions active, right?

It is my assumption that mutually exclusive tracks are by far the most  
common case, that only one track can be active at once and enabling a  
track implicitly disables all others. This is the way every software media  
player, DVD player, etc I have ever used works. I have also sometimes  
wished I could see two tracks at once, mostly when watching foreign films  
for the purpose of learning the language. Still, it shouldn't be the  
default behavior.

All <track>s in a <trackgroup> are mutually exclusive, but the main point  
is that <track>s in different groups are *not* mutually exclusive, so in  
the above a subtitle track and a caption track can be enabled in parallel,  
but only 1 subtitle track 1 one caption track can be enabled  
simultaneously.

Note: it is <trackgroup> that determines which tracks are mutually  
exclusive, not role="". If role="" is the *only* factor for determining  
which tracks are mutually exclusive then we don't need a grouping element  
at all (except to save typing).

The idea is also that the structure somewhat reflect a sensible text track  
selection menu. If there are no groups, the menu just contains a flat list  
of tracks of which only one can be activated. If there groups then the  
menus will have submenus, where one track from each submenu can be  
activated.

I hope this makes my position a bit more clear.

-- 
Philip Jägenstedt
Core Developer
Opera Software

Received on Tuesday, 16 February 2010 04:56:51 UTC