-IMPORTANT- This video is somewhat out of date. The basic idea is the same, however.
This is the easiest workflow, but will only work for videos that you have uploaded in YouTube. This process uses YouTube's automatic captioning feature as a starting point, then shows how to correct the mistakes.
The Bucks Media Lab highly recommends Amara for captioning videos. It will take .mp4, .flv, YouTube, Vimeo and more types of videos. It allows embedding of the caption videos whether you made it or someone else did. The videos are public, however, so restricted materials can't be used (those with copyright issues). The video shows how to make the captions and the website also provides an excellent tutorial the first time you use it.