When I got the DVD recording of the first production of my musical, Drawin' on the Walls, I was somewhat (meaning extremely) miffed to discover that not only was the video grainy, but the audio was difficult to make out. So I took it upon myself to add subtitles to the movie myself without buying any software, a process that turned out to be pretty awful. However, I learned some lessons, so if you're determined to do the same thing, you're welcome to take what I learned. Or if you know a better way, share in the comments below!
1. Convert your movie to an AVI. This is because the freeware programs I found suck at using most modern video codecs. For some reason, AVI seems to work better (or at all). You might need a different conversion tool depending on what you start with.
2. Download Subtitle Workshop, a free program that makes adding subtitles frustratingly almost convenient.
3. Download AutoGK (Gordian Knot), the program that will actually merge your subtitles file (a text file) with your AVI file.
4. I found it much easier to type my subtitles into a text file using a text editor (Notepad++ is my favorite), rather than typing them in with Subtitle Workshop. I put one subtitle on each line, and added a symbol (***) for any blank time I wanted. Because I was working from a script, I could get away with a lot of copy and paste, although I did have to go through the movie and make edits where the actors deviated from the script.
5. I wrote a little Python script to convert my raw text file into a subtitle file (.srt), with all the times set to 0->0. You can use my script if you like - you can download it by clicking here. You'll need to install Python, edit the script to point to your raw text file, drop the script in the same directory as your raw text file, and then run it by double-clicking it.
6. Make a copy of your new srt file (in case something goes horribly wrong, which is likely), and open up Subtitle Workshop.
7. Load your raw AVI file by selecting "Open..." from the "Movie" drop down menu.
8. Load your new srt file by selecting "Load subtitle..." from the "File" menu. You should see all your subtitles in the big white panel at the bottom, each with a start and end time of zero.
9. Selecting the first subtitle of the movie. Click the "Play" button to start the AVI file playing in the top panel. Hold down the ALT key with one finger, and whenever you get to the end of the first subtitle, press the V key with another finger. This will set the end of the currently selected subtitle to the current time of the movie's playhead. It will also automatically select the next subtitle in the list, and set its start time to slightly after the end time of the previous subtitle. In this way, you can use exactly two fingers to time the subtitles for your entire movie - provided you don't mess up. (If you do mess up, you can always pause and push the Rewind button a few times to backup.)
10. Once your subtitles are timed, go through and delete all your blank space subtitles (e.g., "***") by selecting them and pushing the delete key.
11. Save your newly timed file in the "SubRip" format (*.srt).
12. Open AutoGK. (It may already be open - it has a tendency to close its own window for no apparent reason. It can be opened using an icon in your Notifications Bar.)
13. Load your raw AVI movie into the "Input File" field at the top.
14. Push Ctrl+F8 to expose the subtitle field (why...?)
15. Load your timed srt file in the newly exposed "External Subs" field.
16. Supply the desired name of your output movie file.
17. Push the "Add Job" button.
18. Push the "Start" button.
19. Wait a very very very long time. It will look like nothing is happening most of the time. Just wait. It will finish.
20. Enjoy your newly subtitled AVI!