我正在尝试创建一个非平凡的布局就像这样:
我正在使用以下命令:
ffmpeg -i in.mp4
-filter_complex [0:v]split=3[s0][s1][s2];
[s0][s1]hstack=inputs=2:shortest=1[s3];
[s2]pad=width=1920:x=(ow-iw)/2:y=(oh-ih)/2[s5];
[s3][s5]vstack=inputs=2:shortest=1[s6]
-map [s6] -map 0:a out.mp4
命令正在运行并挂在最后一帧。
- 原始视频尺寸:960x540
hstack
从命令中删除过滤器并进行调整时,使用vstack
并pad
运行并完成- 当我在 Windows 上终止使用该进程时
Ctrl+C
,我确实得到了所需的输出文件
答案1
它看起来像是 FFmpeg 中的一个错误(但我不确定)......
除了使用split
,我们还可以in.mp4
多次使用它作为输入:
ffmpeg -i in.mp4 -i in.mp4 -i in.mp4 -filter_complex [0:v][1:v]hstack=inputs=2:shortest=1[s3];[2:v]pad=width=1920:x=(ow-iw)/2:y=(oh-ih)/2[s5];[s3][s5]vstack=inputs=2:shortest=1[s6] -map [s6] -map 0:a out.mp4
更短的命令:
ffmpeg -i in.mp4 -an -i in.mp4 -an -i in.mp4 -filter_complex [0:v][1:v]hstack=inputs=2[s3];[2:v]pad=width=1920:x=(ow-iw)/2:y=(oh-ih)/2[s5];[s3][s5]vstack=inputs=2 out.mp4
我认为该问题与有关split=3
。
以下命令(使用split
两次)也有效:
ffmpeg -i in.mp4 -filter_complex [0:v]split[s0][tmp];[tmp]split[s1][s2];[s0][s1]hstack=inputs=2:shortest=1[s3];[s2]pad=width=1920:x=(ow-iw)/2:y=(oh-ih)/2[s5];[s3][s5]vstack=inputs=2:shortest=1[s6] -map [s6] -map 0:a out.mp4