Command-line tool to split video at timepoints? I have an hour-long video that I want to split into individual clips at arbitrary timepoints. I could do this by hand in iMovie, or even borrow a machine with Final Cut, but there are upwards of thirty separate clips, so doing it manually strikes me as time-consuming and error-prone.

(It's a sequence of recordings for a language textbook, but it's all one file, and it's unwieldy not to be able to separately view, repeat, etc. the chapter-by-chapter clips. Currently it's an H.264 MPEG-4 but I'm not adverse to converting it.)

I know all the timepoints, and I'd like to feed a list of them to something, or build a script around the list, to produce the split clips without further human intervention. Linux would be okay but Mac OS would be ideal; Windows isn't really an option.

Suggestions?
ffmpeg is the obvious choice. 

ffmpeg -i x.mov -ss 00:05:00 -t 00:01:00 y.mov


will split out a segment of the movie 1 minute long from minute 5.

I've not had much luck with lip-sync when doing this. I think there a problems with both decoding and re-encoding the GOP structure and the equivalent AAC or MPEG1 audio structures; but the underlying issue must be that the audio and video frame rates are not linked, e.g. 48 kHz for the audio and 29.97 fps.