This is something of a black art, especially on Macs. On any platform, it involves OCR (optical character recognition), which is always a hit-or-miss affair.
I'm not aware of any GOOD solutions. ffmpegX can kinda-sorta do it. Go to the Filters tab, check the "VOB Subtitles" box, select "srt" from the menu next to it, and then click "extract". There are three big problems with this, though:
1. It only works with vob files, not entire DVDs. A movie will be split among multiple VOB files, so this is a pain.
2. The OCR requires constant hand-holding. This is not something you can just let work while you get a cup of coffee. It will ask you for input on every character it can't recognize (which, in my experience, is a LOT).
3. The final output sucks. Well, at least in my experience. I'm sure there are cases when it would work well. I guess the DVDs I tried had strange fonts or kerning or something.
I've never followed this process through all the way to the end. It's too tedious and the output is too poor.
A simpler option is to extract the subtitles as images, the same way they're stored on the DVD. If you just want the subtitles for playback, this is usually good enough. If you really need to manipulate the text as text, obviously it won't do. mencoder can dump the DVD subs to a file neatly, like so:
Code:
mencoder dvd://1 -dvd-device '/Volumes/your_dvd' -vobsubout ~/Desktop/subtitlefile -vobsuboutindex 0 -sid 0 -o ~/Desktop/trash_me_later -nosound -ovc frameno
The resulting .sub file can later be played with MPlayer, VLC, or QuickTime (if you have Perian installed).