Here are some of the ways to generate captions for a video.
You can generate captions through YouTube's Automatic Captioning which is absolutely free and very easy to use. The automatic captions generated can later be edited in the Video Manager.
You can use IBM's Watson and Amara. They are also free soft wares to create effective captions.
One more is the Pop-Up Archive. It is a paid service and has far more features than the above two options.