我要堆叠一个 n x n 使用 ffmpeg 的网格中的视频。例如:4x4、10x10、12x12、...由于我有很多视频,ffmpeg 命令是在 python 中生成的,然后按顺序处理。
xstack filter 需要一个布局,其格式如下:
xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
对于视频很少的布局,我手动编写了 xstack 过滤器,但对于 60x60 视频,这是不合理的。给定相等的行和列的网格,如何在 python 中生成布局字符串?
最佳答案
对于完全填充的网格,您可以使用 interleave
和 tile
过滤器以大大简化过滤器图表达式。就像是...
[0:v]...[3599:v]interleave=3600,tile=60x60
警告:这假设所有输入具有相同的帧速率和相同的长度。 interleave
如果输入帧没有正确对齐,可能会非常挑剔。我不知道这条链的性能与
xstack
相比如何尽管。
关于python - python中的ffmpeg xstack布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72721317/