这可能是一个重复的问题
,但没有找到任何有用的答案
。
我有 2 个音频文件
和 1 个 mp4 视频文件
。想要在特定时间将2个音频文件
添加到mp4视频
。
例如:
视频文件:
input.mp4
(2 分钟视频)
音频文件:
音频文件1:
test_0:01.mp3
(15 秒音频文件)我想将此文件插入到 mp4 视频中的位置 0:01
音频文件2:
test_0:20.mp3
(15秒音频文件)我想将此文件插入到mp4视频中的0:20位置
我尝试了带有offset
的以下
命令
仅在视频文件的 0:01 位置插入 test_0:01.mp3
但是 test_0:20.mp3
未插入到 0:020
位置,此文件静音
无音频
.
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
关于ffmpeg将多个mp3文件添加到mp4视频的特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66186764/