我想连接并循环播放 3 个 MP3 文件。
grammaraudio1.mp3 grammaraudio2.mp3 grammarsudio3.mp3
输出文件必须循环播放第一个 MP3 文件五次,然后循环播放第二个 MP3 文件五次,等等。我可以使用 ffmpeg 来做到这一点吗?
我希望曲目的第二部分包含相同的 MP3 文件,但只循环 3 次。然后第三部分可以循环每个文件一次或两次。该命令必须输出单个 MP3 文件。
示例输出,其中x#
是循环次数:
GA1.mp3 (x5) GA2.mp3 (x5) GA3.mp3 (x5) GA1.mp3 (x3) GA2.mp3 (x3) GA3.mp3 (x3) GA1.mp3 (x2) GA2.mp3 (x2) GA3.mp3 (x2)
答案1
假设 MP3 具有相同的采样率和通道数,使用
ffmpeg -f lavfi -i amovie=grammaraudio1.mp3:loop=5,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio2.mp3:loop=5,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio3.mp3:loop=5,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio1.mp3:loop=3,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio2.mp3:loop=3,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio3.mp3:loop=3,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio1.mp3:loop=2,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio2.mp3:loop=2,asetpts=N/SR/TB
-f lavfi -i amovie=grammaraudio3.mp3:loop=2,asetpts=N/SR/TB
-filter_complex "[0][1][2][3][4][5][6][7][8]concat=n=9:v=0:a=1" out.mp3
单一命令,无中间文件。