ffmpeg может делать все что угодно:D
Предполагая, что оба видео имеют одинаковое разрешение (input1.mp4 будет в конце слева, input2.mp4 справа, это будет аудио из input1.mp4):
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw*2:ih:0:0[left];[left][1:v]overlay=W/2:0[out]' \
-map [out] -map 0:a -c:a copy \
-c:v libx264 -crf 23 -preset veryfast output.mp4
Сначала пэд- фильтр берет видео из input1.mp4, [0:v]
и удваивает его ширину (добавляя дополнительную нагрузку черного цвета справа), создавая вывод с именем [left]
. Затем оверлейный фильтр помещает видео из input2.mp4, [1:v]
в черную область справа от [left]
, создавая вывод с именем [out]
. -map [out] -map 0:a
указывает ffmpeg использовать [out] и аудио из input1.mp4 в конечном кодировании. Все остальное - стандартные параметры кодирования.
Чтобы добиться эффекта, подобного тому, который показан в видео, связанном с вопросом (таким образом, одно меньшее видео слева в верхнем углу, большее видео справа), вам нужно знать разрешение меньшего видео. Допустим, он имеет ширину 320:
ffmpeg -i input-large.mp4 -i input-small.mp4 -filter_complex \
'[0:v]pad=iw+320:ih:320:0[right];[right][1:v]overlay=0:0[out]' \
-map [out] -map 0:a -c:a copy \
-c:v libx264 -crf 23 -preset veryfast output.mp4