Micro DVD Player Version 1.0 - Documentation Written by Locutus. Copyright © 2000 by Digital Video Engineers. All rights reserved. |
PLEASE READ THIS TEXT CAREFULLY TO UNDERSTAND HOW THE MICRO DVD PLAYER WORKS, AND TO AVOID UNNECESSARY QUESTIONS AND PROBLEMS ! |
ATTENTION! The author declines any responsability from the use of this program. This software may not be used with copyrighted material. The author doesn't intend to promote piracy by any means, and the scope of the application is limited to video processing tasks with home made digital video material.
Play DVD movies from CD or HDD as close to the original as possible, including as many features of the original DVD as possible and giving as much comfort as possible compared to original DVD viewing.
To achieve its goal, MDVDP has the following main features.
Usage of the Micro DVD Player is quite straightforward, most of its functions are self-explaining. Still I'd like to give some hints and information.
In order to be recognized by the player as an MDVD, a CD has to contain the movie's INI file in the root, named "MDVD.INI". If no such file exists on the CD, it is not treated as a Micro DVD.
The player supports drag-and-drop. You can drop files from any Explorer window or other file manager on the control bar. Depending on the file extension, the player behaves like the file was passed as a command line parameter (see next section!).
The on-screen display is available only in fullscreen mode and is currently turned on/off only via keyboard (default key is "O") or remote control.
You can run the MDVDP.EXE with the following types of command line parameters:
Note: If the name of an .INI or .MVD file does not begin with a drive letter and ":\", like "C:\", it is regarded to be a relative pathname to the directory where MDVDP.EXE (in case of command line) or the .MVD file resides.
If the player is already running, then the command line you start a new instance of the player with is passed to the already running instance.
>You can also Drag-and-Drop a file from any Windows Explorer or other type of file manager style window to the player's control bar. This makes the player act like it was just started with the corresponding file as command line parameter.
When playing a secondary language of a movie that uses Method One, MDVDP plays the video from the primary file and the audio from another audio-only file. Therefore two files have to be accessed at the same time. Although the data rate of the second file is only about 20 kB/sec, which should in no case cause performance problems, the reading laser of the CD-ROM is moved unnecessarily much.
To get around this problem, the player offers the function to automatically copy secondary audio files to a temporary directory on the harddrive and load them from there, while still playing the video from CD.
You activate this feature on the MOVIE tab of the configuration dialog. You can choose there whether you want to be asked if the player should copy audio to the HDD, or whether it should do so automatically. Plus you can choose whether the copied files are removed from HDD after the movie ends, either automatically or after a confirmation. If you leave the files on HDD, they will automatically be used again when you watch the movie again. Furthermore you can set the directory where to store the temp audio files.
The copying of audio files to HDD is initiated when a secondary language is activated while watching a movie. Deletion of audio files is done when the movie stops.
You can manage the temp audio (meaning: delete them independently from inserting the movie CD) in the BOOKMARKS tab of the configuration dialog.
The control bar is where all the interesting action takes place. A little screenshot:
I'll explain the function of all its buttons now, from left to right. Note: Buttons that are currently inactive (=not clickable) are shown in light grey, while active buttons have a black icon.
Icon | Function | Short- cut |
---|---|---|
The long horizontal bar below the display is the Movie Position Slider. You can quickly jump in the movie by clicking and/or holding the mouse in this slider. Note: When your main movie consists of two CDs, a little vertical bar shows the position in the movie where the CD needs to be changed. | ||
![]() |
Increases the main volume of the movie (including movie itself, the menu and all special feature vides) by one level. | PAD + |
![]() |
Decreases the main volume of the movie (including movie itself, the menu and all special feature vides) by one level. | PAD - |
![]() |
Mutes/unmutes the movie (including movie itself, the menu and all special feature vides). | PAD * |
![]() ![]() | By clicking this area you can open/close the hatch hiding the advanced contol buttons. | |
![]() |
Toggles the time display between elapsed and remaining time. | T |
![]() |
Opens a popup window containing the Run Special Video list when in MDVD Mode. Only available while the nav menu is running. | S |
![]() |
When in MDVD Mode, this button lets the player return to
the menu from a running movie, or, when clicked a second time, restart the
movie at the position you left it for the menu. In File Mode this button opens the Playlist Editor, which is very easy to use. Besides the command buttons at the bottom: to add/remove single files, double click them in the filelist/playlist window. |
M |
![]() |
Opens a popup window containing the Jump to Chapter list when in MDVD Mode, or the Choose File list when in File Mode. | C |
![]() |
When in File Mode, this button toggles the Shuffle Mode of the player. When shuffle is active, the files in the playlist are played in random order. Each time shuffle is activated or playing starts, the random order is renewed, and lasts until you turn off shuffle or playing again. | H |
![]() |
When in File Mode, this button toggles the Repeat Mode of the player. There are three modes: no repeat, repeat one and repeat all. Repeat one plays the selected file over and over again, repeat all starts the whole playlist from the beginning when it reaches the end. | R |
![]() |
Lets you add a new bookmark for the movie currently
running. Bookmarks can be edited in the Configuration dialog. Note: A bookmark is a personal marker in the movie that you can jump to directly; you can mark your favourite scenes that way.) |
A |
![]() |
Opens the Jump to Bookmark popup window. | B |
![]() |
Lets you choose another language in a popup window if the movie being played has more than one language available. | L |
![]() |
Lets you choose another subtitle or deactivate them in
a popup window if the movie being played has subtitles available. IMPORTANT: Currently Micro DVD Player only displays the subtitles when you watch the video in Fullscreen Mode ! This might change in a future version. |
U |
![]() |
Using this you can quickly choose the necessary files for the Quick-INI Feature. See Configuration for details. | Q |
![]() |
Opens the Configuration Dialog. | |
![]() |
Toggles between MDVD and File Mode. In MDVD Mode the program is ready to play Micro DVDs from the CD-ROM or HDD (as selected in the Configuration or using the Movie Source button), or construct INI data internally on the fly if Quick-INI Mode is selected. Quick-INI Mode is useful if you want to play a video file with either an audio file (foreign language) synchronously or view subtitles, without having to write an INI file. In File Mode you can play freely play single audio/video files, which you compose in the Playlist. | F |
![]() |
Toggles the movie source for MDVD Mode between Load from CD-ROM, Load from Directory and Quick-INI. See Configuration for details. | G |
![]() |
Toggles the Zooms State the video window. There are three size states: original size, double size (only available if the double-sized video still fits on your screen!) and fullscreen. | TAB |
This currently keyboard-only function toggles the OSD (on-screen display) in fullscreen mode. Depending on the settings you made in the configuration dialog, the OSD is either turned on/off, or toggled through off/mode 1/mode 2. | O | |
![]() ![]() |
Steps one frame back/forward in the movie. Note: These buttons are only available when the movie is in Pause-Mode. | PGDN PGUP |
![]() |
Play. Starts the movie/file when in Stop mode, or
continues playing when in Pause mode. When already playing and not
winding, and player is in File Mode, then the currently playing file is
restarted. Note: When the menu of a Micro DVD is running, pressing Play starts the movie at the position where you last stopped it. |
SPACE |
![]() |
Stop. Sets the player in Stop mode no matter what mode it is in just now. When playing a Micro DVD, the current play position is remembered (see Play command). | ESC |
![]() |
Pause. When currently playing a movie or file, the player is set in Pause mode. This also activates the functions Previous/Next Frame. | BACKSPACE |
![]() |
Previous chapter/file. When in MDVD Mode, the player jumps to the previous chapter of the movie. When in File Mode, the previous file in the playlist is loaded. | P |
![]() |
Next chapter/file. When in MDVD Mode, the player jumps to the next chapter of the movie. When in File Mode, the next file in the playlist is loaded. | N |
![]() |
By clicking on the dark circle around the play/stop/etc. buttons you can set different playback speeds. There are 2x and 0.5x forward (while playing continuoulsy), and fast winding (jumps once per second, 10 or 30 seconds forward or 5, 10 or 30 seconds backwards). | Cursor Left/Right |
![]() |
This button ejects the CD(s) from the CD-ROM(s) you set as primary and secondary CD-ROM drive in the configuration dialog. | E |
To move the mouse around on the Nav Menu or in the Chapters/etc. Selection Window, use the Cursor Keys. To simulate a mouse click in those cases, press the space bar. | ||
Some explanation for graphics that appear in the left-hand display area of the control bar: | ||
![]() |
This icon tells you that the player is in MDVD mode with Movie Source set to CD. Details on INI file format are here. | |
![]() |
This icon tells you that the player is in MDVD mode with Movie Source set to Directory (Harddisk). | |
![]() |
This icon tells you that the player is in MDVD mode with Movie Source set to Quick-INI. Details on Quick-INI are here. | |
![]() |
This icon tells you that the player is in FILE mode. | |
![]() |
Here the player shows the active subtitle. | |
![]() |
Here the player shows the active language. | |
![]() |
This tiny symbol tells you about the player's mute state. If you just see a white dot here without the curved lines on both sides, the player is set to mute. | |
![]() |
When you see this, the player is in Shuffle Mode. | |
![]() |
When you see this, the player is in Repeat Mode. | |
![]() |
When you see this, the player is in Repeat All Mode. |
When in fullscreen mode, you can activate an OSD (on-screen display) which shows important information like play time, play mode, chapter info, volume bar, seek bar, movie info etc. transparently over the video.
Therefore the OSD is only available when you use transparent subtitle mode. The OSD is activated by pressing the O key. (This is the default key which may be changed in the config dialog.)
When switching to fullscreen while a movie/file (not nav menu!) is running - or starting a movie/file when in fullscreen - for the first time since player start, the transparent overlay window is initialized. A little timer is necessary to enable the video to "settle down" (see here for details) before the init is done.
This initialization uses some kind of trick, and is quite timing critical. To make sure the next keyframe of the AVI passes before the init). Use the setting Minimum Wind/Sync Delay in configuration. Do not click the mouse or press keys while the init timer is running. On some systems, the transparency might totally fail due to behaviour of the graphics card etc. In that case, you can turn off transparent subtitles (and thus unfortunately disabling OSD) in the configuration dialog.
The OSD is only active when you watch the main movie of an MDVD, or watch a video in file mode. It is not available when the nav menu of an MDVD is running.
In the configuration dialog you can choose what elements of the OSD are visible, optionally you can use two OSD modes which are toggled using the OSD activation key.
Furthermore you can choose whether certain elements of the OSD (play mode, chapter info and volume bar) appear for a short time when the corresponding player parameter changes, and automatically disappear again (if they are not active due to active OSD anyway) after a configurable number of seconds.
This is where you set all of the player's parameters.
The configuration data of MDVDP (including settings, bookmarks for all movies and the playlist) are stored in an ASCII file named MDVDP.INI. This file is usually located in the same directory as the MDVDP.EXE
I find this method more practical than using the registry for the whole configuration, because you can easily transfer the program together with its config to another computer or Windows installation without worrying about config stored in the registry. Plus you can clean the program up more easily without having to deal with registy entries.
Important: When you burn a movie CD, do not include an MDVDP.INI on the CD. It won't be used anyway, cause it is not writeable on the CD. As you'll see later in this section, the file is automatically created and managed for each user. For playing a movie from CD, the user has to set the player to MDVD mode and the loading to "From CD", so the entry "MoviePath" has no effect in this case!
But since Micro DVD Player is able to run from HDD as well as directly from CD, and the MDVDP.INI has to be writable, it cannot be stored in the same dir as the EXE if it is run from CD.
To get around this problem, the location of the INI file is stored in the Windows registry, in the key "HKEY_LOCAL_MACHINE\Software\DVE\Micro DVD Player\INILocation" every time the INI file is saved. In case the program is run from CD, and there is no path stored in the registry yet, the INI file is saved in the user's WINDOWS directory, whose name is taken from the environment variable %WINDIR% (usually C:\WINDOWS for Windows 9x and C:\WINNT for Windows NT/2000).
When the program is started, it tries to read its configuration. First it checks if it is run from HDD or CD. (To do so, it tries to create a temporary file in its own directory and deletes it again, if creation was successful.)
In case of running from HDD, the program does the following:
In case of running from CD, the program does the following:
After loading the configuration, it is stored again immediately, so that it is then stored in its proper place (in case it was read from the WINDOWS directory but is to be stored in the program's own directory) and so that the registry entry denoting the location is written.
This has the effect that, if the program was run from HDD once, the INI file is always written to that directory on the HDD. Otherwise, if no HDD stored INI file is available and the program is run from CD, the file is stored to the user's WINDOWS directory.
You can move the program to another directory without having to change the registry entry manually, because when run from HDD, the program does not heed the registry entry, but only looks for the INI file in its own directory and then in WINDOWS, and later automatically stores the new location to the registry.
Micro DVD Player can be operated using IR Remote Controls. Currently only the RealMagic remote is supported. The remote buttons trigger the following functions:
Ok, now for the serious stuff: how to make an own Micro DVD.
First a note: I'm not going to explain the whole process of ripping a DVD here in detail, there are many good web pages about this.
Micro DVD Player plays everything that the Windows Media Player supports, since it uses the same system functions for the actual playback. So all video/audio files you create in this process just have to be playable by MediaPlayer to be recognized by MDVDP !
You could use normal VCD-format MPEG1 files e.g., or M-JPEG AVIs, or MPEG2 or even VOBs if MediaPlayer plays them on your system. But the highly recommended format for Micro DVDs is AVIs with MPEG4 video and MP3 audio, because this gives the best possible quality at the least CD space usage!
IMPORTANT: CDs used as Micro DVDs must have a volume label, because the player detects whether a CD is inserted by checking the label.
Note: The steps 2-5 are optional, so if you do not want or have a chapter list, nav menu etc., you can set up your MDVD very quickly, the INI file only consists of the MAIN and MOVIE section then. But to make it really interesting and looking cool, you should consider ripping the nav menu too, or at least putting in the chapters list.
Step 1: The Main MovieA Micro DVD is basically a ripped DVD movie. So go ahead and use your favourite ripping method to create your main movie! It may be 1 or 2 CDs long. Give the A/V files any name you wish, I suggest something like "VTS_01_1.VOB" and so on, to make it look really cool. :)
Note: The file name is not important for format recognition, e.g. AVI files can have any name, they are still recognized as AVI.
Besides the main movie an MDVD may contain any number of additional A/V files for Special Feature (making-of, reports, outtakes etc.) videos on the DVD. So you can rip those, which are usually in VOB files after the main movie, too.
Special videos may be located either on CD 1 or 2 (meaning together with the main movie if there's still room on the CD) or you can put them on a third CD. Anyway all special videos have to be on the SAME CD !
Micro DVD Player can "emulate" the original navigation menu of a DVD. For that purpose, you must first create a video file (if the DVD has animated menus) containing all the animation sequences. Do so by using your usual ripping method, plus some cutting utilities (either on VOB- or on AVI-level) to put your menu video together.
If the DVD menu also contains still images, which is the case for most DVDs, use a DVD player that can do still captures (save single frames as BMP), like PowerDVD. Capture all stills you need, and convert them to JPG to save space. Put the menu video and all still pictures in one directory.
Important: The nav menu files have to be on ALL CDs belonging to a movie, and they have to be in the same directory on all CDs.
Also important: The animated part (AVI) and the still images (JPG) of you menu must have the same dimensions (width+height), or you'll get major trouble. This does of course not apply to the movie itself, which may have a different size.
Step 4: Multilanguage Audio Files
Micro DVD Player can also play multi-language movies. To do so, it uses two methods.
METHOD ONE
The first method is to play the picture from the main A/V file and the sound from an additional audio-only file synchronously.
To use this method, you put the primary language in the main movie A/V file itself, and create an additional audio-only file for each secondary language.
You can do this the following way: convert the video and the audio for all languages separately (e.g. with Mpeg2Avi or Flask for video, and Graphedit for audio). Then use Virtual Dub to multiplex each audio file together with the video file, MP3 compressing it at the same time. This is necessary in order to keep perfect A/V sync. Then load the second resulting AVI and save the WAV from it, giving you the secondary audio file you can use for the player.
METHOD TWO
The second method is to put all the language audio tracks into one multiplexed AVI file. The problem with such AVIs is that MediaPlayer (whose functions MDVDP uses) always plays all audio tracks at once when you feed it with such a muxed file. But there's a very elegant way to get around this problem: GraphEdit.
A good tutorial (written by SPIRIT) on how to create a multi-audio stream AVI and the necessary GRF files to play it back can be found in the file TwoStreams.HTML that came with this documentation. Take a look at it!
When you understood that tutorial, you know how to make Graph files that will play just one language from a multi-lang AVI. Make such a graph for each language, including the main=primary one, in your movie!
Important: The actual AVI file must reside in the same directory as the graph file you create!
If you use the second method, the following differences to the "normal mode of operation" concerning file types (see here) in the INI file apply:
There is one disadvantage in using this method: when you switch the language, another video file has to be loaded, which causes the player to make a black-screen break of about 2-3 seconds. Advantage is that you don't need to mess with several A/V files and no copying of audio to HDD is necessary to reduce CDROM laser movement.
Micro DVD Player can display subtitles. It reads them from a text file that has a very simple structure. For each subtitle put one line in the file that looks the following way:
{First Frame}{Last Frame}Text
The subtitle can consist of five lines max., use the character | (pipe) as line separator. Last Frame can be empty if the subtitle is to be displayed until the next one is due.
IMPORTANT: Currently Micro DVD Player only displays the subtitles when you watch the video in Fullscreen Mode ! This might change in a future version.
The subtitles are - depending on the settings the user makes in the configuration dialog - displayed in the space between the top or bottom border of the video and the edge of the screen. If the available space is not sufficient, or the user forces it, the subtitles are displayed transparently over the movie.
A real-life example:
{6027}{6101}Can I have five tickets to Terrance|and Phillip's Asses of Fire, please?
{6125}{}No.
{6175}{}What do you mean, "no"?
{6211}{}Asses of Fire|has been rated "R"...
{6263}{}by the Motion Picture|Association of America.
{6314}{}You have to be accompanied|by a parent or guardian.
{6361}{}- But why?|- Because this movie|has naughty language!
{6420}{}- Next, please.|- [ Cash Register Rings ]
MDVDP supports control codes in the text part of subtitles. Control codes may appear anywhere in the subtitle line. Most of the codes are available in two forms: with a lower-case letter (then the code only applies to a single line of the subtitle) or with an upper-case letter (then all lines are affected, no matter in which line the codes occurs).
Currently the following control codes are available:
Important: You can set default values for a subtitle file (overriding the settings made by the user in the configuration dialog) by adding the following line somewhere to your subtitle file:
{DEFAULT}{}<Control Codes>
Replace the <Control Codes> with any number of control codes that are valid in individual subtitle entries. The control codes have to be the upper-case versions here! E.g. to make the subtitle file by default display in Arial, 18pt, bold+italic and below the movie, use this line:
{DEFAULT}{}{F:Arial}{S:18}{Y:b,i}{P:1}
The user can override all those default and sub/line-individual settings by activating the option "Ignore subtitle styles" in the configuration screen.
Besides its own format, MDVDP also supports other subtitle formats. See here for details. If you want further subtitle file formats besides the currently known ones to be supported, contact me.
Now that you have all files ready, put them together in a directory structure for the CD like the following:
X:\ +--MDVD.INI The MDVD INI file (see next step)
+--Menu_TS This directory holds all menu related files
¦ +--MTS_01_1.vob Video file for the menu (it's actually an AVI, but
| | VOB sounds cooler ;) )
¦ +--MTS_02_1.jpg Some still picture files...
¦ +--MTS_03_1.jpg
¦ +--MTS_04_1.jpg
¦ +--MTS_04_2.jpg
+--Video_TS The movie- and special feature files reside in here
| +--VTS_01_1.vob The main movie AVI. For a 2-CD movie the file might
| be named VTS_01_2.vob, and special feature videos
| might be VTS_02_1.vob etc.
+--Audio_TS
+--ATS_01_1.vob An audio-only file with the first foreign language
You see, the directory structure is quite simple. And as you can name all of the directories and files as you wish, this is just an example.
Now you have lots of video-, picture- and soundfiles cluttering around your harddrive, and you somehow need to tell MDVDP what to do with it. This is where the INI file kicks in!
Using it you tell the player in what directory it has to look for the different files, what they are named, what chapters there are and where they start, and last but not least the layout of the nav menu.
Later in this document, you'll find detailed information on the INI file structure and on how to use the INI Editor.
When you seek in a compressed video file that uses delta-frames (meaning only the differences to the frame before are recorded), the decoder/player has to refer to the nearest former keyframe (the opposite of a delta frame, keyframes are compressed "standalone", without reference to former or later frames) and quickly "play" to the desired seeking position from there. This playing process normally is invisible, the decoder internally calculates the frames from the keyframe to the desired frame invisibly.
But due to a bug (or at least very unpleasant feature) in the current version of the MPEG 4 decoder, the player does not do this calculation process invisibly, but you see the frames between the nearest keyframe and the desired seek location being displayed quickly on the screen.
Therefore is is highly recommended that, when compressing using DivX,
you set the option Keyframes every One second! Otherwise you might see up
to 8 seconds of quick seeking whenever you change the play position in your
movie.
Furthermore, this calculation process naturally takes some time. The
bigger the distance between keyframes, the longer the process takes. So the
player needs a certain delay when winding or synchronizing video and secondary
language audio, at least one second or half the number of seconds between
keyframes.
Another important point where the delay kicks in the the transparent overlay window initialization. The first time the player is put in fullscreen mode after each launch of the program, the overlay window must be initialized. This may not be done until the player is "settled down", meaning it has passed the next keyframe/completed loading a video file.
Therefore three times the movie's delay is used for delaying the transparency intialization.
You can set this delay for your movie in the INI file, plus you can force a certain minimum delay in the player itself, in case you have an old and slow CD-ROM which needs a bit more time to seek and "settle down".
Chapters
A DVD movie usually is divided into chapters. You can of course divide your MDVD in a similar way. When editing the INI file, you can write down the start frame number and the title of each chapter. (Don't worry, the INI Editor does most of the work for you.) Some annotations regarding chapter:
Navigation Menu
The nav menu on a MDVD is divided in so-called Pages. A page can be a still image with some clickable areas on it, or a animation with areas, or just a clickarea-less transition video which jumps to another page when finished.
The highest possible number for a page is 500, for a selection it is 50.
Details on what parameters you can set for a page can be found here.
The following part of this document resembles the layout of a real INI file, showing you keywords etc. and giving explanation and information. The contents of the right columns would have to be comments in a real INI file.
[Micro DVD Ini File] | Required. This has to be the first line of the file. The INI Editor automatically writes this first line to the file whenever it saves it. |
[MAIN] |
Required. This section gives vital information about the movie. |
Title=String | Required. The title of the movie as shown in the control panel's display area |
ID=String | Required. A unique string identifying this movie (used to find/determine other CDs for a multi-CD movie). IMPORTANT: Since this ID is also used as directory name for the Copy secondary audio files to HDD feature, you may ONLY use characters in the ID string that are valid characters in a file name too ! |
CDNumber=Number | Optional. For multi-CD movies this tells which CD this is (not the total number of CDs!). Important: if your movie only has one CD, leave this out! |
Delay=Number | Optional.Tells the player how many seconds to wait between each jump when doing fast-forward or -reverse, and how many seconds to wait when synchronizing video+audio when playing secondary language (see info on MPEG 4 and seeking). Default if omitted is 1 second. Value can be overridden in the player config dialog. |
Note: All Directory parameters may be
absolute pathnames (they are treated as such if the second character in the
string is a ":"), which is not recommended though. Better make them relative
pathnames, in that case the path in which the MDVD.INI resides is added to the
beginning of the given directory. You can also name the directory as "."
(a simple dot), this means the same directory where the INI file resides in
is meant. A movie can consist of max. 3 CDs, the main movie may extend over CDs 1 and 2, and additional Special Feature videos may be on a third CD. (Specials may also be on CD 1 or 2 though.) | |
[MOVIE] |
Required. |
Directory=String | Required. Directory where to find all of the movie AVI files on all CDs. |
AVIName=String | Required. Name of the AVI file on CD 1 containing video and main language audio. Attention: In case of a multi-language movie that uses method two of creating a multi-lang MDVD, this entry does not point to an actual AVI file, but to the Graph file that makes the multi-audio AVI play the primary language! |
AVI2Name=String | Optional. For 2-CD main movies, this gives the AVI filename for CD 2 video+main audio. Attention: In case of a multi-language movie that uses method two of creating a multi-lang MDVD, this entry does not point to an actual AVI file, but to the Graph file that makes the multi-audio AVI play the primary language! |
CD1Frames=Number | Optional. In case of a two-CD main movie this gives the number of frames in CD 1 video. |
CD2Frames=Number | Optional. In case of a two-CD main movie this gives the number of frames in CD 2 video. |
Note: "AVI" files do not necessarily have to be "real" AVI files, they can technically be anything that Windows Media Player can play. Plus they do not have to have an extension of .AVI, you can also name them .VOB if you want to make your MDVD look like a real DVD even more! :-) | |
[CHAPTERS] |
Optional. This section may be omitted if you do not want a chapter list for your movie. In that case, all chapter seeking functions are disabled when playing the movie. |
Number1=Number2 String |
Required. Repeat this line for each chapter.
|
[SPECIALS] |
Optional. This section may be omitted if your movie does not have "special feature" videos such as making-ofs and stuff. Otherwise they are listed under this section. |
CD=Number | Required. The number of the CD which the specials are on. Note: The special videos are expected to reside in the directory given in the "Directory" entry of the "Movie" section, meaning in the same path as the main movie! |
Number1=String1 String2 |
Required. Repeat this line for each special video.
|
[LANGUAGES] |
Optional. For those cool movies which have multiple languages and offer the viewer to switch the language at any point he wants to (just like real DVDs), you give the necessary information in this section. If your movie only has one language, omit this section. |
Directory=String | Required. Directory where to find all of the secondary language files on all CDs. If MultipleAudioAVI is set to 1, this will usually be the same directory as the one for [MOVIE]. |
MultipleAudioAVI=0|1 | Optional. If you set this to 1, then the main movie A/V file is considered to contain multiple audio tracks (this means the movie uses method two of creating a multi-lang MDVD). Default is 0. |
Primary=String[3] String | Required. For each language there is a short 3-character abbreviation (like ENG for English) to be displayed in the control panel, and a long form for the selection requester. This line gives the short form (String[3] meaning a string of length 3!) and the long form (String) for the primary language, that is the language included in the main movie A/V file |
Number=String[3] String | Required. Repeat this and the following line for each secondary language.
|
File=String1 String2 | Required.This line gives the names of the WAV files for the language described in the line before, for CD 1 (String1) and CD 2 (String2). Note: String2 may be omitted if the movie only extends over one CD! Attention: In case of a multi-language movie that uses method two of creating a multi-lang MDVD, this entry does not point to an actual audio file, but to the Graph file that makes the multi-audio AVI play the desired language! |
Note: ".WAV Files", just like with AVI before, here only refers to the file type, it doesn't have to be a real WAV but will rather be an MP3 with a WAV header. | |
[SUBTITLES] |
Optional. Another cool movie feature are subtitles, helping a lot in understanding e.g. foreign language films. If you ripped/created subtitles for your movie, you give the necessary information in this section. IMPORTANT: Currently Micro DVD Player only displays the subtitles when you watch the video in Fullscreen Mode ! This might change in a future version. |
Directory=String | Required. Directory where to find all of the subtitle files on all CDs. |
Format=Number | Optional. Besides its own format, Micro DVD Player also supports
other formats of subtitle files. The default for the Format value is -1, which
means the player automatically detects the format. If you set this to non-zero, the
following format is expected:
|
DialogString=String | Optional. The player can automatically display lines of subtitles in different colors if they are part of a dialog. Usually a minus char ("-") as first char in a line indicates that another person is speaking. Using this entry you can tell the player with which string a subtitle line has to start to be regarded as a new speaker in a dialog. If you omit this entry, the whole subtitle is displayed in default color. All colors can be set in the configuration dialog of the player. Note: If you use a "{c:}" Color Tag (see here for details) in your subtitle lines, that color has priority over the automatically selected one! |
Lines=Number | Optional. Default value for this entry is 3. The calculation of available space on the screen for subtitles is dependent on the maximum number of lines subtitles for the movie contain. You can give this number using this entry. |
EstimateDisplayDuration=0|1 | Optional. If you set this to 1 (default is 0), then the span of time for that a subtitle is displayed is estimated (meaning calculated by the formula Time in Seconds = 1 + 0.05 * (Number of Chars in Subtitle)), otherwise the Last Frame values in the subtitle file are used. This is useful for external subtitle formats which do not contain Last Frame values, or if your MDVDP style subtitle file does not have Last Frame values due to the ripping method you might be using. |
MaxDisplayDuration=Number | Optional. If your subtitle file basically has Last Frame values, but some subtitles don't, you can set this entry to the number of seconds that a subtitle is displayed if no last frame is given. Note: EstimateDisplayDuration has priority over this entry if set to 1. The default value is 0, meaning no maximum display duration. |
Number=String[3] String |
Required. Repeat this and the following line for each subtitle set.
|
File=String | Required.This line gives the names of the text file for the subtitle described in the line before. Note: The subtitle file, whose structure is explained here, has to be on all movie CDs under the same name in the same directory. |
[MENU] |
Optional. This section may be omitted if your movie does not have a navigation menu. In that case the main movie starts immediately upon CD start. |
Directory=String | Required. The directory in which all menu related files reside. |
AVIName=String | Optional. In case the movie has animated menus, this gives the A/V file containing ALL the animations. Selection of video parts is done via "VideoRange" (see Pages section). |
AudioName=String | Optional. For those boring DVD nav menus that have no animated pages and no sound, you can specify the name of an audio file (WAV, MP3 etc.) here that is played as background audio whenever the menu is running. Note: The AudioFile is played only when the page being displayed is a still image. When a video page is active, the Audio file is paused meanwhile, and restarted when a still image page is active again. |
Size=Number1,Number2 | Required if your menu only has still pictures. This gives the dimensions (Number1 is width, Number2 is height) of the menu video and still pictures. If your menu has a video, you may omit this entry, as the dimensions are taken from the video itself then. |
StartPage=Number | Required. The first page to be displayed when the movie starts. |
MenuPage=Number | Required. The page to be displayed when returning to the menu from a running or ended movie (usually a main loop for animated menus, may be the same as StartPage) |
ChaptersPage=Number | Optional. First chapter selection page, if such exists. Currently only used for the player feature Jump to chapters page after main page has completed N video loops. |
SpecialsPage=Number | Optional. The number of the Special Features page, if such exists. When returning to the menu from a running or ended special video, this page is used. If this is omitted or zero, the MenuPage is used instead. |
[PAGE=Number] |
Optional. For each "page" in the menu which may be a still image or a part of the MENU video, you define a PAGE section. The Number says which page is being described. The highest possible page number is 500. Pages do not have to be in ascending order, plus you may have gaps in page numbers for a better grouping (like pages 1-4 defining the main menu, 10-15 the chapters selection and 20-23 some special videos). Repeat this section for each page in your menu. |
CopyFrom=Number | Optional. In case you have several pages that have
almost identical definitions, you can copy the contents of a previously
defined page to the current one, and only give those entries that are
different from the copied section. This can save a lot of space and work e.g.
for chapter selection pages, which are often quite identical. Note: CopyFrom exists for pages as well as for selections (see below). If used on the page level, the page settings plus all selections are copied! |
BackgroundMode=1|2 | Required. With this you give the mode of this page:
|
PictureFile=String | Required if BackgroundMode is 2. You give the name of the picture file (usually JPG format) here. |
VideoRange=Number1-Number2 | Required if BackgroundMode is 1. This gives the first and last frame of the menu video file to be played for this page. |
VideoLoop=0|1 | Optional for BackgroundMode 1. If set to 1, the selected VideoRange loops, otherwise the video stops, or the menu jumps to another page or executes an action, depending on the setting of JumpAtEnd and ActionAtEnd, when the end frame has been reached. |
PictureDuration=Number | Optional for BackgroundMode 2. If set to non-zero, the menu automatically jumps to another page after Number of seconds has elapsed. Note: this setting only has effect if the background mode for this page is picture, and not if it is video. |
JumpAtEnd=Number | Optional. Page number to activate when the current page ends.
This is used in two cases:
Important note: If both JumpAtEnd and ActionAtEnd (see next entry) are defined, ActionAtEnd takes precedence over JumpAtEnd. JumpAtEnd is not executed in this case. |
ActionAtEnd=Number | Optional. In addition to jumping to a page, any action that
the player supports can be triggered at the end of a page. For that purpose, put
the action number, followed by a "#" character, and then by the
parameter, in this entry. See here for details on
actions. Important note: If both JumpAtEnd and ActionAtEnd are defined, ActionAtEnd takes precedence over JumpAtEnd. JumpAtEnd is not executed in this case. Another important note: When the user clicks the mouse to skip a transition video (see next entry), the ActionAtEnd is not executed, only the JumpAtEnd page is processed in that case! |
SelectionAvailable=0|1 | Required. 0 means there are no clickable areas in this
page. Note: This is important for determining if a page is a
Transition Video, meaning that it just leads to another page without any
user choice. If a page has this value set to 0, and VideoLoop set to 0, and JumpAtEnd set to non-zero, it is considered a Transition Video and may be skipped by clicking the mouse or permanently (see config dialog of the player program!). |
SelectionOrdering=1|2 | Optional. You set the ordering mode of all selections
on the current page to row (1 = default) or to column (2). Explanation: To be able to use the "cursor keys" on a remote control ("move one selection up,down,left,right"), the selections on a page have to be ordered in a 2-dimensional table. To do so, the player processes the following loop:
|
DefaultSelection=Number | Optional. With this value you can tell the player on which selection the mouse shall be positioned when the page is activated. This is useful e.g. when you use a remote control, and want the mouse to be positioned over some kind of NEXT button in a "actors' information" section etc. When you set this value to 0 (which is the default if omitted), the left- and topmost selection is used for mouse positioning. |
ProhibitSelectionBefore=Number | Optional for BackgroundMode 1. If this is zero or greater, the user is not able to click selection areas before the frame given in Number has been reached in the menu video. Set this to -1 (which is also the default when you omit the entry) to deactivate the function. Note: if activated in the player config dialog, the user can jump immediately to the first frame allowing selections by clicking the mouse! (This is an improvement over the usual DVD feature that totally disallows you to choose actions while playing certain video parts.) |
ProhibitSelectionAfter=Number | Optional for BackgroundMode 1. If this is non-zero, no selection clicking is possible after a certain frame in the menu video has been passed. |
[SELECTION=Number] |
Optional. For each clickable area on a page, you give a Selection section in the INI file. Note: A Selection section always refers to the previously defined Page section. The highest possible selection number for each page is 50. |
CopyFrom=Number | Optional. Just like with pages, you can copy a previously
defined selection to the current one if they are almost identical. Note: CopyFrom exists for pages as well as for selections (see below). If used on the selection level, only the given selection is copied! |
Area=Number1,Number2–Number3,Number4 | Required. This gives the coordinates of the clickable
rectangle for this selection on the current page. Number1 is the left,
Number2 the top, Number3 the right and Number4 the bottom
boundary. Note: The mouse cursor changes its form when you move over a clickable area. You don't have to worry about coordinate transformation when the user stretches the video to fullscreen, this transformation is done automatically. Just give the coordinates here relative to the ORIGINAL dimensions of the video/still image. |
Action=1|2|3|4|5|6|7 | Required. Action to be taken when the user clicks this selection.
If parameters are necessary, they are given in the following entry Parameter.
|
Parameter=Number/String | Required if the given Action requires a parameter. See entry Action for description of parameters. |
Well, since a Micro DVD is not just some boring AVI file, but consists of one or two main movie videos, and optional language files, special feature videos, subtitle files, and, last but not least, navigation menu files, the player must somehow know how to handle all this stuff. :-)
Meaning, the INI file tells the player in what directories the video+audio files are, what their names are, at what frame the chapters start and what their titles are, what has to be displayed on each menu page and much more.
Also in this document are further information on the layout of an INI file, and there are also some real-life examples.
The INI file structure is quite straightforward with almost self-explaining entries, but there are some tasks involved in creating an INI that are quite a lot of work if you have to do them "by hand", for example finding out and typing frame numbers for the chapters list or clickable areas in the menu.
To make such tasks easier, I wrote the MDVD INI Editor. I'm going to explain its functions now.
The INI Editor is a so-called MDI (multiple document interface) application, meaning you can open several INI files at once (like you can do with Winword etc.). Plus there is a always a graphic window and a video window inside the main window.
When editing an INI file, the videos and still pictures it uses can be loaded into the corresponding windows for area marking and frame seeking purposes.
The main toolbar (whose functions are the same than those in the main menu) holds commands to open, save, close and create INI files. The newly implemented INI File Wizard can be launched here too. Furthermore you can freely load videos and pictures to the windows which do not occur in the INI file itself, plus you can "re-parse" the INI file.
When parsing, the combo boxes "Movie File", "Picture File" and "Menu Page" are updated to reflect possible changes made to the entries in the INI. Parsing is automatically done whenever you load a file or insert a video/picture file name through a popup menu command (see below).
The Video Controls toolbar allows you to navigate through the video. With the trackbar you can change the video's playback speed, and the white textbox allows you to jump directly to the frame number that you enter.
The toolbar at the bottom of the main window holds the video slider and two textboxes displaying the selected area and the current frame number in the video window.
When you open or create a new INI, an editing window opens. It mainly consists of 8 edit boxes put on 4 tabs of a page control (those things often used for config dialogs in programs) holding different sections of the INI file.
Some beta testers asked me why I don't use an interface with check- and text- boxes but simple edit boxes. I hold the view that you can work faster and more efficiently when you have a kind of text editor for your INI files providing you with functions for the more complicated tasks.
The edit boxes have full copy&paste capability. Copy is CTRL-INS, paste is Shift-Ins and cut is Shift-Del.
The editing window also contains three combo boxes at the bottom. Those hold the path&filename of all videos and still pictures and a list of all menu pages mentioned in the INI. By selecting a file or page from the list, the file is loaded to the appropriate window, or the PAGES edit box jumps to the selected page. The contents of those three boxes are updated when you "parse" the INI file (see above).
When you left-click on the section title or right-click in an edit box, the popup menu for the section appears. (You can also press the shortcut keys of course, as well as you can do this for the main menu.)
The popup menus contain useful functions for their INI section. Note: All text that is inserted by a popup function appears at the current cursor position!
All sections except for Chapters and Pages have the command "Clear" and "Insert Default Entries". These functions should be quite obvious.
A note concerning default entries: If you don't need all of the default entries (e.g. CopyFrom is often unneccesary), you can still leave those lines in the INI file, without a value, because entries that have no text behind the = character are ignored by the player. But it is recommended for readability purposes that you erase all lines which you don't need.
The other commands for each section are as follows:
Many people asked me for it, so I finally implemented it. :-)
Besides the usual edit box interface, you can use a dialog-like function to enter the data for a new INI file. In the File menu you can invoke the main wizard which will let you enter the data for the sections Main, Movie, Chapters, Specials, Languages, Subtitles and Menu.
The outcome of using the wizard is basically the same as using the text edit window, but some people seem to like a dialog-style wizard more. :) So feel free to use whatever you like best.
The wizard is loaded with heaps of context-sensitive information, so no explanation should be necessary here at all. Just give it a try. When you have entered all the desired information, the wizard saves the new INI file and/or opens it in the usual text edit window.
To use a navigation menu, you'll then have to enter information for Pages and Selections. For that purpose, there are two commands in the edit box popup menu for the PAGES section, "New PAGE Wizard" and "New SELECTION Wizard". Use them to enter all pages and selections you need.
You can contact the programmer of MDVDP for questions, suggestions and bug reports via:
WWW | mdvdp.awclan.de (Homepage) |
locutus_dve@gmx.net | |
ICQ | UIN 15325926 (get ICQ here.) |
IRC | Channel #pcdvd on EFNet, nick |Locutus| or _Locutus_ (get MIRC here.) |
Thanks to Careyer for graphics, hints and support.
Thanks for many bug reports, suggestions and hints go to:
Careyer | AGrabber | ByteFaker | DVDRick | Trent_R | Freezy3k | P.T.Binh | Bosman | Makkeren | Nowhereman | G.Kane | C.Vilar |
Data | P.Luty | R.Derksen | M.Geblowski | Depeche | Northman |
B.Sandor | D.Gilmour | Fachman | MIV | P.Quantin | Safair Ma |
S.Heyenrath |
Special thanks to S.Virth for the French and to Mornstar for the Dutch translation of the documentation!
Also thanks to the Official Beta Tester crew:
A.Austin | A.Au | A.Burley | A.Tome | Antal | A.Rueda |
A.Chandran | Bidoche | Black Phantom | B.Sandor | C.Vardoone | D.Hansen |
Depeche | Digital Crow | Exxon | Fachman | Fish | Hander Clander |
J.Kaprzyk | J.Sanchez | J.Davul | J.Alejos | JMcGuay | J.Saez |
JP v.Melis | J.Silvestri | KKK | Klaatou | K.J.Cordero | L.Lauryn |
M.Kalofolias | M.Geblowski | Mike | Mornstar | MSO | N.Pouerie |
N.Klaas | P.Tran Binh | Patr.Quantin | Pasc.Quantin | QuoVadis | Ronin |
Safai Ma | S.Esteva | S.Heyenrath | T.Levakoviae | U.D.C. | Vedran |
C.Vilar | Voltrr1 | J.K.Mjorud | B.Mathieu |