我之所以问这个问题,是因为我找不到与我的问题类似的内容。我想读取不同的图像序列流并将其“缩略”到新的图像流中。
从下面的示例图中,您可以看到我正在读取不同的图像序列来组成缩略图的大图像流。
仅使用 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 -2
aac
如果有没有音频这种情况很可能发生在你身上,所以你也不需要这个-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