如何在一个命令行中使用输出进行另一个操作?

如何在一个命令行中使用输出进行另一个操作?

例如我有这个命令:

ffmpeg -loop 1 -i image.jpg -i input.mp3 -ss 00:08:02.00 -t 137 -vf scale=nhd -r 1 -c:v libx264 -c:a aac -shortest output.mp4

假设要获取一个 mp3 文件和一张图片并将其合并为一个视频文件 mp4。现在我如何使用以下命令添加水印,例如:

ffmpeg -i input.mp4 -i watermark.jpg -filter_complex overlay=main_w-overlay_w-5:main_h-overlay_h-5 output.mp4

但是所有这些操作都在一个命令中完成,而不是重新编码两次或等待一个命令完成后再执行另一个命令。

谢谢!

答案1

使用

ffmpeg -loop 1 -i image.jpg -i watermark.jpg -ss 00:08:02.00 -t 137 -i input.mp3 -filter_complex [0]scale=nhd,setsar=1[v];[v][1]overlay=W-w-5:H-h-5 -r 1 -c:v libx264 -c:a aac -shortest -fflags +shortest output.mp4

相关内容