仅限视频

仅限视频

我怎样才能将这四个视频并排拼接起来(左右两侧之间有 10px 的边距,上下之间没有边距)?

  • 左上角.mp4

  • 右上角.mp4

  • 左下.mp4

  • 右下角.mp4

Kdenlive 漏洞百出,让我抓狂。欢迎使用任何命令行方法。

答案1

仅限视频

左右之间有 10px 边框

在此处输入图片描述

有几种方法可以做到这一点,但使用堆栈虚拟栈, 和软垫可能是最简单的:

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 过滤器准备流。

  • *stack=shortest=1如果您希望过滤器输出在最短输入终止时终止,则使用。

左右之间有 10px 边框,上下之间有 3px 边框

在此处输入图片描述

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
  • 使用 amerge,合并后的音频将仅与最短输入一样长。如果这是个问题,那么使用混合物

相关内容