Vobwalker walks through a .VOB file containing DVD video, extracting lists of VOBUs to a set of chapter files. Each file begins with a VOBU that has no predecessor (i.e., does not point at a preceding VOBU) and contains the list of VOBUs found by following the successor pointers along the list. The final VOBU in each file has no successor.
The practical effect of pointing vobwalker at a .VOB file is that you wind up with a set of smaller .VOB files, each containing a chapter from the original file.
Vobwalker does not adjust pointers in the VOBUs to account for the fact that they have moved relative to each other; it simply copies them from one file to another. The resulting chapter .VOB files are, however, suitable for use by programs like dvdauthor that expect to be responsible for filling in the VOBUs.
It has been brought to my attention that vobwalker is probably splitting things at a cell boundary rather than a chapter boundary. If you desperately need chapter boundaries rather than cell boundaries, vobwalker is not quite what you're looking for.
Vobwalker is in the public domain.
Changes to make it compile properly under Linux: