SupViewer

SupViewer is a simple small program to show SUP subtitle files on either a checkered background or a (selectable) graphic.
It also allows you to change the colors of the palette and save the new palette as a dvdauthor compatible palette file.
Within the SUP file you may change the mapping of subtitle colors to the colors of the palette and also change the opacity/transparency of individual subtitles or for the whole SUP file. The changed SUP file can then be saved with a new filename.
The functionality is pretty much like SupRemap or the SUP manipulation tools inside SubtitleCreator, but SupViewer supports variable opacities (or transparencies).
The program requires GDI+, which is already included in Windows XP, for other Windows versions the necessary DLL may be downloaded from Microsoft.
I have tested SUP files from projectx and vobedit.

A palette may be loaded from an IFO file or a dvdauthor compatible palette file, otherwise a default palette is used.
You can save the palette (if changed in SupViewer) again as dvdauthor compatible palette file.

The new version of  SupViewer (0.2) can 'combine' two SUP files to create one 'two language' SUP file which can be used for 'language learning' purposes (usually one language is shown as normal subtitle and the other as 'toptitle'). There are some limitations for this functionality, see below.


Download: SupView.zip (97kB; GDI+ and VB Runtime necessary))

Screenie:


As you can see on the screenie, the semitransparent color1 is correctly shown. If you change the color mapping or the opacity of the currently shown subtitle the result can be seen immediately in the preview. To save the current mapping / opacity, click on 'Set for actual'. To use the same mappings / opacities for all subtitles in the SUP file, click on 'Set for all'. With the 'Save' button right next to the open button you may save the changed SUP file on your hard disk.
If you would like to see the subtitles on a more 'real' background, select a graphics file (like a screenie of the movie - supported formats are BMP/GIF/JPG/PNG) and switch to 'Graph. File' in the background frame:


Then the preview uses the chosen graphics as background:


Combining SUP files:
Some soft players (like PowerDVD, mplayer...) can show a secondary subtitle stream i.e. to show subtitles in two different languages. Unfortunately this is not possible on a normal stand alone 'hardware' DVD player. But if some conditions are fulfilled, you can create a new (additional) subtitle stream which includes the subtitles from two different languages. During my tests these problems occurred:
1. The subtitles in different languages differ in both number and timing
2. The colors do not fit

For the first problem, a general solution is to use the subtitle stream with the higher number of subtitles as 'leading' (first stream) and the subtitle stream with less subtitles as secondary. In this case the SupViewer algorithm will start with the timing informations from the first subtitle stream and search for a 'fitting' subtitle in the secondary stream by optimizing for maximum overlapping. Usually this approach gives reasonable results.

For the second problem I don't have a solution... If the first subtitle stream uses 'Color1' as transparent background and 'Color2' for the visible text and the secondary subtitle stream uses 'Color1' as visible text and 'Color2' as transparent background, this doesn't work. Fortunately most subtitle stream use 'Color1' as transparent background...
Another problem (which is connected but 'solvable') are multicolor subtitle streams: Subtitle 1 uses palette colors 0, 2, 4, 6 and the next subtitle uses palette colors 0, 1, 3, 5. This is not possible with the current algorithm for combining SUP files (simply to much work to check if the number of used colors within one combined subtitle is always smaller or equal to 4). If you have such subtitle streams (quite often for DVB or 'teletext' based streams), you have to reduce the colors. This can be done for each SUP file separately with SupViewer by using the 'Set for all' button with a given combination of colors and opacities and saving each SUP file with a new name.

If the conditions are fulfilled, the 'procedure' is very simple:
(Remark: If you are working with NTSC material, set the 'Size' to 720x480 as 'Step 0').
1. Load the first SUP file with the 'Open' icon right next to 'Sup File:' (you may also load a palette, this is not necessary, but useful to check the 'combined' subtitles in the preview window). 
2. Load the secondary SUP file with the 'Open' icon in the '2nd' frame
3. Set up the Y-Offset for the secondary stream (default= -400 pixel)
3a Check some 'combined' subtitles with the Next/Prev buttons.
4. Save the 'combined' SUP file with the 'Save' icon in the '2nd' frame with a new name.



Some additional remarks:
- If a secondary SUP file is loaded, all other 'change' buttons (colors, opacities...) are disabled
- The 'new' SUP file isn't 'optimized'. Always the maximum allowed area: X,Y=0,2 to 720,574 (or X,Y=0,2 to 720,478) is used. 

The new SUP file can be used with all authoring programs which support subtitles in the SUP format (ifoedit, MuxMan, GfD...)

Have fun,
Borax