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

时间:2017-12-28 18:04:04

标签: audio ffmpeg avconv

我需要使用linux和/或php在另一个音频文件中插入一个短蜂鸣声(类似于审查哔声)。

我认为应该有一些方法可以使用ffmpeg(某些组合-t,concat,map,async,adelay,itsoffset?)或avconv或{{1 - 但是没有找到任何人这样做。也许我需要分两个阶段来完成它?

例如,如果我有一个60秒的mp3并希望在2个位置发出2秒钟的声音,那么所需的结果将是:

mkvmerge

我有2秒beep.mp3,但可以使用其他内容而不是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 个答案:

答案 0 :(得分:2)

您可以使用concat demuxer。

创建一个文本文件,例如

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文件转换为与主音频具有相同的采样率和通道数。

答案 1 :(得分:0)

首先,您需要使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文件。