I've looked with interest at the various posts about simultaneously displaying multiple DVD subtitles. All suggestions seem to boil down to merging subtitles that need to be displayed at the same time, into the same subtitle stream.

Subtitle streams 1 and 2 are straight-forward to create and format. The posts above mention various ways of merging text files into one for subtitle stream 3.

However, what about formatting? I realise that SupViewer makes it possible to combine SUP files with different content and formatting, but I understand it requires the files to have the same number of entries and timing, which isn't the case here. That's why I'm looking for a solution to combine the files in text before rendering to SUP.

What is the easiest way of combining multiple text subtitle files in a way that formats their entries differently, i.e. file 1 entries go bottom left and file 2 entries go bottom centre? I'm currently working from SRT to SUP but I'm able to convert between text subtitle tipes if the solution depends on it.

I don't think there is an easy way for this...
The datecode will probably change each second. As one subtitle has a specific duration, you cannot tell any program to show the 'text' some seconds, and the datecode only one second. The only way out would be to repeat the 'text' for as many seconds as it should be shown.
But here it is much easier with supviewer. As there are really enough subtitles in the datecode stream, you should load it as the first sup file into supviewer and the text stream as the second. The merged sup file will use the timings of the first stream, but show the subtitles from the second one as long as they should be shown. The problem with different timings is mainly if there are subtitles in different languages where some are missing in one language and vice versa. Assume a subtitle from the first stream is shown from second 10 to second 15. Then the next is shown from second 30 to 45. In the other stream the first is shown from second 20 to second 30... => in the combined stream this is never shown.

But here it is much easier with supviewer. As there are really enough subtitles in the datecode stream, you should load it as the first sup file into supviewer and the text stream as the second. The merged sup file will use the timings of the first stream, but show the subtitles from the second one as long as they should be shown. The problem with different timings is mainly if there are subtitles in different languages where some are missing in one language and vice versa. Assume a subtitle from the first stream is shown from second 10 to second 15. Then the next is shown from second 30 to 45. In the other stream the first is shown from second 20 to second 30... => in the combined stream this is never shown.

Thanks for your response, Borax.

If I understand your description of the different timings problem correctly, it shouldn't be a problem when the first stream contains DATECODE subtitles. Whenever DV video material is being displayed, DATECODE subtitles will be available contiguously, and language subtitles from the other stream may or may not be present. Therefore there should be no time period when DATECODE subtitles are NOT being displayed.

But, clearly there's no cut-and-dried recipe for this so I'll just play around some more .

Thanks for the suggestion, that's an impressive number of simultaneous subtitles! I tested two simultaneous ones with PowerDVD playing DVD Video off the hard disk but the positioning wasn't great.

As exciting as that possibility sounds, I'm looking for a way of preparing subtitles to achieve the same effect on a hardware DVD player. I guess the subject line should have included that, but by then I was already very tired .

I can create one. What format are your subtitles?
Maybe you can post the files with some lines (like first 3 minutes of each stream), tell me your video format (PAL/NTSC) and add a simple graphic/screenie where each subtitle stream should be displayed and with which colors (only three colors are possible in total). Then I can write some guide for this topic.

Initially the formats created by DV_DATECODE are .SUB, .SRT & .SSA text files. If necessary it's easy to convert between text formats with something like Subtitle Workshop, however. Video format is PAL and I'm trying to combine bottom left and bottom centre-aligned subtitles.

For this purpose so far I find the .SSA format to work the easiest. After the file header declarations, each subtitle entry is fully self-contained, specifying its timing, layout (Style) as well as text. This makes it simple to create separate and differently formatted subtitle files (in e.g. Subtitle Workshop) and to merge and sort the entries in a text editor afterwards. All that remains is to ensure all used Styles are declared in the merged file's header. Here's an example containing mostly DATECODES and one "language" subtitle. DATECODES are bottom left-aligned and the language subtitle is bottom centre-aligned.

Using MaestroSBT with SST rendering as described in your GFD guide creates acceptable quality, correctly coloured and correctly positioned "multiple" subtitles (as long as you have horizontal collision detection off and specify the correct Color Keys in MaestroSBT). However, with SST subtitles MuxMan adds that small gap between time-adjacent subtitles which causes an annoying flickering as the DATECODE display is updated.

Currently I'm trying out MaestroSBT (SON) - SON2VSUB - SubToSup, but can't even get the colours right! It doesn't seem to be a simple matter of editing the CLUT with PgcEdit - the wrong colour index has the transparency and so on.

Do you have any suggestions for that?
<edit>
PS. I've given up on this SON - VSUB - SUP chain. SubToSup also inserts gaps between time-adjacent subtitles .
</edit>

Alternatively, do you know of any other conversion chain from SSA to SUP that observes the SSA formatting, ignores "horizontal collisions" when told to, doesn't insert gaps between time-adjacent titles and is easily told what colours to use?

Alternatively, if you wrote a straight-forward SSA to SUP convertor, what would it cost me? .

According to your email, Srt2Sup does the conversion without 'inserting gaps between time-adjacent subtitles'. Use this SUP as first stream in supviewer and the language" subtitles (converted from SSA) as second one. I'm not sure that this will work, but it is not much work to test...

While I hope to report back on what worked (hopefully), here's a hint for your next version of SupViewer. Save the above listing as a .SSA file, load it into MaestroSBT, set Rendering as shown, set Timing to 25 and 25, go to Edit & Preview and look at Subpictures 7 through 14.

MaestroSBT handles subtitles that overlap in time but not in space BEAUTIFULLY. As soon as a time overlap starts, it makes a subtitle transition. It stops the current subtitle and starts a new one by spatially combining (horizontally with this SSA script) the time-overlapping source subtitles. As soon as the time overlap of those two source subtitles finishes by either or both of them finishing, it makes another transition to a new output subtitle, and so on. This algorithm completely fixes the "different timings" issue.

Maybe you can make SupViewer do this? If the source subtitles are already horizontally seperated you could combine them horizontally like MaestroSBT does. Then the current vertical stacking becomes worst case behaviour.

1. Create two separate .SSA files each with different horizontal positioning for the two subtitle streams, merge the files, sort the entries and add the appropriate header, as mentioned above
2. Use MaestroSBT to render the .SSA file to .SST (so far I've only tested with all collision detection and handling turned off)
3. Open the .SST file in a text editor, highlight the subtitle entries (the numbered lines starting from 0001) and press Ctrl-C to copy them to the clipboard
4. Open Excel, ensure the cursor is in cell A1 and press Ctrl-V to paste in the subtitle entries (verify that each column from the .SST file is pasted to a separate Excel column)
5. Copy this formula
=IF(C1=B2,"-",C1)
to the clipboard, position the cursor on cell E1 and press Ctrl-V
6. With the cursor still on E1, press Ctrl-C
7. Right-click the 'E' header of column E and from the pop-up menu choose Paste to paste the formula into all cells of column E
8. In column E, select those cells that have corresponding subtitle entries to their left, and press Ctrl-C to copy their values
9. Position the cursor in cell C1, from the menu choose Edit -> Paste Special... -> Values and click OK
10. Right-click the 'E' header of column E and from the pop-up menu choose Delete
11. Select all non-empty cells and press Ctrl-C to copy them to the clipboard
12. In the .SST file, ensure the original subtitle entries are still highlighted and press Ctrl-V to paste in the new values
13. (Lucky #13) Save the .SST file

Then mux with Muxman as per usual. If using GFD, the .SST file should be used again to provide the palette, as your guide explains.