Каким образом может я присоединяться к этим четырем видео рядом (с полем на 10 пкс между левой и правой стороной. Никакое поле между вершиной и нижней частью)?
top_left.mp4
top_right.mp4
bottom_left.mp4
bottom_right.mp4
Kdenlive таким образом багги и свел меня с ума. Любой метод командной строки приветствуется.
Существует несколько методов, чтобы сделать это, но использующий hstack, vstack, и клавиатура является, вероятно, самой легкой:
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v][1:v]vstack,pad=iw+10:ih[l]; \
[2:v][3:v]vstack[r]; \
[l][r]hstack" \
output.mp4
Исходные данные должны быть той же шириной, высотой и "форматом пикселя". Если они не использование, масштаб и/или формат фильтруют для подготовки потоков к *фильтры стека.
Использовать *stack=shortest=1
если Вы хотите, чтобы вывод фильтра завершился, когда самый короткий вход завершается.
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v]pad=iw:ih+3[tl]; \
[tl][1:v]vstack,pad=iw+10:ih[l]; \
[2:v]pad=iw:ih+3[tr]; \
[tr][3:v]vstack[r]; \
[l][r]hstack" \
output.mp4
Появиться фильтр объединит все каналы ввода, затем -ac 2
сократит их до стерео:
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v][1:v]vstack,pad=iw+10:ih[l]; \
[2:v][3:v]vstack[r]; \
[l][r]hstack[v]; \
[0:a][1:a][2:a][3:a]amerge=inputs=4[a]"
-map "[v]" -map "[a]" -ac 2 output.mp4