Log in

View Full Version : Multiangle support in DVD2AVIdg


vispgraedde
9th May 2004, 20:47
As requested here is a new thread :p

First the problem that I noted in the 1.2.0 thread.

41: 51,51,52 -- 3 [vob/cell=1/1]
[GOP START]
42: 52,53 -- 2 [vob/cell=2/1] [3:2 pattern break] [ILLEGAL TRANSITION!]

I feel that this illegal transition should not exist at all, since when you change angle during playback, you don't go back to the beginning of the angle you switch to.

Actually I don't know if you can change angle when an angle is being played at all. In normal movies where there is a single stream first, I believe you need to have a two second headroom before the actual angle part to let the viewer select what angle to view.

So what I propose to begin with is that dvd2avi defaults to one anglepath through a vob, and the resulting d2v only contains one path instead of all paths interleaved, while at the same time makes an angle hint file that dvd2avi can use for the next part of my idea.

(I don't know if you in the vob can have a default path specified. Maybe someone else knows.)

Next would be some way to tell dvd2avi what angle path you want to take using some GUI tool that would list something like

01: 1
02: 1 2 3 4
03: 1
04: 1 2 3 4
05: 1
06: 1 2 3 4
etc.

where you can mark one angle in each step 01..end that you want in the resulting d2v. All places with only one angle will be preselected and are only there to give an idea of where the angles are.

According to DVD Maestro helpfiles, each place with angles have to have the same number of angles through the entire movie, so you can't have one place with 2 angles and another with 3.
I don't know if this is a restriction by the standard or only in this authoring tool.

An alternative to the above would be to simply create one d2v per angle, if the restriction is true for all dvds that each place with angles have to have the same number of angles throughout the video.
Also according to these helpfiles, the main video must go from start to end, so you can't have the following path:

01: 1
02: 1 2
03: 2

The final and easiest solution is of course "Just don't have support for multiangle vobs and force users to demux into single stream vobs themselves" :P

Guest
9th May 2004, 21:01
Isn't it true that the info DVD2AVIdg would need to handle multiangle the way you suggest is not present solely in the VOB but requires additional files from the DVD? If so, then I will agree with this:

"Just don't have support for multiangle vobs and force users to demux into single stream vobs themselves."

vispgraedde
9th May 2004, 21:10
From the d2v (new one from RC6)

7 0 2048 1 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 165888 1 1 10 11 12 13 10 11 12 13 10 11 12 13 10 11
7 0 399360 1 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 620544 2 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 796672 2 1 10 11 12 13 10 11 12 13 10 11 12 13 10 11
7 0 1019904 2 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 1241088 3 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 1419264 3 1 10 11 12 13 10 11 12 13 10 11 12 13 10 11
7 0 1638400 3 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 1859584 4 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 2037760 4 1 10 11 12 13 10 11 12 13 10 11 12 13 10 11
7 0 2256896 4 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 2478080 5 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
7 0 2656256 5 1 10 11 12 13 10 11 12 13 10 11 12 13 10 11
7 0 2875392 5 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13

The vob(id?) that goes from 1-5 here matches exactly angle 1-5.
I don't know what those values mean other than that they fit the angle layout exactly.

From the way I understand it
7 0 399360 1 1 12 13 10 11 12 13 10 11 12 13 10 11 12 13
is supposed to be followed by
7 0 3096576 1 1 10 11 12 13 10 11 12 13 10 11 12 13 10 11
to produce correct output...

It would be nice if someone who knows more about how multiangles work could chime in with some info.

vispgraedde
9th May 2004, 21:25
I tried to manually reorder in the d2v so that all "vob cell" "1 1" are followed by each other and the same for 2 2 and 3 3, etc. and then ran parsed2v on it successfully without any illegal transitions.

I was outsmarted by mpeg2dec3dg.dll though since that still output the frames in the order it did with the original d2v :(

(This is only an observation, nothing more :p )

Guest
9th May 2004, 21:36
Tell me again, exactly how are you creating this VOB? I don't know anything about Maestro so don't just say I use Maestro.

vispgraedde
9th May 2004, 22:05
Actually... You're right about all info not being available :(

I tried a little more with an example with layout:

1 2 3
1
1 2 3
1

and they got id's

1 2 3
4
5 6 7
8

from which you can't say anything about if it's multiangle or not.


Sorry I can't really explain very well how I create the vob. I just use a professional authoring tool that have support for multiple angles.
I could provide pictures of what I do in maestro but that would not help you much if you don't have it yourself.

I'll give it a quick try anyway.
I select my main movie and import it as such.
The angles have exactly the same GOP structure (a requirement), and I add those in addition to the main movie, in their own "tracks", but aligned so that the GOP structure is the same...

If 1 is main movie, 2+ is angles and 0 is empty, it would look like:
111111
020020
030030
for an example with 3 angles at two places.
Before interleaving this would then be changed to
125569
030070
040080


This is interleaved in the vob as 1234556789 where the 234 and 678. parts can be a1b1c1a2b2c2a3b3c3 (where a1 is one or more gops from 2, b1 is the same number of gops from 3, c1 is same number of gops from 3, a2 is one or more gops from 2 that comes after a1, etc.)

And with these new findings I guess there really is no way to detect from the vob alone what part is multiple angle and what part is the main stream.

I hope that sheds some light on it from the way I understand it.


edit
The illegal transitions comes from dvd2avi reading the angle part as a1b1c1a2b2c2a3b3c3 instead of a1a2a3b1b2b3c1c2c3 which would be the correct way to handle the angle. With no way of knowing that it is an angle there, it makes life hard for the program.

sorry. screwed up the numbering a little. the vobid changes for the main stream as well at the point where the angles are.

Guest
10th May 2004, 01:32
Thanks for the explanation. It is clear and complete. Let me cogitate on this for a while. What I still don't understand is that your "professional" tool is generating an illegal stream. What do you do with such a VOB?

vispgraedde
10th May 2004, 06:33
On normal video playback, powerdvd or any other player that can read the info available not in the vob but in the ifo will play
1234556789
as
1 (2|3|4) 5 5 (6|7|8) 9, so if the user have elected to play angle 2, when it reach (2|3|4) it will only decode b1b2b3. This is something I thought was available in the vob at first, but it seems this is stored in the ifo. (edit: I think the ifo contains pointers to the vobid's so that the player can correctly skip the id's that it should not decode from)

In other words when it reach (2|3|4) it will "discard" the angles from a1b1c1a2b2c2a3b3c3 that doesn't match the one the viewer wants to see.
Without this info, the player will try to play it as 1 2 3 4 5 ... (and therefore as a1b1c1a2b2c2a3b3c3, because they are interleaved in time at the point of the angle) and just like dvd2avi will think it is illegal transitions when there are angles.

Unless I have misunderstood again, the vob together with its corresponding ifo (to get the angle layout) is a legal stream, but only vob is not a legal stream if played sequentially. (edit: the vobrator note below indicates that it is possible to "regroup" and produce correct output without illegal transitions)

(I should have done more research on multiangle before starting about this :( )

PS.
DVD Maestro (no longer developed after Apple bought it) was when available only beaten by Scenarist when it comes to professional tools for Windows. I find Maestro 100x easier to work with than Scenarist though which is why I continue to stick with it.

edit:
fixing the numbering here too

vispgraedde
10th May 2004, 06:44
If you still have the sample clip I put up you can see the difference when playing in for example PowerDVD as "play dvd from hd" or whatever it was (put on loop and switch angle to see it) and playing the vob only.

vispgraedde
10th May 2004, 07:32
Sidenote. Vobrator is able to see the angles stream by stream instead of interleaved correctly from only vob without any ifo info, so maybe it would be possible to get dvd2avi to put the angles in the output in sequence instead of interleaved the way it is now? So that you don't get illegal transitions when processing a multiangle vob.

vispgraedde
10th May 2004, 08:45
After thinking about this some more, I change my feature request to simply:

Group video per vobid (or at least make it a selectable option.)

This solves the problem with illegal transitions and produces correct output of angles (leave it to the user to manually cut out angles he/she don't want/need).