Log in

View Full Version : EVOB De/Multiplexers


Pages : 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

ArcticFox
26th January 2007, 10:23
Cant seem to get demux.exe to work, no matter what channel i choose it just demuxes a 360mb file that i cant get to play anywhere.

Deckard2019
26th January 2007, 12:48
@ape :
As you explained on page 9, do you really succeed in reencoding using your graph ?
Could you explain your DirectShowSource parameters ? Why "framecount" ? And why "111360" ?
Why ConvertToYV12 and why these Crop values ?

Thank you.

Neo Fagin
26th January 2007, 20:22
Continuing work on getting real 24fps video out of these..

The method Isochroma detailed doesn't work for me. Haali Matroska Muxer and Elecard's demuxer can't agree on a connection in graphedit (latest versions of both).

However, Elecard -> Sonic Cinemaster Decoder does produce video playback which looks fine.

Creating a graph with whatever.vc1 -> elecard -> sonic decoder and loading it into avisynth via directshowsource does work, however the framecount is 4661327 and seeking is useless. BUT, when played back linearly (without seeking) it serves the frames in the correct order.

info() shows the stream as 29.97fps, but it's producing 24fps video. Adding fps=24 to directshowsource corrects this and doesn't alter the order of frames.

Running this avs:

directshowsource("sa1.GRF",audio=false,fps=24,seek=true,seekzero=false) + directshowsource("sa2.GRF",audio=false,fps=24,seek=true,seekzero=false)
trim(0,10000)

..into x264 produced a 10,000 frame file which appears to have no duplicate frames, is 24fps, and has no framedrops (source was Sahara's FEATURE_1).

I compared this to a 10,000 frame file produced with the other 24fps method, which was using a graph of FEATURE_1.EVO -> Sonic demuxer -> Sonic decoder, loaded into avisynth with directshowsource and specifying an exact framecount, and the two files differ.

EVO -> Sonic Demuxer -> Sonic Decoder: x264 [info]: slice P:5954 Avg QP:18.66 size: 32553
VC1 -> Elecard Demuxer -> Sonic Decoder: x264 [info]: slice P:5932 Avg QP:18.54 size: 32606

Playing back the two files, the file produced with the other method has a few duplicate frames. Not many, but about one every ~1 minute of video, and entirely at random. This causes progressive audio desync which cannot be corrected by stretching audio or whatnot, since the desync is entirely random.

I'm next going to try encoding an entire full-length feature via the elecard -> sonic decoder method, and to get past the "infinite frames being reported" error, I will just put trim (0, [number of minutes of movie * 60 * 24]) at the end of the avs. As long as I don't try to seek in the avs or in vdub, x264 just encodes the frames as they're served until the frameserver stops serving them, so if I tell avisynth to serve say 178560 frames with trim(), it'll play the movie back frame for frame in the correct order with no drops or dupes up to that mark, which'll result in an x264 encode with the proper length and no framedrops/errors.

gooki
26th January 2007, 23:11
I tried 0,3 on Batman Begins.

The program identifies the one VC-1, the three DD+, and the one MLP stream correct.

I extracted all the streams in the first main evob.

I tried to play it in PDVD 7.2 and MPC as well, but I can't got any of them working.

I managed to get King Kong demuxed to play in PowerDVD 7.2 buy renaming the demuxed video file to .vc1 allowed it to play.

However the playback was extreemly choppy 10 black frames to one video frame.

Would love to find a way to playnack these .vc1 strems directly with a media player.

Deckard2019
27th January 2007, 00:17
Thanks for your feedback Neo Fagin. I tried the Elecard method and it's working.
I'm using MeGUI to test x264 conversion and I have messages about converting the source to YV12 and resolution not multiple of 16.
Do you have them too ?

I used ConvertToYV12() for the first error.
For the other, I don't know what is the best method to be 16-multiple-resolution compliant. Crop or Resize ?

For the audio part, do you think I can keep the track as it came from demux process and mux it directly with h264 video track ?

Neo Fagin
27th January 2007, 01:46
Well, thus far I've encoded a 20 minute sample with my "method" (just a combination of other people's partially working methods).

DTS Audio (demuxed right from the same hd-dvd) desynced but linearly.

Setting audio stretching to a factor of 0.999 in mkvmerge produced a 20 minute mkv with audio perfectly synced to the video, running at 24fps. Don't ask me why. Perhaps the audio in the HD-DVD is meant to go with 23.976fps video after all.

