008080 f08080 008080 008080 51f05a 902235 286df0 ca4892 aaaea4 de8948 aeb76d 49a6dc 616389 98bc51 37b389 718947
I just tested the subtitles and they are worked fine for me. Initially they were green and blue, so I changed the color using IFOEdit to SRT2SUP standard colors, and they became black with white ouline. OF course iI wanted the other way around (white with black outline), but the subtitles are OK, not blurry or unreadable, just the colors are not the ones I am used. But it's just a matter of figuring out the correct set of colors.
This is what I did: created with Subtitle WorkShop, converted using SubStation Alpha (I felt a bit lazy to update my Subtitle WorkShop now), rendered using Maestro SBT. Muxed using submux-dvd, compiled using MingW with no changes in the original source code other than putting a line of code that was saparated by "\" in many lines togheter in one (this was causing errors).
I used Baldrick compile of DVDAuthor, I didn't manage to compile it yet. Tested using PowerDVD and my Philco DVP-2500, subs look the same in both. Also no positioning problems (check MaestroSBT configuration). I can't tell you about synch issues since I muxed a sub that had nothing to do with the actual video, just for testing purposes.
By the way, do you know the MinGW developer studio? It's a free Visual Studio like IDE, using MinGW and WxWindows. I love this one!
vmesquita287 posted 2003 Oct 12
That is great news VMesquita!
I'm glad the MaestroSBT path worked for you.
If you enter below color settings from "menu.txt" of Dvdauthor in a file "yuvpalette.txt" and use the -p yuvpalette.txt option of Dvdauthor your colors will be correct:
008080 f08080 008080 008080 51f05a 902235 286df0 ca4892 aaaea4 de8948 aeb76d 49a6dc 616389 98bc51 37b389 718947
I think that you are aware that, now Submux/Submux-DVD works in a windows environment together with the Subtitle Workshop/MaestroSBT/Ifoedit approach, it is an additional freeware solution for a problem that many windows users asked for in the forums:
"How can I mux a subtitle in an existing DVD VOB/mpg?"
Well, you can use the above approach (even without Dvdauthor if you don't need authoring) and use Ifoedit to create a new subtitle-aware ifo and enter the color palette shown above.
Panteltje deserves all the credit, he created Submux for the unix/linux environment.
Together with DVDauthor it would be a full package. I hope that Baldrick succeeds on the GUI, the alpha looks promising.
Compugup
Compugup posted 2003 Oct 12
> > Lordsmurf, The same resource used for subs (subpicture) is also used for > > menus. > > I thought subtitles and subpictures used different routines. Maye not. :(
Both subtitles & menus use subpictures (2-bit RLE images). The key difference is that menus include a "Button Information Table" which contains details about coords, colours & action commands.
ChrissyBoy posted 2003 Oct 13
There's a new mode: DVD with NAV packets (what is in fact a VOB, a believe). This would be useful for creating VOBs to import in DVDLab with subs. I guess now the correct option for just muxing is no longer -f 8, but -f 9. I'll test and post the results later.
vmesquita287 posted 2003 Oct 23
I now use the text, outline, alias option in the rendering menu which gives better subs.
I created a new palette for subtitles titles (purple/light-light yellow/black/light-medium yellow=background/text/outline/alias) for dvda and Im using the palette I posted earlier for the menu-related titles.
This is my rgb subtitle (not for buttons) palette (use .rgb extension):
ff80ff e9e9cd 202020 eefb57 ff80ff e9e9cd 202020 eefb57 ff80ff e9e9cd 202020 eefb57 ff80ff e9e9cd 202020 eefb57
Compugup
> > Rendering of text subtitles (.srt, .sub, .ssa and many others) to graphics > > How exactly do I that? Can't find any documentation about it.
You are correct, documentation is still under construction:
Spumux is now able to handle text subtitles which will be rendered to graphics. A lot of different text formats are supported (.sub, .srt, .ssa, .smi, .rt , .txt, .aqt, .jss, .js, .ass), Spumux will try to determine the format automatically.
Following XML-file gives an example and also contains the default settings, only the textsub filename is mandatory. If you're fine with the default settings you don't have to include them in your XML.
<subpictures> <stream> <textsub filename="demo1.srt" characterset="ISO8859-1" fontsize="28.0" font="tahoma.ttf" horizontal-alignment="left" vertical-alignment="bottom" left-margin="60" right-margin="60" top-margin="20" bottom-margin="30" subtitle-fps="25" movie-fps="25" movie-width="720" movie-height="574"/> </stream> </subpictures>
[In the above, e.g. <bottom-margin> could be splitted by the forum-editor but it needs to be one solid string]
You need (if you are not using the Windows binaries compiled package) to install the freetype2 (http://www.freetype.org) package and provide at least one font (for Windows binaries users: Spumux will look in your windows directory for the font).
If you don't have timed subs (frame numbers in the text file in stead of time stamps), you need to provide the sub fps and the movie fps, then Spumux will automatically re-calculate the timings.
Default, Spumux will use the unicode character set.
If you install the iconv (included in the Windows binaries) package, Spumux will be able to handle a flood of character sets (Japanese, Hebrew etc.).
In Europe the iso8859-1 font is very popular (supports e.g. French accented characters).
If you install the fribidi (included in the Windows binaries) package, Spumux will also support right to left writing.
Spumux is able to handle a textsub stream OR a menu/spu stream, they can't be handled both together.
If you compile the package yourself then it may be necessary to manually enable the iconv and fribidi options in config.h (that is fixed already in the alpha releases).
Compugup posted 2003 Dec 18
there is no "full" documentation for dvdauthor. The best soure for additional information is the mailing list: http://sourceforge.net/mailarchive/forum.php?forum_id=13261
borax posted 2005 Feb 06
> > What kind of development environment are you using (tools, compiler, > > programming language, OS, platform etc.)? > > At this time, the gui is written completely in Visual Basic. Ive considered > porting to a more portable language, but I haven't decided which way to go > yet. I was reading up on wxwindows, and considered trying to write the gui > using the MinGW studio ide.
Some Advice. Use MinGW as the compiler, BloodShed DevC` as IDE, WxWindows as multiplataform GUI and etc lib, wxGlade as GUI designer, Inno Setup Compiler to create setups. A Full Powerfull and free C` developer KIT! I used MinGW developer studio a while ago (it's also good) but I figured out Dev-C++ is more powerful and still free.
vmesquita287 posted 2003 Dec 18
last modified on August 23, 2002
On a DVD subtitles are stored as pictures that are shown on top of the movie by your movie player. That way the authors have a wide choice of how their subtitles look like (and it makes subtitles in Asian languages much easier to implement). For us this may or may not be a problem - depending on whether we want to include subtitles directly into the picture of have them as a separate file/stream.
Very often you don't want to be forced to see the subtitles. This is not possible if you include the subtitles in the picture during encoding. You have to extract the subtitles from the DVD into an external file/stream that the user can activate (or not). I will describe the process of converting the DVD subtitles into a text format that is widely used. Text subtitles can be easily scaled by the player (by selecting an appropriate font) and they are really small (most often below 100KB).
For this process you must have transcode and its sources. You need tccat and tcextract from transcode itself and the files in transcode/contrib/subrip from the transcode sources.
Unfortunately no binary package (RPM, deb) that I know of includes subrip so we have to compile and install it ourselves. But this is rather easy.
Make sure you have gocr and ispell installed on your system. They come with most modern distributions. But if yours does not contain gocr then head over to its website.
Change into subrip's source directory (cd transcode/contrib/subrip) and invoke make.
Copy the three programs srttool, subtitle2pgm and pgm2txt to a directory in your PATH.
You may have to change the script pgm2txt if your gocr does not support Simply remove it (after consultin gocr's manpage).
Here I assume that you've copied your DVD with vobcopy -m meaning that it has been completely mirrored including the .IFO files. If not then you'll have to adjust the sources.
First let's see which subtitles are available. We can use mplayer for this task:
mplayer -dvd-device /space/st-tng/disc1/ -dvd 1 -vo null -ao null -frames 0 -v 2>&1 | grep sid
This causes mplayer to just print a lot of information about the source and not to play anything at all. It should give you a list of subtitles:
[open] subtitle ( sid ): 0 language: da [open] subtitle ( sid ): 1 language: de [open] subtitle ( sid ): 2 language: en [open] subtitle ( sid ): 3 language: es [open] subtitle ( sid ): 4 language: fr [open] subtitle ( sid ): 5 language: it [open] subtitle ( sid ): 6 language: nl [open] subtitle ( sid ): 7 language: no [open] subtitle ( sid ): 8 language: sv [open] subtitle ( sid ): 9 language: en
Now that we have the sid (subtitle ID) for the language that we want we can fire up the transcode tools and let them extract the raw subtitle stream:
tccat -i /space/st-tng/dic1/ -T 1 -L | tcextract -x ps1 -t vob -a 0x22 > subs-en
The -a 0x21 is the subtitle stream's hexadecimal number: 0x20 + sid. Here I use the English subtitles.
Ok, we have a raw subtitle stream - but what can we do with it? First we have to convert each subtitle entry into a picture. This can be easily done with
subtitle2pgm -o english -c 255,255,0,255 < subs-en
Here's a catch however. With -c you can specify the grey levels used in the conversion. The idea is to make the job for gocr as easy as possible. Therefore you might have to experiment with the parameters - but this is easy, too. I've taken the following samples from my Star Trek - The Next Generation DVD:
-c 0,255,255,255 - this is obviously wrong.
-c 255,0,255,255 - this looks good.
-c 255,255,0,255 - we don't want this one.
-c 255,255,255,0 - we don't want this either.
As you can see you need a picture that does not contain outlined characters.
subtitle2pgm creates a lot of images - one for each subtitle - and a control file, called english.srtx in my case, that contains the duration for each subtitle. The next step is to let gocr recognize the text:
pgm2txt english
Be warned - gocr will ask you often about charcters that it can't recognize. This is normal. Once you're done you should run ispell over all the newly created text files:
ispell -d american english*txt
Adjust the languange to your needs, of course.
The last step is to let srttool include the actual text into the .srtx file:
srttool -s -w < english.srtx > english.srt
Voila, you have a working subtitle file. You can watch them with e.g.
mplayer -sub english.srt mymovie.avi
Author: VIK Posted it: Lun 20 Dec 2004
Software Necessary:
DVDAuthor v0.6.9 (dvdauthor-0.6.9-win32.rar): Page of remote loading
vStrip v0.8f: Page of remote loading
Another small guide explaining how to recreate IFOs files starting from VOBs files.
This method has like large advantages:
Control of the chapitrage.
The possibility of taguer Audio tracks and Subtitles.
To force a track of subtitles.
Finally it is the first initiation with this splendid software continuation which is DVDAuthor.
Decompresser dvdauthor-0.6.9-win32.rar with the root of your hard disk (C: \ in what relates to me) in a repertory that we will name DVDAuthor .
Decompresser contents of vStrip_08f.zip directly in the DVDAuthor repertory.
To copy the VOBs files in the C:\DVDAuthor repertory
vStrip has as large advantage of being able splitter of the files directly since the hard disk, with or without IFOs files.
In the DVDAuthor repertory to create a textual file with the Scratch pad of Windows (to call it Voblist
To publish the Voblist file and to inform the site and the name of the VOBs files to stripper.
Example:
Image
Since small Windows to make start > To carry out and to type cmd then to validate for OK .
Image
to position in line of order in the DVDAuthor repertory and to recopy the line of order as follows, then to validate by the Enter key of the keyboard:
vstrip @voblist.txt - C - oPGC.VOB
Image
Some explanations:
@Voblist.txt: allows to indicate like source a succession of VOBs files.
- C: splitter VOBs by VobCellID allows.
- oPGC.VOB: to name the output files.
At the end of the process, you will notice a listing of various flows met:
In 0x2? They are tracks of subtitles (6 tracks in the example). In 0x8? They are the audio tracks (2 audio tracks).
Image
Note:
If you find files of 10/12 kilos: remove to them repertory. In fact videos were created artificially by the program of authoring to pass from the command sequences. They are useless and prejudicial with the project.
In C:\DVDAuthor to create a new textual file with the scratch pad of Windows.
To call this DVDAuthor.xml file for example.
To publish the file and to copy following information:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > < pgc > < vob file = ""/> </pgc > </titles > </titleset > </dvdauthor >
These some lines are the minimal structure, the skeleton which our script must have to be dealt with by DVDAuthor.
vmgm…/vmgm: it is all that relates to VideoManager: VIDEO_TS.VOB.
titleset…/titleset: determine the number and the order of VTS on the DVD.
titles…/title: determine the number and the order of the Title in the VTS.
pgc…/pgc: determine the number and the order of PGCs in Title.
vob file: it is the source, le/les input files which will constitute the PGC in progress
It is enough to indicate in script the files constituting our PGC.
Example:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > < pgc > < vob file="PGC_V0C01.VOB "/> < vob file="PGC_V0C02.VOB "/> < vob file="PGC_V0C03.VOB "/> < vob file="PGC_V0C04.VOB "/> < vob file="PGC_V0C05.VOB "/> < vob file="PGC_V0C06.VOB "/> < vob file="PGC_V0C07.VOB "/> < vob file="PGC_V0C08.VOB "/> < vob file="PGC_V0C09.VOB "/> < vob file="PGC_V0C10.VOB "/> < vob file="PGC_V0C11.VOB "/> < vob file="PGC_V0C12.VOB "/> < vob file="PGC_V0C13.VOB "/> < vob file="PGC_V0C14.VOB "/> < vob file="PGC_V0C15.VOB "/> < vob file="PGC_V0C16.VOB "/> < vob file="PGC_V0C17.VOB "/> < vob file="PGC_V0C18.VOB "/> < vob file="PGC_V0C19.VOB "/> < vob file="PGC_V0C20.VOB "/> < vob file="PGC_V0C21.VOB "/> < vob file="PGC_V0C22.VOB "/> </pgc > </titles > </titleset > </dvdauthor >
Note:
In the state of current script DVDAuthor will create as much chapter than of files met. Thus in my example I will have 22 chapters.
Image
One can on the other hand imagine to gather certain cells (even very to have a single chapter).
Example:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > < pgc > < vob file="PGC_V0C01.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C02.VOB "> < cell/> </vob > < vob file="PGC_V0C03.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C04.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C05.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C06.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C07.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C08.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C09.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C10.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C11.VOB "> < cell/> </vob > < vob file="PGC_V0C12.VOB "> < cell/> </vob > < vob file="PGC_V0C13.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C14.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C15.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C16.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C17.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C18.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C19.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C20.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C21.VOB "> < cell chapter="1 "/> </vob > < vob file="PGC_V0C22.VOB "> < cell chapter="1 "/> </vob > </pgc > </titles > </titleset > </dvdauthor >
Result:
Image
For an exhaustive list of the languages codes .
Example:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > < audio lang="FR "/> < audio lang="EN "/> < audio lang="EL "/> < audio lang="JA "/> < subpicture lang="FR "/> < subpicture lang="EN "/> < subpicture lang="JA "/> < subpicture lang="ES "/> < subpicture lang="NL "/> < subpicture lang="FR "/> < pgc > < vob file="PGC_V0C01.VOB "/> < vob file="PGC_V0C02.VOB "/> < vob file="PGC_V0C03.VOB "/> < vob file="PGC_V0C04.VOB "/> < vob file="PGC_V0C05.VOB "/> < vob file="PGC_V0C06.VOB "/> < vob file="PGC_V0C07.VOB "/> < vob file="PGC_V0C08.VOB "/> < vob file="PGC_V0C09.VOB "/> < vob file="PGC_V0C10.VOB "/> < vob file="PGC_V0C11.VOB "/> < vob file="PGC_V0C12.VOB "/> < vob file="PGC_V0C13.VOB "/> < vob file="PGC_V0C14.VOB "/> < vob file="PGC_V0C15.VOB "/> < vob file="PGC_V0C16.VOB "/> < vob file="PGC_V0C17.VOB "/> < vob file="PGC_V0C18.VOB "/> < vob file="PGC_V0C19.VOB "/> < vob file="PGC_V0C20.VOB "/> < vob file="PGC_V0C21.VOB "/> < vob file="PGC_V0C22.VOB "/> </pgc > </titles > </titleset > </dvdauthor >
In accordance with my example I have 4 Audios tracks (the 0x80=FRANCAIS, 0x81=ANGLAIS, 0x82=GREC and 0x83=JAPONAIS) and 6 tracks of subtitles (0x20=FRANCAIS, 0x21=ANGLAIS, 0x22=JAPONAIS, 0x23=ESPAGNOL, 0x24=NEERLANDAIS and 0x25=FRANCAIS).
There are mainly three statutes relating to the management of the subtitles as regards Authoring:
1st case: the activation of the track is not dealt with in the options of navigation of the DVD. It is the user who will have by the means remote control to choose it the posting of the desired track. The statute of the track is not defined .
In the preceding example I defined 6 tracks of subtitles. If I compile the project immediately I should use my remote control to force the posting of one of the tracks of subtitles at the time of the Playback.
2nd case: The track of subtitle is charged at the time of the playback with film using Pre Command in FirstPlay or while passing by the Menu of the languages. The statute of the track passes to ONE .
Let us imagine that I want to force the posting of the totality of the subtitles contained in my first track subtitles. In this case I simply will add Pre Command.
Illustration:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > < audio lang="FR "/> < audio lang="EN "/> < audio lang="EL "/> < audio lang="JA "/> < subpicture lang="FR "/> < subpicture lang="EN "/> < subpicture lang="JA "/> < subpicture lang="ES "/> < subpicture lang="NL "/> < subpicture lang="FR "/> < pgc > < pre > subtitle=64; </pre > < vob file="PGC_V0C01.VOB "/> < vob file="PGC_V0C02.VOB "/> < vob file="PGC_V0C03.VOB "/> < vob file="PGC_V0C04.VOB "/> < vob file="PGC_V0C05.VOB "/> < vob file="PGC_V0C06.VOB "/> < vob file="PGC_V0C07.VOB "/> < vob file="PGC_V0C08.VOB "/> < vob file="PGC_V0C09.VOB "/> < vob file="PGC_V0C10.VOB "/> < vob file="PGC_V0C11.VOB "/> < vob file="PGC_V0C12.VOB "/> < vob file="PGC_V0C13.VOB "/> < vob file="PGC_V0C14.VOB "/> < vob file="PGC_V0C15.VOB "/> < vob file="PGC_V0C16.VOB "/> < vob file="PGC_V0C17.VOB "/> < vob file="PGC_V0C18.VOB "/> < vob file="PGC_V0C19.VOB "/> < vob file="PGC_V0C20.VOB "/> < vob file="PGC_V0C21.VOB "/> < vob file="PGC_V0C22.VOB "/> </pgc > </titles > </titleset > </dvdauthor >
Note:
64 to force track 1 65 for track 2 … 95 for track 32 .
3rd case: A principal track contains forced subtitles. To post only the secondary subtitles: the statute of the track requires to have passed to OFF . - the principle is identical but in this case one works on the beach 0-31 .
Example:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > < audio lang="FR "/> < audio lang="EN "/> < audio lang="EL "/> < audio lang="JA "/> < subpicture lang="FR "/> < subpicture lang="EN "/> < subpicture lang="JA "/> < subpicture lang="ES "/> < subpicture lang="NL "/> < subpicture lang="FR "/> < pgc > < pre > subtitle=0; </pre > < vob file="PGC_V0C01.VOB "/> < vob file="PGC_V0C02.VOB "/> < vob file="PGC_V0C03.VOB "/> < vob file="PGC_V0C04.VOB "/> < vob file="PGC_V0C05.VOB "/> < vob file="PGC_V0C06.VOB "/> < vob file="PGC_V0C07.VOB "/> < vob file="PGC_V0C08.VOB "/> < vob file="PGC_V0C09.VOB "/> < vob file="PGC_V0C10.VOB "/> < vob file="PGC_V0C11.VOB "/> < vob file="PGC_V0C12.VOB "/> < vob file="PGC_V0C13.VOB "/> < vob file="PGC_V0C14.VOB "/> < vob file="PGC_V0C15.VOB "/> < vob file="PGC_V0C16.VOB "/> < vob file="PGC_V0C17.VOB "/> < vob file="PGC_V0C18.VOB "/> < vob file="PGC_V0C19.VOB "/> < vob file="PGC_V0C20.VOB "/> < vob file="PGC_V0C21.VOB "/> < vob file="PGC_V0C22.VOB "/> </pgc > </titles > </titleset > </dvdauthor >
Note:
In this example, I make so that is posted only the subtitles marked as forced contained in the first track of subtitles.
To add the pallet which will compose the DVD, it is enough to create a file indexing the 16 colors coded on 6 digits into hexadecimal .
To create a file palette.txt in the C:\DVDAuthor repertory .
To publish the file and to recopy the values as follows then to record the modifications.
Image
Remainder to refer to the file palette.txt in script XML .
Example:
< dvdauthor > < vmgm > </vmgm > < titleset > < titles > <audio lang="FR" /> <audio lang="EN" /> <audio lang="EL" /> <audio lang="JA" /> <subpicture lang="FR" /> <subpicture lang="EN" /> <subpicture lang="JA" /> <subpicture lang="ES" /> <subpicture lang="NL" /> <subpicture lang="FR" /> <pgc palette="palette.txt" > <pre> subtitle=0; </pre> <vob file="PGC_V01C01.VOB" /> <vob file="PGC_V01C02.VOB" /> <vob file="PGC_V01C03.VOB" /> <vob file="PGC_V01C04.VOB" /> <vob file="PGC_V01C05.VOB" /> <vob file="PGC_V01C06.VOB" /> <vob file="PGC_V01C07.VOB" /> <vob file="PGC_V01C08.VOB" /> <vob file="PGC_V01C09.VOB" /> <vob file="PGC_V01C10.VOB" /> <vob file="PGC_V01C11.VOB" /> <vob file="PGC_V01C12.VOB" /> <vob file="PGC_V01C13.VOB" /> <vob file="PGC_V01C14.VOB" /> <vob file="PGC_V01C15.VOB" /> <vob file="PGC_V01C16.VOB" /> <vob file="PGC_V01C17.VOB" /> <vob file="PGC_V01C18.VOB" /> <vob file="PGC_V01C19.VOB" /> <vob file="PGC_V01C20.VOB" /> <vob file="PGC_V01C21.VOB" /> <vob file="PGC_V01C22.VOB" /> </pgc> </titles> </titleset> </dvdauthor>
Sommaire
Copyright c 20/12/2004 : VIK Document soumis au Copyleft : cette oeuvre est libre, vous pouvez la redistribuer et/ou la modifier selon les termes de la Licence Art Libre. Cliquez ici pour afficher un exemplaire de cette Licence.