Composition on ffmpeg does not match sizes
<p>I am trying to take 3 videos and an image, and make a composition of 10 seconds roughly like this:</p>

<p><a href="https://i.stack.imgur.com/whc20.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/whc20.png" alt="enter image description here"></a></p>

<p>This is the command I got so far. (I formatted it a little, so that is more readable)</p>

<pre><code>ffmpeg
-i /home/dbugger/projects/mediabooth/public/uploads/5fa87d68edd8190351c42f02c2ebbaeea0e786fe/media0
-i /home/dbugger/projects/mediabooth/public/uploads/5fa87d68edd8190351c42f02c2ebbaeea0e786fe/media1
-i /home/dbugger/projects/mediabooth/public/uploads/5fa87d68edd8190351c42f02c2ebbaeea0e786fe/media2
-i /home/dbugger/projects/mediabooth/public/uploads/5fa87d68edd8190351c42f02c2ebbaeea0e786fe/media3
-filter_complex "
[0:v]scale='if(gt(a,512/288),-1,512)':'if(gt(a,512/288),288,-1)',setsar=1,crop=512:288[v0c];
[1:v]scale='if(gt(a,512/288),-1,512)':'if(gt(a,512/288),288,-1)',setsar=1,crop=512:288[v1c];
[2:v]scale='if(gt(a,512/288),-1,512)':'if(gt(a,512/288),288,-1)',setsar=1,crop=512:288[v2c];
[3:v]scale='if(gt(a,640/874),-1,640)':'if(gt(a,640/874),874,-1)',setsar=1,crop=640:874[p0c];
[v0c]pad=iw+0:ih+5:0:0:color=black[v0cp];
[v1c]pad=iw+0:ih+5:0:0:color=black[v1cp];
[v0cp][v1cp][v2c]vstack=inputs=3[col0];
[col0][p0c]hstack=inputs=2[videoout]
"
-map '[videoout]' -c:v libx264 -b:v 3000k -t 00:00:10.0 /home/dbugger/projects/mediabooth/public/uploads/5fa87d68edd8190351c42f02c2ebbaeea0e786fe/output.mp4
</code></pre>

<p>On the first 3 filters, I try to fill/crop the videos, to match 512x288
On the next filters crop/fill the image to 640x874
on the next 2 filtes, I add some padding to the top and middle video, of 5 pixels.</p>

<p>The total height of the left column should be <code>288*3 + 5*2 = 874</code></p>

<p>But when I run this command I get this error:</p>

<blockquote>
  <p>Input 1 height 874 does not match input 0 height 872.</p>
</blockquote>

<p>Where did those 2 pixels go? If instead of videos on the left, I use images, it works alright. Only with some videos, it seems to destroy those extra 2 pixels somehow.</p>

<p>What is going on? How could I fix it?</p>

<p><strong>UPDATE</strong></p>

<p>Full paste:</p>

<pre><code>ffmpeg version 3.0.2-1~xenial2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.1 (Ubuntu 5.3.1-14ubuntu2) 20160413
  configuration: --prefix=/usr --extra-version='1~xenial2' --libdir=/usr/lib/ffmpeg --shlibdir=/usr/lib/ffmpeg --disable-static --disable-debug --toolchain=hardened --enable-pthreads --enable-runtime-cpudetect --enable-gpl --enable-shared --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-libkvazaar --enable-libopenh264 --enable-nonfree --enable-libfdk-aac --enable-libfaac
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '/home/dbugger/projects/mediabooth/public/uploads/1199c37e0b76e2e322b6473e0c61b7a87fe4b06e/media0':
  Metadata:
    encoder         : libwebm-0.2.1.0
    creation_time   : 2015-03-08 22:30:14
  Duration: 00:00:09.98, start: 0.000000, bitrate: 2254 kb/s
    Stream #0:0(eng): Video: vp8, yuv420p, 960x720, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
Input #1, matroska,webm, from '/home/dbugger/projects/mediabooth/public/uploads/1199c37e0b76e2e322b6473e0c61b7a87fe4b06e/media1':
  Metadata:
    encoder         : libwebm-0.2.1.0
    creation_time   : 2015-03-12 16:22:27
  Duration: 00:00:09.97, start: 0.000000, bitrate: 1648 kb/s
    Stream #1:0(eng): Video: vp8, yuv420p, 960x720, SAR 1:1 DAR 4:3, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
Input #2, matroska,webm, from '/home/dbugger/projects/mediabooth/public/uploads/1199c37e0b76e2e322b6473e0c61b7a87fe4b06e/media2':
  Metadata:
    encoder         : libwebm-0.2.1.0
    creation_time   : 2015-03-11 04:14:51
  Duration: 00:00:09.98, start: 0.000000, bitrate: 2058 kb/s
    Stream #2:0(eng): Video: vp8, yuv420p, 960x720, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
[mjpeg @ 0x18d6840] Changing bps to 8
Input #3, jpeg_pipe, from '/home/dbugger/projects/mediabooth/public/uploads/1199c37e0b76e2e322b6473e0c61b7a87fe4b06e/media3':
  Duration: N/A, bitrate: N/A
    Stream #3:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1032x1032 [SAR 1:1 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
[swscaler @ 0x19d0080] deprecated pixel format used, make sure you did set range correctly
[Parsed_hstack_15 @ 0x1914f40] Input 1 height 874 does not match input 0 height 872.
[Parsed_hstack_15 @ 0x1914f40] Failed to configure output pad on Parsed_hstack_15
Error configuring complex filters.
</code></pre>