我正在用以下命令替换 FFmpeg 中的视频音频:
ffmpeg -i video.mp4 -stream_loop -1 -i audio.mp3 -map 0:v -map 1:a -c:v copy -shortest output.mp4
现在我想实现的是:
上述命令替换视频中的输入音频,但现在我想使用特定持续时间的音频并将其替换在视频中。
前任输入音频时长为 00:05:00(5 分钟),我想修剪 00:02:00(开始时间)至 00:03:00(结束时间)即 1 分钟音频并将其替换到视频中。我不想使用完整的输入音频。
全部在单个 FFmpeg 命令中(我上面提供了)
答案1
您不能将-t
/-to
与 一起使用-stream_loop
。Lazy Easy解决方案是修剪音频,然后运行命令:
ffmpeg -ss 00:02:00 -t 00:01:00 -i audio.mp3 -c copy audio-trimmed.mp3
ffmpeg -i video.mp4 -stream_loop -1 -i audio-trimmed.mp3 -map 0:v -map 1:a -c:v copy -shortest output.mp4
使用单个命令一个循环筛选:
ffmpeg -i video.mp4 -ss 00:02:00 -t 00:01:00 -i audio.mp3 -filter_complex "[1]aloop=loop=-1:size=<size>,asetpts=N/SR/TB[a]" -map 0:v -map "[a]" -shortest output.mp4
您必须手动输入<size>
要循环的最大样本数。默认值为 0。