« A gift for the Star Trek fan in your life: TREXELS | Main | Interlude: Sprawl II (Mountains Beyond Mountains) (Unstaged) by Arcade Fire »
Saturday
Mar192011

Rocking out with Source Control: Gource, TFS, and FFMPEG

 

In preparation for a major update of one of my open source CodePlex projects,  I enabled created a video of over two years of my checkin-history.

Video is here. http://vimeo.com/21240328

 

BASIC PROCESS

First, I used TFSConverter by Takashi Yoshida (I had to modify the code very slightly to get it to run) to extract the version history. The output was a 4MB log file that Gource can process.

Second, I used Gource to create a HUGE (7GB) PPM file (which is essentially a series of static images)

Third, I used FFMPEG to create a 64MB AVI file that I uploaded to vimeo.

 

MUSIC

The only reason this video is even worth watching is for the music in it that I found on CCMixter. The artist is Jay Sinkie and the song is "Remember The Name (Run Beat Remix) (Instrumental_Version)"

 

POWERSHELL SOURCE CODE

Here is the script I built. This should make it clear exactly what I did. I don't claim to be an FFMPEG expert. I'm sure if you investigate it more you can produce superior output.

$tfsurl = "https://tfs.codeplex.com/tfs/tfs01"
$projecturl = "$/VisioAutomation"
$tree = "VisioAutomation_2_DEV"

$logfile = "All.log" #this is the default output filename of tfsconverter
$bkimage = "d:\bk.png"
$framerate = "30"
$ppmfilename = "d:\gource.ppm"
$outputfilename = "d:\gource.avi"
$audiotrack = "d:\audio.mp3"

takashiyoshida-TFSConverter-c4b492c\tfsconverter\bin\debug\TfsConverter.exe $tfsurl $projecturl $tree

gource-0.32.win32\gource.exe $logfile -s 0.01 -1280x720 -transparent -date-format "%D" -hide date -hide progress -hide mouse -background-colour 550033 -font-size 45 --multi-sampling -background-image $bkimage -r $framerate  -o $ppmfilename

ffmpeg-18639\ffmpeg -y -b 3000K -r $framerate  -f image2pipe -vcodec ppm -i $ppmfilename -i $audiotrack -shortest -vcodec libx264  $outputfilename

 

DOWNLOAD EVERYTHING YOU NEED HERE

I've put up a ZIP with all the binaries and the script together. This will save you the time of having to locate all the needed components.

 

download the ZIP file

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>