FFmpeg hstack、vstack 和 pad 在最后一帧挂起

FFmpeg hstack、vstack 和 pad 在最后一帧挂起

我正在尝试创建一个非平凡的布局就像这样

我正在使用以下命令:

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从命令中删除过滤器并进行调整时,使用vstackpad运行并完成
  • 当我在 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

相关内容