The issue with this method is that there is no reliable method of getting the exact framecount of the first part. This will become an issue, because when you use directshowsource() + directshowsource, both sources have an unreadable framecount, so you end up with the movie playing through the first part then producing grey frames forever and never starting the second part. Thusly,

a = directshowsource("feature1.grf",fps=24,framecount=whatever)
b = directshowsource("feature2.grf",fps=24,framecount=whatever)
unalignedsplice(a,b)

is the only way to make this work properly. The "framecount" value is unobtainable, and a few frames will be lost at the junction point between the two parts. The framecount for the second part can just be calculated by its length in seconds and rounded down to the second, because you'll just be losing blackscreen or a few frames off the studio logo. It's the framecount for the first part that matters, to avoid a glitch between the two parts, dropped frames, and audio desync. As of yet I haven't come up with a solution except literally loading the avs in virtualdub, playing it back realtime until it gets within a few seconds of the end, then playing it frame by frame until you hit a grey screen, giving you the exact frame count down to one frame.

Deckard: The mod16 error would be caused if you leave the video at 1920x1080 (1080 is not mod16), you can do crop (0,0,0,-8) to make it 1920x1072 and mod16, or better yet just crop all the letterboxing off altogether.

drmpeg
27th January 2007, 07:37
I managed to get King Kong demuxed to play in PowerDVD 7.2 buy renaming the demuxed video file to .vc1 allowed it to play.

However the playback was extreemly choppy 10 black frames to one video frame.

Would love to find a way to playnack these .vc1 strems directly with a media player.
There's a problem with demux version 0.3 if the title has IME or U-control and the primary video stream and the secondary video stream are both VC-1 (like on King Kong). It will demux both video streams into the same video output file, which is not good.

However, not only do I have a fix, but you'll also be able to optionally demux the IME video and audio streams. Stay tuned, I have to go do some drinking right now, but there will be an update of demux soon.

Ron

Neo Fagin
27th January 2007, 08:24
Oh, drmpeg: I get the short audio packet error on movies with DTSHD, yes. Fearless (the only movie I have here without dtshd) did not generate the error. I don't have enough discs available to really do a scientific test.

Deckard2019
27th January 2007, 09:44
Did you try last HD-DVD Demuxer (http://www.dvd-logic.com/hddemuxer.htm) version (1.2 beta) ? It handles EVOB files and HD-DVD structure ...

lordx
27th January 2007, 11:37
Testing it now :

Opening evo files and demux

FEATURE_1_55.vc1
FEATURE_1_c0.ac3
FEATURE_1_c1.ac3
FEATURE_1_c2.ac3
FEATURE_1_20.sup
FEATURE_1_21.sup
FEATURE_1_22.sup

Now must do a mux but ... with what ?

And 100$ is too expensive for that ...

ape
27th January 2007, 12:09
@ape :
As you explained on page 9, do you really succeed in reencoding using your graph ?
Could you explain your DirectShowSource parameters ? Why "framecount" ? And why "111360" ?
Why ConvertToYV12 and why these Crop values ?

Thank you.

yes i succeeded in reencoding a few evo's using similar graphs to that. i had to specify the framecount because if you do not, then avisynth keeps serving up gray frames after the end of the video and you will never finish encoding. converttoyv12 was so that megui stopped bitching (can't remember why). i was cropping off the black bars on the top and bottom of superman returns.

drmpeg
27th January 2007, 14:00
I've created version 0.4 which adds demuxing of secondary (IME or U-control) streams. This also fixes a bug with demuxing VC-1 video on titles where both the primary and secondary video is VC-1 (King Kong).

http://www.w6rz.net/evob_demux.zip

EVOB Demuxer = Version 0.4

Changes for Version 0.4

1) Add -s option to demux secondary video stream (IME or U-control)
2) Fixed bug with titles that have both primary and secondary VC-1 streams
3) Report secondary DD+ audio streams

Changes for Version 0.3

1) Change audio format entry to text instead of number (can't remember numbers!)
2) Fixed bug with short audio packets
3) Fixed MLP stream reporting

Changes for Version 0.2

1) Added correct LPCM extraction
2) Added audio and video stream detection and reporting

Usage:

demux <-ps> <infile> <video outfile> <audio outfile> <audio format> <audio track>

