如何使用 FFmpeg 在单个命令中 trim、裁剪和添加覆盖

How to trim, crop and add overlay in a single command using FFmpeg

我在 android 中使用 FFmpeg 进行视频编辑。我可以使用以下命令 trim、裁剪和添加叠加层:

对于trim:

command = new String[]{"-i",inputVideoFilePath,"-ss","00:00:30.0","-c","copy","-t","00:00:10.0",outputVideoFilePath};

作物:

command = new String[]{"-i",inputVideoFilePath,"-preset", "ultrafast","-filter:v","crop=400:400:0:0","-c:a","copy", outputVideoFilePath};

对于叠加层:

command = new String[]{"-i",inputVideoFilePath, "-i",overlayImagePath,"-preset", "ultrafast","-filter_complex", "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2", "-codec:a", "copy", outputVideoFilePath};

但我无法将这些命令合并为一个命令。 请帮我。

使用

command = new String[]{"-ss", "00:00:30.0", "-t", "00:00:10.0", "-i",inputVideoFilePath, 
          "-i",overlayImagePath, "-filter_complex",
          "[0]crop=400:400:0:0[a];[a][1]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2",
          "-preset", "ultrafast", "-codec:a", "copy", outputVideoFilePath};

一个filter_complex允许一个人对不同的输入进行串联或并联的多个过滤操作。