我正在尝试使用ffmpeg库获取两个FLAC文件,并在给定的位置将文件A 中的音频替换为文件B 中的音频时间戳。
例如,如果文件B 要在00:02播放并且持续一秒钟,则播放输出将是(00:00-0:01) File A Audio -> (00:02-0:03) File B Audio -> (00:04-...) File A Audio
为此,我尝试了以下方法
ffmpeg -y -i original.flac -i replacement.flac -acodec copy -ss 2 -to 3 -write_xing 0 result.flac
但这只会在指定的时间戳之间产生原始音频。
在ffmpeg中有什么方法可以实现这一目标吗?
答案 0 :(得分:1)
执行此操作的典型方法是concat多路分配器,但是在输出中带有持续时间标头的FLAC提取存在问题,因此可以使用
ffmpeg -y -i original.flac -i replacement.flac \
-filter_complex "[0]atrim=0:2[Apre];[0]atrim=5,asetpts=PTS-STARTPTS[Apost];\
[Apre][1][Apost]concat=n=3:v=0:a=1" out.flac
2
是插入点(以秒为单位),5
是插入点+ B的持续时间。