Here's a rough outline of the steps involved in the way I did it if that's any help.
1) Rip with DVD Decrypter in IFO mode and specify which streams to demux.
2) Use Cuttermaran to cut out any studio/distributor logos and other unnecessary footage. (If you don't have to do this then skip this step and just rip the VOBs with Decrypter and open the VOBs with DGIndex.)
2) Open the MP2 files with DGIndex to create a D2V file.
3) Use ChapterXtractor to extract the chapter information.
4) Use SubRip to extract the subtitles. (You could also use Subtitle Workshop instead.)
5) Use BeSweet and Oagmachine to transcode the AC3 files into OGG files. (You could also use HeadAC3he do to this instead.)
6) Create a AviSynth script which will use DGDecode.dll to read the D2V file and decode the MPEG from the VOBs and then have AviSynth frameserve this decoded output into VirtualDubMod. The script should also utilise any filters for resizing, cropping and deinterlacing the video where necessary.
7) Open the AviSynth script with VirtualDubMod. VirtualDubMod can then be used to encode the video stream using the desired codec and mux the audio, video, subtitles and chapter information into a container (AVI, OGM or Matroska).
DGMPGDec (contains DGIndex and DGDecode)
BeSweet + Oagmachine
DirectShow Ogg Vorbis Filter