[Matroska-devel] Multi-Angle (summary) + Multi-resolution files
steve.lhomme at free.fr
Sun Sep 19 11:18:44 CEST 2004
As we are in the middle of having nice DVD rips (the whole content
mapping to Matroska chapters is done) we are facing 2 problems :
- resolution changing on the fly
I think these problems are somehow related. Especially because the
solution for one will have to be compatible with the other.
For multi-angle we have 2 solutions :
- use one video track per angle, and marking this track with the number
of the angle (new element required)
- use one video track and put the angles for the same timecodes in the
The latter is closer to the DVD philosophy. Which means you only need
one video stream output. But that video stream is dynamic and can be
changed on the fly, especially the resolution change. But in the other
hand I don't think the resolution of an angle can change in the
middle... The thing is that DVD uses MPEG2 which can change the
resolution any time, as long as it stays in the limits of the original
resolution. But that wouldn't apply to Matroska which can have a lot of
resolutions and cropping of original DVD content...
It probably doesn't make sense to have different codec for different
angles (well, I think it does but let's not consider this case). So both
solutions are probably valid. But there is another problem. It's very
common on the DVD to have the menu in 4:3 and the movie in 16:9. And I'm
sure anyone would want to crop the content of the 16:9 part for better
encoding efficiency. So the question is: should we use the same video
track for the menu and the movie ? Or not...
In the first case that means the codec has to support internal
resolution change. So that would limit the possibility to only a few codec.
In the second case that means we have different video streams and that
the player has to select another video track when seeking to another
part of the file (let alone the angle selection).
I'm quite undecided on which way we should go. If we go the separate
tracks way, we need managed chapters for playback. Otherwise the file
will break older players. But in the other hand, a file should be
playable without chapters... But doesn't seem possible in this case. For
example the AngleNumber set in the TrackEntry would be used by the
"chapter processor". And I think instead of a TrackSubID, it should be a
TrackChapterPrivate, some private data that the "chapter processor" can
use when seeking is used. So I think it should go in the chapters
section, and not in the track section, especially since it depends on
the "chapter codec". Something like:
<EditionEntry> <- the managed edition
<ChapterAtom> <- track-related values
the angle number
the angle number
<ChapterAtom> <- the actual chapters
So, with this solution, that means that when seeking in the file:
- you have no chapter, so you have to manually select the video/audio
streams you want to play, knowing that some video tracks are overlays of
- you have managed chapters, and so the "chapter processor" (or chapter
codec) has to handle the track changes, and also inform the player of
resolution changes if needed...
There is also the possibility of having a Segment for each DVD domain
(3). And have a fix (final) resolution for each video track in each
domain. I think that's the kind of limitation you have on DVDs.
robUx4 on blog <http://robux4.blogspot.com/>
More information about the Matroska-devel