ffmpeg将多个mp3文件添加到mp4视频的特定位置

ffmpeg将多个mp3文件添加到mp4视频的特定位置,ffmpeg,mp3,mp4,Ffmpeg,Mp3,Mp4,这可能是一个重复的问题,但没有找到任何有用的答案 我有2个音频文件和1个mp4视频文件。要在特定时间将2个音频文件添加到mp4视频 例如: 视频文件: input.mp4(2分钟视频) 音频文件: 音频文件1: 测试\u 0:01.mp3(15秒音频文件)我想在mp4视频的0:01位置插入此文件 音频文件2: 测试\u 0:20.mp3(15秒音频文件)我想在mp4视频的0:20位置插入此文件 我用offset 它只在视频文件的0:01位置插入test_0:01.mp3 但是测试\u

这可能是一个重复的问题,但没有找到任何有用的答案

我有
2个音频文件
1个mp4视频文件
。要在特定时间将
2个音频文件
添加到
mp4视频

例如:

视频文件:

  • input.mp4
    (2分钟视频)
音频文件:

音频文件1:

  • 测试\u 0:01.mp3
    (15秒音频文件)我想在mp4视频的0:01位置插入此文件
音频文件2:

  • 测试\u 0:20.mp3
    (15秒音频文件)我想在mp4视频的0:20位置插入此文件
我用
offset

它只在视频文件的0:01位置插入
test_0:01.mp3

但是
测试\u 0:20。对于此文件
无音频
,在
0:020
位置未插入mp3

ffmpeg -i input.mp4 -itsoffset 01 -i test_0:01.mp3  -itsoffset 20 -i test_0:20.mp3 -c:v copy -map 0:v:0 -map 1:a -map 2:a -c:a aac -b:a 192k output.mp4

任何帮助都将不胜感激

您的命令在MP4文件中创建两个音频曲目。如果您在视频播放器中查看,您可以在两个音频曲目中进行选择(通常用于选择不同的音频语言)

为什么? 这是因为每个
-map
参数都会创建一个新流。在您的示例中,一个视频包含两个音频曲目

解决方案 改用音频过滤器
amix
。也可使用过滤器
adelay
对同一过滤器链中的延迟进行过滤,以获得最佳结果

ffmpeg -i input.mp4 -i test_0:01.mp3 -i test_0:20.mp3 -filter_complex "[1:a]adelay=1s:all=1[a1];[2:a]adelay=20s:all=1[a2];[a1][a2]amix=inputs=2[amixout]" -map 0:v:0 -map "[amixout]" -c:v copy -c:a aac -b:a 192k output.mp4