Typically:

demux movie.evo bits.mpv bits.mpa dd+ 0

or typically for secondary (IME or U-control) streams:

demux -s movie.evo bits.mpv bits.mpa dd+ 8

Supported audio format strings:

DD, DD+, DTS, DTSHD, LPCM, MLP
dd, dd+, dts, dtshd, lpcm, mlp

Note: dts and dtshd are equivilent

-p option dumps both audio and video PTS values
-s option demuxes secondary video instead of primary video

Note: secondary DD+ streams will have audio track numbers 8 thru 15

Ron

Okraml
27th January 2007, 14:30
Is it possible, to add a an option which demuxes all found streams (maybe demux.exe -all) or an "only report found streams" option?

:-) Okraml

Deckard2019
27th January 2007, 14:42
Is it possible, to add a an option which demuxes all found streams (maybe demux.exe -all) or an "only report found streams" option?
And what about subtitles ?

drmpeg
27th January 2007, 14:55
Is it possible, to add a an option which demuxes all found streams (maybe demux.exe -all) or an "only report found streams" option?

:-) Okraml
Sounds like folks would like a -all option. In the meantime, there's a way to do a manual "only report found streams". You can type Ctrl-C to abort the program after the streams are found, and then restart with the desired audio track.

You can also speed up audio demuxing dramatically by specifying the nul device for the video stream. Like this:

demux feature.evo nul bits.ac3 dd+ 0

Ron

drmpeg
27th January 2007, 15:17
And what about subtitles ?
I'll see what I can do. I'm not exactly sure how to test subtitles yet.

Ron

tomos
27th January 2007, 16:38
Well, thus far I've encoded a 20 minute sample with my "method" (just a combination of other people's partially working methods).

DTS Audio (demuxed right from the same hd-dvd) desynced but linearly.

Setting audio stretching to a factor of 0.999 in mkvmerge produced a 20 minute mkv with audio perfectly synced to the video, running at 24fps. Don't ask me why. Perhaps the audio in the HD-DVD is meant to go with 23.976fps video after all.

The issue with this method is that there is no reliable method of getting the exact framecount of the first part. This will become an issue, because when you use directshowsource() + directshowsource, both sources have an unreadable framecount, so you end up with the movie playing through the first part then producing grey frames forever and never starting the second part. Thusly,

a = directshowsource("feature1.grf",fps=24,framecount=whatever)
b = directshowsource("feature2.grf",fps=24,framecount=whatever)
unalignedsplice(a,b)

is the only way to make this work properly. The "framecount" value is unobtainable, and a few frames will be lost at the junction point between the two parts. The framecount for the second part can just be calculated by its length in seconds and rounded down to the second, because you'll just be losing blackscreen or a few frames off the studio logo. It's the framecount for the first part that matters, to avoid a glitch between the two parts, dropped frames, and audio desync. As of yet I haven't come up with a solution except literally loading the avs in virtualdub, playing it back realtime until it gets within a few seconds of the end, then playing it frame by frame until you hit a grey screen, giving you the exact frame count down to one frame.

Deckard: The mod16 error would be caused if you leave the video at 1920x1080 (1080 is not mod16), you can do crop (0,0,0,-8) to make it 1920x1072 and mod16, or better yet just crop all the letterboxing off altogether.

ok, i have something different.

i was following your guide and afterwards tested how things worked out in graphedit

i demultiplexed supes returns (1st mov evo) and dropped the vc1 into graphedit.

this connects - vc1 -> elecard demulti -> sonic vid decoder -> video renderer

i didnt use a grf file, i directshowsourced the vc1 and opened in vdub. that works. i can seek to the end and point to a specific frame without a prob. the fps is at the mo 29.970 (although, playing the vc1 file direct in mpc shows 24 fps)

have i done (or left out) something stupid, since this is looking good to me at the mo.

Pelican9
27th January 2007, 17:22
Hi all!

I've created a demux program based on drmpeg's demux 0.3.
It has GUI and capable save all streams. It can read infos from XPL file or from the EVO. You can drag and drop the file, etc.

http://pel.hu/down/EVOdemux.exe

Save the subpicture streams doesn't work yet.
I guess the subpictures streams are the 0x20, 0x21, 0x22, ....

Pelican9
27th January 2007, 17:24
I'll see what I can do. I'm not exactly sure how to test subtitles yet.

Ron

