Use gource, ffmpeg packages to do the primary work. They can be brew install
ed.
You will take a repo and use gource to generate a log file of timestamps and commits.
Then you can feed that log into gource to render a video of the timeline.
From the root of a gate
cloned repo, create a log file.
gource \
--hide dirnames,filenames \
--seconds-per-day 0.1 \
--auto-skip-seconds 1 \
--logo Vector.png \
--date-format "%x"
--title "Gate"
-1280x720 \
-o gate.txt
If you are only creating a video for one repo, the log file and rendering can be done in the same step:
gource --hide dirnames,filenames --seconds-per-day 0.1 --auto-skip-seconds 1 -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4
The gource wiki describes the many config options. Some are:
--key
--disable-bloom
--date-format "%D"
--title "My Project"
--logo logo.png
--logo-offset XxY
-
Run gource on each cloned repo and save the log file for each one:
gate.txt
,geas.txt
... -
Put all of the log files into the same folder.
-
To combine and sort all of the logs:
cat dx.txt gate.txt geas.txt gitops.txt helm-charts.txt papermill-origami.txt planar-ally.txt polymorph.txt summon-celestial.txt | sort -n > combined.txt
You could run a script to do this but I used brute force.
- Create the video from the combined logs:
gource combined.txt --hide dirnames,filenames --seconds-per-day 0.15 --auto-skip-seconds 1 --date-format "%Y-%m-%d" --logo ../Vector.png --title "Noteable 2022 Retro" --hide-root -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 combined.mp4