如何修改FFmpeg命令为音频设置指定起始时间并合成到视频
修改FFmpeg命令实现指定音频起始时间
原命令已实现移除视频原音频并混合两段音频的功能,要给每段音频设置对应视频的起始播放时间,需借助FFmpeg的adelay滤镜为音频添加延迟(延迟时长对应视频中的起始点):
- voice1需在视频第2秒开始播放,给它添加**2000毫秒(2秒)**的延迟
- voice2需在视频第1秒开始播放,给它添加**1000毫秒(1秒)**的延迟
修改后的完整命令如下:
ffmpeg -i vid.mp4 -i voice1.mp3 -i voice2.mp3 -filter_complex "[1:a] adelay=2000|2000 [v1]; [2:a] adelay=1000|1000 [v2]; [v1] [v2] amix=inputs=2:duration=longest:dropout_transition=0" -c:v copy -an vid.mkv
关键参数解释:
[1:a] adelay=2000|2000 [v1]:对第2个输入(voice1.mp3)的音频添加2000毫秒延迟,输出标记为v1;|2000用于立体声左右声道分别设置延迟,单声道场景可简化为adelay=2000[2:a] adelay=1000|1000 [v2]:对第3个输入(voice2.mp3)的音频添加1000毫秒延迟,输出标记为v2- 后续的
amix滤镜保持原命令逻辑,将延迟后的两段音频混合 -c:v copy:直接复制视频流,避免重新编码提升处理效率-an:保留原命令的移除原视频音频的逻辑,不影响混合后新音频的输出
内容的提问来源于stack exchange,提问作者Megidd
相关产品推荐
相关产品推荐