If you download this (http://www.dvd-logic.com/hddemuxer.htm) you can get the subpictures...

Neo Fagin
27th January 2007, 17:57
have i done (or left out) something stupid, since this is looking good to me at the mo.No, that's correct, just put fps=24 in directshowsource and it'll give you 24fps.

I have gotten a reencode working, but had to reencode the first part to a huffyuv avi then manually seek to the break point in order to get the framecount value for it, after that the second part can just be rounded down to the nearest second and calculated. There is no error/problem I can see at the split point, so all that's left for me to do is mux the audio, make sure it syncs, and there's a demonstratably working valid solution for pure 24fps.

The1n
27th January 2007, 18:16
Hi all!

I've created a demux program based on drmpeg's demux 0.3.
It has GUI and capable save all streams. It can read infos from XPL file or from the EVO. You can drag and drop the file, etc.

http://pel.hu/down/EVOdemux.exe

Save the subpicture streams doesn't work yet.
I guess the subpictures streams are the 0x20, 0x21, 0x22, ....

Great work , will try it.

tomos
27th January 2007, 18:38
No, that's correct, just put fps=24 in directshowsource and it'll give you 24fps.

I have gotten a reencode working, but had to reencode the first part to a huffyuv avi then manually seek to the break point in order to get the framecount value for it, after that the second part can just be rounded down to the nearest second and calculated. There is no error/problem I can see at the split point, so all that's left for me to do is mux the audio, make sure it syncs, and there's a demonstratably working valid solution for pure 24fps.

i suppose you could resize the input video so something tiny to get max speed out of the encode to get a frame count.

havent messed around with audio yet. that'll be fun :D

Pelican9
27th January 2007, 19:21
I've finished updating my sw (based on drmpeg's version 0.4) but I need an EVO which contains more than one video streams.
Could anybody make me a little one (10-20 MB) to test?
I've uploaded v0.4

superx
27th January 2007, 19:43
hey guys I was able to get Serenity ripped but was wondering how I can get this to play on my ps3 also I need to split the files into 4 gig chunks because of the fat32 requirements.

Any help thanks

