Using ffmpeg to combine videos side by side

note, Nov 4, 2023, on Mitja Felicijan's blog

I had a 4 webm videos (each 492x451) that I wanted to combine to be played side by side and I tried iMovie and Kdenlive and failed to do it in an easy way. I needed this for Github readme file so it also needed to be a GIF.

The following is the ffmpeg version of it.

ffmpeg -y \
  -i 01.webm \
  -i 02.webm \
  -i 03.webm \
  -i 04.webm \
  -filter_complex "\
  	[0:v] trim=duration=8, setpts=PTS-STARTPTS, scale=492x451, fps=6 [a0]; \
  	[1:v] trim=duration=8, setpts=PTS-STARTPTS, scale=492x451, fps=6 [a1]; \
  	[2:v] trim=duration=8, setpts=PTS-STARTPTS, scale=492x451, fps=6 [a2]; \
  	[3:v] trim=duration=8, setpts=PTS-STARTPTS, scale=492x451, fps=6 [a3]; \
  	[a0][a1][a2][a3] xstack=inputs=4:layout=0_0|w0_0|w0+w1_0|w0+w1+w2_0, scale=1000:-1 [v]" \
  -map "[v]" \
  -crf 23 \
  -preset veryfast \
  trigraphs.gif
Result

Other notes

DateTitle
Lua performance in different environments
Use option key as meta in Alacritty under macOS
Sane defaults for tmux with more visible statusbar
Install Plan9port on Linuxplan9
Uninstall Ollama from a Linux box
Extending dte editor
Easy measure time took in a bash script
Extract lines from a file with sed
Drawing Pixels in Plan9plan9
Compile drawterm on Fedora 38plan9
Execute not blocking async shell command in C#
Aerial photography of algae spotted on river Sava
Run 9front in Qemuplan9
Make B/W SVG charts with matplotlib
Making cgit look nicer