在一个图像平面上缩略显示多个图像序列。(FFMPEG)

在一个图像平面上缩略显示多个图像序列。(FFMPEG)

我之所以问这个问题,是因为我找不到与我的问题类似的内容。我想读取不同的图像序列流并将其“缩略”到新的图像流中。

从下面的示例图中,您可以看到我正在读取不同的图像序列来组成缩略图的大图像流。

仅使用 ffmpeg 命令就可以解决这个问题吗?

谢谢!

在此处输入图片描述

答案1

放置 4 个图像流的方式如下:

ffmpeg -y -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:0]pad=iw*2:ih*2[a];[a][1:0]overlay=w[x];[x][2:0]overlay=0:h[y];[y][3:0]overlay=w:h" -strict -2 output.mp4  

这不使用任何其他过滤器,而是使用 pad 来减小尺寸,然后使用覆盖过滤器将其放置在四个像素位置上。但在过滤器链中,它必须多次执行此操作,结合前两个输入的效果,然后覆盖第三个输入,然后覆盖第四个输入。

我使用了容器,但它也可以用于其他容器。大多数情况下mp4你不需要它——这里使用它是因为我的 ffmpeg 默认为 mp4 的音频编码器。 -strict -2aac

如果有没有音频这种情况很可能发生在你身上,所以你也不需要这个-strict -2选项。如果你有音频作为输入不想在输出中使用它-an,在命令中 添加参数。

或者,这是一个不错的选择,使用map选项:

ffmpeg -y -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:0]pad=iw*2:ih*2[a];[a][1:0]overlay=w[x];[x][2:0]overlay=0:h[y];[y][3:0]overlay=w:h[v]" -map '[v]' output.mp4

相关内容