holzi
27th January 2007, 20:04
JFYI FFDSHOW-Tryouts ( http://ffdshow-tryout.sourceforge.net/ )
Do have the E-AC3 filters included now to. Put I wasn't able to render a graph with ffdshow audio filter. Maybe you can't do it right now anyway. But if someone is able to let us know.

tomos
27th January 2007, 20:05
No, that's correct, just put fps=24 in directshowsource and it'll give you 24fps.

I have gotten a reencode working, but had to reencode the first part to a huffyuv avi then manually seek to the break point in order to get the framecount value for it, after that the second part can just be rounded down to the nearest second and calculated. There is no error/problem I can see at the split point, so all that's left for me to do is mux the audio, make sure it syncs, and there's a demonstratably working valid solution for pure 24fps.

getting some bizarre results now

did the same thing for a test on 2 vc1 clips. 1 from supes, and 1 from the mummy. the superman one plays fine and opens in vdub (with DSS) fine. the clip from the mummy, plays fine, but seems to loop and jump in vdub. e.g scanning through (or encoding) plays half the frames of whatever timeframe you're on at the mo and the other half are from the beginning of the clip? :confused:

Neo Fagin
27th January 2007, 20:45
getting some bizarre results now

did the same thing for a test on 2 vc1 clips. 1 from supes, and 1 from the mummy. the superman one plays fine and opens in vdub (with DSS) fine. the clip from the mummy, plays fine, but seems to loop and jump in vdub. e.g scanning through (or encoding) plays half the frames of whatever timeframe you're on at the mo and the other half are from the beginning of the clip? :confused:It is bizarre.

When you open the clip in vdub without a framecount, vdub will see 4,000,000 or so frames (probably because the vc1 has no timecodes) and the video will be stretched over those frames, so seeking to frame 2,000,000 will put you halfway through the clip.

When you play the clip back, it will play back 24fps video perfectly and have no trouble.

If you stop the playback or attempt to seek, the stream continuity is off and vdub seeks assuming 4,000,000 frames again, so frame 70,000 is "right at the beginning of the clip" because it thinks the clip is 4m frames long.

What I have done to get around this is loaded the avs in vdub, then set compression to huffyuv (any fast codec would do, really), and saved an avi. What this does is it gets avisynth/vdub to play the clip back from frame 0, causing it to play the clip's real 70,000 or so frames in perfect order, then once it reaches the end of those 70,000 it'll play the clip in order again infinitely to 4,000,000 frames. It'll loop at 70,000 so it'll start 1 minute in because vdub still thinks the clip is 4m frames long.

I then loaded the avi with avisource in a separate avs and seeked around to find the spot where the original 70,000 or so frames ended and it started playing the clip back from the beginning again, got the exact number of frames, then added that number to the final avs. Then when reencoding, avisynth will first play the 70,000 frames from feature_1, then play the 100,000 or so frames from feature_2, in proper order without any grey/glitched/off frames at the spot where the two feature clips join up, resulting in a perfect 24fps reencode without issues.

Obviously better tools will be released that get around the need to go through all this crap eventually, but for now this is all I've got.

Deckard2019
27th January 2007, 20:57
Do you use MeGUI for your x264 tests ? If so, what profile do yo use ?
I use SA-HD-DVD but don't know if it's a good choice.
Also, do you use custom quantization matrix ?

TNHitokiRi
27th January 2007, 21:25
The SA-HD-DVD profiles are outdated. I personally use the nwgat profiles, http://nwgat.net/Nwgat.HighProfile.rar.

Neo Fagin
27th January 2007, 21:49
I use my own profiles that I've made myself. I don't use any premade guides or frontends.

ArcticFox
27th January 2007, 22:20
JFYI FFDSHOW-Tryouts ( http://ffdshow-tryout.sourceforge.net/ )
Do have the E-AC3 filters included now to. Put I wasn't able to render a graph with ffdshow audio filter. Maybe you can't do it right now anyway. But if someone is able to let us know.

Where did you read that it included E-AC3?

TNHitokiRi
27th January 2007, 22:28
yea, ffdshow most definately does not have E-AC3 decoding capabilities yet. (might not even be possible)

http://forum.doom9.org/showthread.php?p=944523#post944523

gooki
28th January 2007, 04:25
drmpeg

EVOB Demuxer Version 0.4 is working well for me now - thanks.

Isochroma
28th January 2007, 04:48
drmpeg: Your work on demux.exe is greatly appreciated!

Using the basic .grf/.avs combination, I've been able to get nice 23.976fps from .evo files directly.

It has been mentioned elsewhere that the Cinemaster decoder outputs RGB32. It may do so under some circumstances, but using info() in the .avs indicates YUY2 output.

However, for those that like to force things, GSpot can be used to remove output formats. It lists only RGB32 and YUY2 for this filter. I found the registry entries, and created two .reg files. One restores the default caps (RGB32 & YUY2), while the other makes the filter output YUY2 only, by destroying its RGB32 output capability.

It should be remembered that even if Cinemaster can only output YUY2, if the graph-building application sets the downstream filter/renderer to require something other than YUY2, the graph constructor will insert the Color Space Converter filter after Cinemaster - delivering the required color space format.

However, if the downstream accepts YUY2 then it will be provided as default.

Both the .reg files have been tested and work perfectly:

CineMaster Video Decoder Output Changer (http://isochroma.com/Testfiles/Software/CineMaster Video Decoder Output Changer.rar)

Alternately, can just add pixel_format="YUY2" to your directshowsource() to force the input colorspace.

drmpeg
28th January 2007, 04:57
drmpeg

EVOB Demuxer Version 0.4 is working well for me now - thanks.
Cool. I'm just curious, can you play the demuxed dd+ audio files in PowerDVD 7.2? Possibly by using the same renaming trick you used for VC-1 files?

Ron

gooki
28th January 2007, 05:55
No luck playing the DD+ in power DVD 6.5. will try PowerDVD 7.2 soon.

Power DVD6.5 does however play the elementary .vc1 video stream.

drmpeg - one quick request. Is it possible to build a EVOB muxer? I want to strip the IME out of a evob then rebuild it - however i do not have scenartist or any other pro apps once i've got the elementary streams out of EVOB Demuxer.

thnaks.

TNHitokiRi
28th January 2007, 06:23
i havent had any luck playing back DD+ in powerdvd 7.2..

gooki
28th January 2007, 06:26
Just to confirm a few things.

VC1 PowerDVD 7.1/7.2 Playback file must be renamed .mpv
VC1 PowerDVD 6.5 Playback file must be renamed .vc1

No luck on the DD+ streams yet.

Rufus210
28th January 2007, 10:30
yea, ffdshow most definately does not have E-AC3 decoding capabilities yet. (might not even be possible)

http://forum.doom9.org/showthread.php?p=944523#post944523
FFmpeg (which FFdshow is based off of) is working on E-AC3, but it'll be just a bit: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-January/051381.html

Basically FFmpeg is the heart of most of the non-proprietary media world. Once they implement something (or you submit a patch to them implementing something) everyone else (vlc, ffdshow, mplayer, etc) will get it in due turn.

Pelican9
28th January 2007, 14:50
I've finished updating my sw.
It has the functionality of drmpeg's demux version 0.4
It can handle two video streams and 16 audio streams now.
The demuxed video is playable with pdvd 7.2.

Download: http://pel.hu/down/EVOdemux.exe

drmpeg:
Thanks for the test files!

mosb3rg
28th January 2007, 19:22
Just wanted to say thank you very very much for showing me how to load a .grf directly into the .avs, i was driving myself crazy trying to get it into avisynth via matroksa, and it just is the slowest process on earth at least now i can do things directly, nice work everyone in getting us to this point so quickly, we couldnt do it without you.

Mosb3rg

toxik
28th January 2007, 20:49
I still can't get to load a .grf in an .avs. I keep getting an error saying something like graph filter won't talk to me. Also commands like framcount aren't recognized. I need some help.

menlvd
28th January 2007, 21:42
I've finished updating my sw.
It has the functionality of drmpeg's demux version 0.4
It can handle two video streams and 16 audio streams now.
The demuxed video is playable with pdvd 7.2.

Download: http://pel.hu/down/EVOdemux.exe

drmpeg:
Thanks for the test files!

:thanks:

Neo Fagin
29th January 2007, 01:12
drmpeg: I get "short audio packet" on non-DTS titles too, it seems. Confirmed with V For Vendetta, which is only DD+/MLP.

drmpeg
29th January 2007, 03:56
drmpeg: I get "short audio packet" on non-DTS titles too, it seems. Confirmed with V For Vendetta, which is only DD+/MLP.

It's a bit of a mystery as to what these packets are for. Here's a debug version of demux 0.4 that prints more information when a short packet is detected.

http://www.w6rz.net/debug_version.zip

Could you run your clips through and post the results here?

The new debug message should look like this:

short audio packet, 0x05810000, 2, 0x20, 0xff

but may have different values.

Ron

Neo Fagin
29th January 2007, 04:49
Alright, next movie I dump (Jarhead) I'll post the results and results for a few others. I dump over a network and the whole network's saturated writing a huffyuv avi right now.

TNHitokiRi
29th January 2007, 06:52
I have

short audio packet, 0x05810000, 2, 0x20, 0xff
short audio packet, 0x07810000, 4, 0x22, 0x02

in Fearless, which has chinese and english audio

seeing as you had the same value, it seems this part of the DD+ standard? as a reference or something?

drmpeg
29th January 2007, 07:23
I have

short audio packet, 0x05810000, 2, 0x20, 0xff
short audio packet, 0x07810000, 4, 0x22, 0x02

in Fearless, which has chinese and english audio

seeing as you had the same value, it seems this part of the DD+ standard? as a reference or something?

Thanx. I know what's going on now. They are subtitle packets. The good news is that demux 0.4 will correctly demux all audio streams (at least AFAIK). The "short audio packet" message can be safely ignored.

I probably would have found this when I added subtitle demuxing, but it's always better to know ahead of time.

Ron

Pelican9
29th January 2007, 10:35
I'm lazy, so I'm waiting for demux 0.5 which can demux subtitles too. :-)

drmpeg
29th January 2007, 11:38
I'm lazy, so I'm waiting for demux 0.5 which can demux subtitles too. :-)
It's more or less ready. However, I'm not sure if it's useful, since all it does is demux the raw subtitle data.

I downloaded the DVDLogic HD-DVD demuxer as you suggested, and it does several different things with subtitles. You can demux the raw data or create bitmaps (plus a third option that I really didn't understand). The raw data has two parts, a .dat file and a .sup file.

The subtitle file created by demux matches the .sup file, but I'm not sure what the format of the .dat file is (although is must be some kind of timestamp and hold time).

So the question is, what do folks really need for subtitle files?

Ron