When it comes to repetitive tasks, I tend to be a lazy person. And since I'm a developer, I try to make these tasks as easy as possible. My very first timelapses were automatically created by Justin.tv, but I had no control over the music or the resulting length, nor could I add anything. Additionally, it always took a while until the timelapses were generated. Later I created all timelapses myself, but that involved a lot of manual work, as I had to calculate the length of the resulting timelapse to match the audio length, set all the encoder settings and so on. Additionally as of my youngest screencasts, I also had to manually add the splash screen to it.
Yesterday I finally decided that it's time to automate the entire tool chain. I ended up with a single bash script, which you can download here: gist.github.com/DASPRiD/100061…
I assume that one could possibly port it to Windows as BAT file, or add some kind of GUI to it with Zenity, but I leave that as exercise to the reader. Usage of the script itself is pretty simple, you'd call it like this:
./timelapse.sh splash.png recording.mp4 music.mp3 timelapse.mp4
The splash screen will by default last for 5 seconds, and the recording will automatically compressed to exactly match the length of the background music. The encoder settings are optimized for 1080p/1440p YouTube uploads, so if you use other resolutions, you may want to alter the bitrate.