使用 FFmpeg 在视频中的特定时间添加 3 秒声音

使用 FFmpeg 在视频中的特定时间添加 3 秒声音

我需要一些帮助,以便使用 FFMPEG 为我的 1.10 分钟视频添加 3 秒的声音。我想在特定时间添加声音,例如视频的第 20 秒。重要的是视频的持续时间和质量在整个过程中保持不变。您能通过提供命令来帮助我完成此操作吗?我尝试了以下命令。

音频文件和视频文件之间可能存在编解码器差异、频率差异等。

ffmpeg -i input_video.mp4 -i input_audio.mp3 -filter_complex "[0:a]volume=1[a1];[1:a]volume=1[a2];[a1]adelay=20000|20000[a3];[a3][a2]amix=inputs=2[a]" -map 0:v -map "[a]" -c:v copy output_video.mp4


ffmpeg -i input_video.mp4 -i input_audio.mp3 -filter_complex "[0:a]volume=1[a1];[1:a]volume=1[a2];[a1]atrim=0:10[a4];[a1]atrim=10:100[a5];[a2]atrim=0:3[a6];[a4][a6][a5]concat=n=3:v=0:a=1[a]" -map 0:v -map "[a]" -c:v copy output_video.mp4

答案1

您的第一个命令几乎完成了。除了您将延迟应用于主音频。

ffmpeg -i input_video.mp4 -i input_audio.mp3 -filter_complex "[1:a]adelay=20000|20000[a1];[0:a][a1]amix=inputs=2:normalize=0:duration=first[a]" -map 0:v -map "[a]" -c:v copy output_video.mp4

确保 ffmpeg 版本是 4.4 或更新版本。

相关内容