[Matroska-devel] Re: Multi-Angle

Paul Bryson paul at msn.com
Fri Sep 17 12:15:56 CEST 2004


"Moritz Bunkus" wrote...
> 1. 'Seperate video track'
>
> Bad because the players would think that there IS actually another video
> track. The user might then select that video track and the player would
> probably go to hell because it doesn't receive data for a long time,
> only where there are two angles.

On the remote possibility that a user actually selected another video track 
in a player that supported that (less than 3% of actual players used I would 
guess) AND it didn't work, then its pretty safe to assume that someone smart 
enough to change to a track that doesn't work can change back to a track 
that does.  I can't see this ever being an issue.

> 2. 'Put angles in the same track sequentially'
>
> Bad because a) timecodes would not be continous, b) current demuxers
> would show all angles after another totally breaking A/V sync, c)
> interleaving would be completely off, d) would be non-compliant with the
> specs (see BlockDuration, "When not written and with no DefaultDuration,
> the value is assumed to be the difference between the timecode of this
> Block and the timecode of the next Block in "display" order (not coding
> order).")...

I think I was thinking of this differently.  If you have a video where it 
begins with part A, has a part B, and ends with part D, but there is an 
alternate 'angle' for part B called part C, then you could store it like 
this:

[A][B][D][C]

The beginning timecodes of part C would be right after the last timecode of 
part D.  This has the drawback of part C eventually being played in a player 
that doesn't honor Chapters, and also the possibility of a pause that I 
mentioned earlier.

> My proposal is that we should create a new _track type_ for this kind of
> thing. At the moment six track types are defined and three are used
> (audio, video, subtitles; complex, logo, control). I'd like to add a
> track that is 'associated' with another track. The track headers would
> ONLY contain two or three (new) elements:

To me it seems very backwards to label a VIDEO track as anything other than 
a video track.  Even if you intend to use it as an alternate 'angle', it is 
still simply a video clip and could be played alone.  Remember that these 
types of things aren't always as simple as a 1:1 alternate.  For example, 
seamless branching where one route is just as likely to be taken as another 
depending on how the user sets up for what they want to watch at the 
beginning.

Also, from the example above and using different tracks, the part C is 
significant longer than its counter part, part B.

[...A...][...B...][...D...]
         [.....C.....]

Do you leave a gap in the timecodes between B and D?  Or what if parts B and 
C are both stored in separate tracks?

[...A...][...D...]
         [.....C.....]
         [...B...]

Or what if it is a video that has many parts that are all stored in separate 
tracks that are using some config set by the user to determine what order to 
play them in?  Then which one is the 'Associated' track?  For any complex 
scenario this just stops making any sense.

Really I think that you should leave all VIDEO tracks labeled as such.  The 
chances of any issues from this are too remotely small to be concerned 
about.  If some player out there does have an issue, then it must not be 
respecting the track's  FlagDefault element and it should be fixed.  No need 
to change the specs.


Atamido 






More information about the Matroska-devel mailing list