将音频插入另一个音频文件(例如审查员哔哔声)

insert audio into another audio file (eg a censor bleep)

我需要使用 linux and/or php.

在另一个音频文件中插入一个短的哔哔声(类似于审查哔哔声)

我认为应该有一些方法可以用 ffmpeg(结合 -t、concat、map、async、adelay、itsoffset?)或 avconvmkvmerge - 但还没有发现有人这样做。也许我需要以某种方式分两个阶段完成?

例如,如果我有一个 60 秒的 mp3 并且想在 2 个地方发出 2 秒的哔哔声,则期望的结果将是:

0:00-0:15  from original
0:15-0:17  beep (overwrites the 2 secs of original)
0:17-0:40  from original
0:40-0:42  beep
0:42-0:60  from original

我有一个 2 秒的 beep.mp3,但可以使用其他东西代替 -i "sine=frequency=1000:duration=2"

您可以使用 concat 分离器。

创建文本文件,例如

file main.wav
inpoint 0
outpoint 15
file beep.wav
file main.wav
inpoint 17
outpoint 40
file beep.wav
file main.wav
inpoint 40
outpoint 42

然后

ffmpeg -f concat -i list.txt out.mp3

将哔声文件转换为与主音频具有相同的采样率和通道数。

首先,您的 beep.mp3 时间需要等于 60 秒或比您的 mp3 文件时间短一点。

然后,你可以使用ffmpeg代码-ss <start_time> -t <duration> -i <your_file>.mp3

ffmpeg -ss 00:00:00 -t 15 -i ./original.mp3 -ss 00:15:00 -t 2 -i ./beep.mp3 -ss 00:17:00 -t 23 -i ./original.mp3 -ss 00:40:00 -t 2 -i ./beep.mp3 -ss 00:42:00 -i ./original.mp3 -filter_complex '[0:0][1:0] concat=n=2:v=0:a=1[out]' -map '[out]' ./output.mp3

最后你会得到你需要的 output.mp3 文件。