This was actually something I was doing over the christmas break myself.
The steps I followed were:
First I used DVD Shrink to rip just the main titles from the DVD into a temporary directory.
Here came the issues, some of the discs had self contained episodes which were usually split into two vob files. I used
JoinVobFiles to join them into a single vob.
However, some of the discs didn't have individual episodes so episodes sometimes ran over into vob files that contained other episodes. To get around this I again used JoinVobFiles and joined them all into a vob that contained the entire series.
I used another directory to save all the joined files to (wouldn't want to stuff up and have to re-rip).
To convert all the vobs to .avi's, I used a great little freeware app called
MCEBuddy. This is an awesome little application that will convert any video file (with an extension you nominate) into an .avi container using a variety of formats. I personally use the h.264 profile as it reduces a 1.4gb vob to around 275mb.
It's all automatic so I pointed it to the directory, selected an output directory and file extension and hit go. I left it running overnight and woke to find a whole pile of freshly minted .avi files (the beauty of a quad core I suppose).
Once that was complete I moved the individual episodes into my Videos folder, but I still had to cut the episodes out of the series vobs (stupid red dwarf).
To do that I used
Ultra Video Splitter, which is unfortunately a paid product (i think it was around $9.90US), but it worked pretty well in cutting out the individual episodes from the series vob.
So, it was fairly easy to do, and most of it was automated and if you are lucky enough to have tv episodes stored individually on the dvd it's even free (and even less time consuming).
As a side note, I should mention that MCEBuddy was originally designed for DVR-MS files, a job which it does brilliantly, so you can use it on your TV recordings. It will also automatically take out ads if you ask it too (using either comskip or showanalyzer) so if you have a good ad skipping config you could try that function.