Making DGIndex Project
Now that you've ripped the VOB files, you need a way to access
them. Some editing software can edit mpeg2 natively but this is often
slow and inaccurate. So, to access our vob footage we are going to
index it with DGIndex.
This is a program that was previously known as DVD2AVI but due
to various updates and a change of focus the programs previously
associated with this method have been collected and renamed into a
package called DGMPGDec. This package (supplied with the AMVapp)
includes the program DGIndex which indexes mpeg2 files for use in
programs like avisynth and DGDecode.dll which is the avisynth plugin
that reads the DGIndex project files.
What DGIndex does
Let me take a minute to explain what we're going to be doing
as it may not be instantly obvious. We are going to
make DGIndex project files (*.d2v). These files can be read by
other things and they help programs access DVD footage with greater
When DGIndex makes a project file, it indexes the mpeg2 data.
It looks at the footage and records information about it so that it is
easier for software to find a certain frame in the stream. It's the
video equivalent of writing an index in a history book to help you find
the page about Davy Crockett.
This allows a greater amount of stability than you will find
in more direct ways of accessing the DVD footage (such as using Direct
Show like many editing applications do).
Loading your Vob Files
Open DGIndex and go to the 'File' menu.
Choose Open [F2], select all the vobs you want opening and
click ok. If they have loaded in the wrong order you can move them
around using the Move Up and Move Down buttons.
When you have opened a series of vobs you can add extra vobs
to the end as you see fit but it is
recommended to try and not mix vobs from different VTSes as
they may be
encoded differently. Appending extra episodes is usually fine but keep
extras seperate if you can.
It is up to you to decide how many vob
files you load into a single project. I personally like to have one
project file for each dvd - other people rip their vobs by episode and
choose to have one project file per episode. You can even have one
project file per vob if you really like. It doesn't matter as long as
you remember how you created the project so, if you need to, you can
easily do it again another time. One piece of advice I will give is
that the fewer project files the better when editing vob footage
directly in programs like Premiere.
Once you have all the vob files you want for this project
listed and they are in the order you need, press ok.
You should be able to use the bar at the bottom to browse your
footage. If it's a bunch of blocks then it hasn't been ripped
correctly and you should go back to your dvd ripper software and try
again and see why it isnt decoding the encrypted footage.
The frame seeking in the DGIndex interface only searches
through keyframes so you will not be able to find exact frames. Like
VirtualDub, you can select an In and an Out point using the [
and ] buttons but you should not do this. As I've said
previously, one benefit of using dvd files is being able to reconstruct
the footage later. You cannot do this if you select an area because it
incredibly hard to recreate later.
Now that you have your footage loaded, let's have a preview of the
footage. Press F5
shows a preview of the footage and gives you all sorts of useful
information about your mpeg2 stream.
Aspect Ratio: This can either be 4:3 or 16:9. If the
aspect ratio is 16:9 then the DVD is anamorphic. Remember this
information as it will be important later.
Profile: This is a new addition to the info that tells
you about the mpeg2 stream. All dvds are main profile @ main level
(which is 4:2:0 YUV) but it is possible to encode mpeg2 at a higher
level - you just wont find any such encodes on your DVDs.
Frame Rate: This can be 29.97fps (for NTSC), 23.976fps
(for FILM) and 25fps for PAL. It can actually be anything depending on
the way the mpeg2 source is encoded but these are the conventional
Video Type: This can be NTSC, PAL, FILM or a mixture
(hybrid). It is very important if you get a DVD that is 96% or more
FILM as I will explain later.
Frame Type: This is a flag on the footage which gives us
info on how it is being stored and hence how
to decode the video. Interlaced means the footage is probable encoded a
field at a time instead of a frame at a time. Progressive means that
the footage is encoded a frame at a time.
You may find some sources change because of the way they have the flags
set - I will explain these when we analyse the footage later.
Audio Format: This can be DD (Dolby Digital), DTS, MPEG2
or PCM (uncompressed). In this picture DD 3/2 448 means that it is a
5.1 channel (3 front, 2 back) dolby digital audio encoded at 448 kbps.
This is good quality audio.
Before telling you what settings you will need to put into DGIndex it
is important that you understand about some of the basic video types
you will come across when doing this preview.
16:9 'Anamorphic' Footage
Anamorphic dvd encoding is designed to squish the footage horizontally
to fit a regular 4:3 image size. Most dvds within a standard are
encoded with the same resolution (720x480 for NTSC and 720x576 for
PAL). This resolution is chosen to show a 4:3 image on a TV (as TVs
have 'rectangular' pixels). When a movie is anamorphically encoded, a
16:9 image is squished in order to fit into 720x480 or 720x576. What
happens later is that this image is then fed to a Widescreen TV and it
is displayed to fill the screen, restoring its aspect ratio. This
avoids having to use letterboxing (adding black borders) on a DVD and
hence improves image quality. However, as it makes everyone look
squished you need to fix this somewhere down the line if you want to
use this footage (unless you want to produce an ananmorphic dvd).
Interlaced NTSC and Progressive FILM Video
Interlaced video (when done right) is encoded on DVDs as
fields instead of as frames. Each field is encoded seperately and then
weaved together to make the interlaced video - if you have read the
Theory Guides this will make some sense. Progressive footage, however,
does not have interlacing and so it can be encoded one entire frame at
Progressive footage is usually found on FILM sources. When I say FILM I
mean that the footage on the dvd has been taken and encoded directly
from a movie
film source (24fps - converted to 23.976fps). This is the a high
quality way to encode video. The only problem is that NTSC needs
29.97fps - which is why progressive FILM encoded dvds have the ability
to Telecine (do 3:2 Pulldown) during playback which interlaces them to
29.97fps so that the video looks correct on a TV. The actual video
isn't interlaced, the dvd player interlaces it during decoding using a
fixed telecine pattern. Again, the thoery
guides will make some sense of this. This telecine process is
completely optional during decoding and if we wish we can Force FILM
on these sources in order to get the original progressively encoded
frames at 23.976fps. This is perfect for digital video editing. If you
have a progressive source, be happy.
Progressive FILM encoding is usually only to be found dvds of
movies produced for cinema. There are some anime
dvds that are truly progressive but if you are working from TV shows
then they are more likely to be plain NTSC. You can definitely use
force film on Princess
Mononoke, Spirited Away (and many other Disney-released Ghibli movies)
but Adolescence of Utena is not progressive. You should always check
by pressing F5 or even better scrolling to the middle of a source and
pressing F6 to see what the pattern is in the middle (as some studio
bumpers are interlaced when the movies themselves are actually
progressive). There are only two TV shows that I own that are
progressively encoded and those are the Eva Renewal dvds and the korean
of Rose of Versailles.
This is a new menu in DGIndex which is designed for people who
are using transport streams. You will not need this menu as it doesn't
apply to DVD footage.
iDCT Algorithm: This selects the accuracy of the
decoding... but it's a level of accuracy that you are unlikely to
notice visually - it's actually hard to notice it mathematically. 32big
SSE MMX is default and the best option for most people's processors.
Field Operation - Forced Film: This is an important
option and what you choose here will depend entirely upon the Video
Type you observed when you previewed with F5 as there is a chance
that your video is progressive, as already discussed. If you have a
source whilch is more than 96% FILM then you can choose Force
FILM in order to return the original progressive frames. However,
be careful with this option as it can sometimes be inaccurate
especially if it is not perfect 100% FILM. Never choose this if it is
obvious that you have a hybrid source with a large amount of NTSC. PAL
users will never want to set Force FILM.
Field Operation - Raw Encoded Frames: This is an
experimental option which has interesting applications for Hybrid
sources. It decodes the original frames exactly as is which ignores any
frame duplication in FILM areas. This is not an option you will want to
use unless you are confident about what it does as it will often
produce a source with irregular framerates and a mix of progressive and
Color Space: YUV should always be selected here but
it doesn't matter as it doesn't get used in project files anyway.
YUV -> RGB: PC Scale should be chosen but again,
this option will not be looked at unless you use the dreaded VFAPI,
which I don't recommend.
Luminance Filter: This is to increase brightness. Out
of date an unnecessary. The same thing can be done in avisynth.
Clip and Resize: This is another function that should
not be used as Avisynth can do exactly the same thing and is easily
reconfigurable. Doing it here will not speed up the cropping, so do it
in avisynth so you can change the settings later.
The audio menu is to set up how (if at all) you want to decode any
audio streams that are part of these vobs.
Output Method: If you don't want to use any of
then select Disable. It will be much quicker to process that way.
Otherwise there are a few things you can do. Demux (which is best
quality) or Decode to Wav which isn't as good quality for AC3 but is
just like demuxing for Wav.
Track Number: The audio track you want to
process. DVDs can have any amount of audio tracks but generally only a
few are used. Unfortuantely DGIndex has no way of knowing which
language is on which track. Sometimes Japanese is first and English
second, sometimes it's the
other way around - so to be certain of getting the track you want, you
should select 'demux all tracks' in the output method.
Dolby Digital Decode: Dolby Digital audio should be should be
demuxed and decoded externally if you want the best quality - see the
Audio Guides. You wont need these options.
48 -> 44.1Khz: This converts dvd's native 48Khz audio
to 44.1Khz which is that used by CDs. The only reason you would want to
do this is incase you have a very old soundcard that cannot play 48Khz
audio. In such a case you could probably do with a new soundcard :)
Normalisation: When decoding, this will boost the audio
so it is as loud as it can be without clipping. This is a useful
feature when decoding PCM wav audio but does not apply when demuxing.
Making a Project File
Once you've got all these settings right, you are ready to
save a DGIndex project file. So, select "Save Project"
from the File Menu, or just hit F4. Make sure you save you project file
somewhere sensible. If it takes much more than about
20 minutes with these settings then you need a serious defrag or you
need to stop using your USB 1.0 Hard Drive :) When it is done you
should hear a nice ping sound and have a .d2v file to play
If you have processed audio it will be in the same folder.
One final piece of advice is that DGIndex project files refer
to the drive and folder that the footage is stored. If you move your
vob files at any point then you will need to remake the project file.
The project file, however can be moved or copied anywhere you like.
Using the DGIndex Project in AVIsynth:
Just as DGIndex is the best way to index a dvd, Avisynth is
the best way to access that index.
By this point you should be fairly familiar with Avisynth,
having used it in both the Avisynth tutorial and when looking at the
features of VirtualDubMod. What we need to do is make an Avisynth
Script that imports our .d2v file.
Any AMVapp users are lucky, as they will already have an .avs
file created for each .d2v file thanks to a template that DGIndex can
use. If you are not using the amvapp, you will need to create your avs
file manually. You can do this by using a text editor, as before, to
.avs file that contains the following command:
Or you can import the d2v file using the Open via AviSynth
option in VirtualDubMod and select the MPEGG2Source (mpeg2dec.dll)
template. It will automatically create an avs file for you.
Load the avs file into VirtualDubMod using the regular 'Open
video file...' option (or drag and drop). Please. A lot of
people jump straight into trying to load theri avisynth script into an
editing program like Premiere and get all confused when it doesn't
work. Premiere is not going to give you any useful information, you
should test your scripts in VirtualDub(Mod) or Windows Media Player at
If you are given an error you should refer to the Testing the
AMVapp page. The AMVapp tests are there to make sure there is
wrong with the actual software you use. If all the tests work fine then
you have made some mistake somewhere, either in the d2v creation or in
making your avs script.
With the right avs script and the AMVapp installed then
everything should be working fine. If you have installed the software
manually then you will need to make sure that Avisynth is correctly
installed and you have DGDecode.dll in your default plugin folder.
Here is a quick summary of possible errorsthat you might get,
just in case:
"avs is an unrecognized file type" - This error, or
similar to it, is what you can get if avisynth isn't installed
correctly - particularly if it isn't registered correctly. Using the
amvapp should solve this.
"MPEG2Source: unable to load file "somethingorother.d2v"
something.avs, line something" - This error will occur if your
MPEG2Source command isn't pointing to a d2v file or you've made a typo.
"Unrecognized exception: The memory at blah blah blah is
unreadable" - This is a nasty error, but it's not always uncurable.
may need to cleanse your system of avisynth, mpeg2dec and
start again. Doing a purge, installing the AMVapp and remaking the d2v
files should fix this. If it still occurs it may be a real memory issue
but this should not happen with just one script and not with the
versions of the programs included in the newest AMVapp. This error
often occurs when using newer versions of DGIndex without updating
"Unknown command MPEG2Source" - This will occur if
a typo or if the plugin that the command is for hasn't been
loaded - in this case the plugin is DGDecode.dll and should be in
the Avisynth Plugins folder. If you are not using autoloading, you will
need to load the plugin manually using the Loadplugin command.
"obsolete d2v" - This will happen if you use an old
DVD2AVI-created d2v file with the new dgdecode. It won't work, you
should remake your d2v project file with DGIndex for greater quality
However, if all has gone well you should see your footage
appear in VirtualDubMod.
Before we analyse the footage that you have, there is one last
thing to tell you about and that is the Post Processing settings in
the MPEG2Source command.
Here we have some extra commands that do
ipp=true/false - this setting
false) tells the plugin whether the source is interlaced or not (for
post processing). The latest version of dgdecode will actually set
this based on the frame type if you do not specify true or false. This
is recommended - leave ipp out altogether.
cpu - this settings designates
the strength of the post-processing. The values are from 1 to 6 with 6
being the strongest. I find that 5 and 6 blur the material a lot but 1
to 4 simply improve quality, so I almost always use setting 4 to reduce
mpeg2 blocking and ringing.
upconv=true - this outputs YUY2 footage instead of YV12.
This is HIGHLY recommended if you are going to make clips or edit with
interlaced footage as this will guarantee that the chroma in the image
is upsampled correctly depending on whether it is a field-based or a
frame-based encoded image.
info=true - this prints useful information about the
decoding of a particular frame, good for debugging.