C 将多个采样率馈送到同一缓冲源:ffmpeg过滤器

C 将多个采样率馈送到同一缓冲源:ffmpeg过滤器,c,ffmpeg,C,Ffmpeg,我有一个PCM音频采样的远程源,它不断改变采样率。根据带宽的不同,它有时提供16Khz和48Khz。我想通过一个过滤器将它们转换成FLTP,然后再传送到音频解码器。当我这样做时,会出现错误“不支持动态更改音频帧属性。[无效参数]” 有人能建议一种方法吗 是否可以创建一个包含多个缓冲源但只有一个接收器的过滤图?我使用swr\u convert\u frame()为不同的输入采样率保留一个SwrContext*数组。我使用swr\u convert\u frame()为不同的输入采样率保留一个Swr

我有一个PCM音频采样的远程源,它不断改变采样率。根据带宽的不同,它有时提供16Khz和48Khz。我想通过一个过滤器将它们转换成FLTP,然后再传送到音频解码器。当我这样做时,会出现错误“不支持动态更改音频帧属性。[无效参数]”

有人能建议一种方法吗


是否可以创建一个包含多个缓冲源但只有一个接收器的过滤图?

我使用swr\u convert\u frame()为不同的输入采样率保留一个SwrContext*数组。

我使用swr\u convert\u frame()为不同的输入采样率保留一个SwrContext*数组。

不幸的是,此时,音频缓冲区源希望输入属性保持不变。使用ffmpeg cli时,当输入道具更改时,filtergraph将重新初始化。@Gyan我使用av_buffersrc_parameters_set()动态更改采样率。获得“尚未在FFmpeg中实现,欢迎使用补丁”。所以你是对的!不幸的是,此时音频缓冲源希望输入属性保持不变。使用ffmpeg cli时,当输入道具更改时,filtergraph将重新初始化。@Gyan我使用av_buffersrc_parameters_set()动态更改采样率。获得“尚未在FFmpeg中实现,欢迎使用补丁”。所以你是对的!