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

标签 ffmpeg mp3 mp4

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

我有 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/

相关文章:

ffmpeg - 添加水印,设置比特率和缩放视频

html - 基于Gecko的(Firefox/Cometbird)浏览器中的MP3音频标签

Android:如何录制 mp3 广播(音频)流

android - Phonegap 媒体记录 mp3 文件损坏

python - 使用 discord.py 时 ffmpeg 失败

ffmpeg - wowza 一个播放列表中的多个文件

ffmpeg - Linux 上的专有编解码器。什么是合法的?

loops - mp4 Vj 动画视频滞后于高分辨率视频

ffmpeg - 如何在不对视频应用图像蒙版的情况下创建圆形视频(视频顶部的透明区域)效果

java - 使用 xuggler 从图片创建 mp4 和 java mp3