Audio ffmpeg:无限数量的过滤器/交叉衰减动态播放列表

Audio ffmpeg:无限数量的过滤器/交叉衰减动态播放列表,audio,ffmpeg,filtering,playlist,cross-fade,Audio,Ffmpeg,Filtering,Playlist,Cross Fade,我想使用ffmpeg无限地播放动态播放列表。其思想是,执行一个外部命令/脚本来请求下一个文件的路径(使用文件的预计开始时间作为参数),并无限地继续播放文件 从对“”的回答中,我了解到,我需要编写一个自定义解复用器,它类似于concatdemuxer。问题产生于这样一个事实,即我想在音频文件之间交叉淡入淡出,并且从我对解复用器的理解来看,我必须将该功能实现到解复用器本身中才能实现,因为解复用器只能产生一个(或有限数目的)音频输出流,而您需要两个才能使用该流 所以我必须像这样设置过滤器图: file

我想使用ffmpeg无限地播放动态播放列表。其思想是,执行一个外部命令/脚本来请求下一个文件的路径(使用文件的预计开始时间作为参数),并无限地继续播放文件

从对“”的回答中,我了解到,我需要编写一个自定义解复用器,它类似于
concat
demuxer。问题产生于这样一个事实,即我想在音频文件之间交叉淡入淡出,并且从我对解复用器的理解来看,我必须将该功能实现到解复用器本身中才能实现,因为解复用器只能产生一个(或有限数目的)音频输出流,而您需要两个才能使用该流

所以我必须像这样设置过滤器图:

file1 --------------------------------*-->| cross | ---->more filters ---> Output
file2 -----------------*-->| cross |----->| fade  |
file3 --*-->| cross |----->| fade  |
      ... ->| fade  |
files -> | alternating |----->| alternating | ----> more filters--->
         |   demuxer*  |----->|  crossfade  |
使用无限多个交叉淡入淡出滤波器

另外,我真的希望在交叉衰落之前对音频文件进行预过滤(*,例如),这使得它变得更加复杂,“在解复用器中实现一切”的方法更糟糕

我目前的解决方案是实现一个自定义解复用器,它在两个输出流之间交替,并在内部进行预滤波,以及输入交替交叉衰减滤波器,如下所示:

file1 --------------------------------*-->| cross | ---->more filters ---> Output
file2 -----------------*-->| cross |----->| fade  |
file3 --*-->| cross |----->| fade  |
      ... ->| fade  |
files -> | alternating |----->| alternating | ----> more filters--->
         |   demuxer*  |----->|  crossfade  |
我看到这种方法的问题是,我需要将多个EOF终止文件从解复用器发送到crossfade过滤器,我不知道在使用标准ffmpeg函数(如
ff\u request\u frame
)时是否可能/允许这样做

你能告诉我这种方法是否可行,或者你对这个问题有更好的解决方案,或者有什么想法可以让这更容易