我需要使用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
答案 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文件。