图像叠加并同时应用音频(FFMPEG)

图像叠加并同时应用音频(FFMPEG)

我的目的是通过一条命令在视频的特定时间应用具有淡入淡出效果的图像叠加以及将背景音频应用于视频。视频也将限制为仅 15 秒。

目前,我可以通过 2 个命令来实现这一点,这将产生 2 个输出,我该如何将这 2 个命令合并在一起?

第一个命令

ffmpeg -i video.mp4 -loop 1 -i image.png -ss 00:00:00 -t 00:00:15 -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; [0][i]overlay=main_w/2-overlay_w/2-0+0:main_h/2-overlay_h/2-0+0:shortest=1"  incomplete.mp4

第二命令

ffmpeg -i audio.mp3 -i incomplete.mp4 -shortest finalVideo.mp4

这是我尝试将两个命令合并为一个命令,但是经过多个 mp4 视频测试后,视频不再限制于 15 秒,并且背景音频仅适用于少数视频。

ffmpeg -i video.mp4 -loop 1 -i image.png -ss 00:00:00 -t 00:00:15 -i audio.mp3 -shortest -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; [0][i]overlay=main_w/2-overlay_w/2-0+0:main_h/2-overlay_h/2-0+0:shortest=1"  finalVideo.mp4

答案1

使用

ffmpeg -ss 00:00:00 -t 00:00:15 -i video.mp4 -loop 1 -i image.png -i audio.mp3
  -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; 
                   [0][i]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:shortest=1[v]"
  -map "[v]" -map 2:a -shortest  incomplete.mp4

在 ffmpeg 中,选项位置很重要。输入前的任何选项仅适用于该输入。在您尝试的组合命令中,您在时间规范之后输入音频,因此它们仅适用于音频输入。

FFmpeg 使用映射系统来决定将哪些流包含在输出中。当未明确设置映射分配时,默认映射会从输入中选择一个音频。看起来您的一些 MP4 的音频流优先于 MP3。使用明确的分配,这种情况不会发生。

相关内容