How to make a camera that follows along a set rail path?.

Hey, I need a camera controlling method that follows the player as he progresses through the level, but it must follow along a designated rail line of sorts, and must be capable of stopping between “waypoints”, going in reverse and going into forking paths, it should also be capable of curving instead of just going on a perfectly straight line from point to point all the time.

Can anyone point me to a tool to do something like this?, I don’t think I could manage something like this by myself.

Splines might be the way to go. This seems appropriate.