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
Edsger W. Dijkstra Manuscripts ebook
10/GUI 10 Finger Multitouch User Interface
Aerial photography of algae spotted on river Sava
#cat-v on weechat configuration
Online radio streaming with MPV from terminal
Calling assembly functions from Cc
Embedding resources into binary with Cc
Compile drawterm on Fedora 38plan9
Extract lines from a file with sed
Run 9front in Qemuplan9
Change permissions of matching files recursively
My brand new Plan9/9front desktopplan9
Cache busting in Hugo
Convert all MKV files into other formats
Set color temperature of displays on i3