目录
四、阶段 1:avfilter_graph_config(滤镜真正“活”的时刻)
③ 分配内部 FIFO / resample context
五、阶段 2:运行期 —— 你 push 一帧,它 pull 一帧
觉得有用,就请您帮忙点赞转发收藏吧,您的鼓励是我创作的动力,多谢看官。
由于能力水平有限,文中的错误或不严谨的地方在所难免,还请批评指正。
摘要:
很多人以为av_buffersrc_add_frame()是“调用滤镜函数”,其实 FFmpeg 音频滤镜是 声明式有向图 + push/pull 调度模型,而不是线性流水线。本文拆解滤镜完整生命周期:
① 构造期(
abuffer → volume → aformat → sink只拼图不跑数据);② 协商期(
avfilter_graph_config()时 abuffer 定契约、aformat 给候选、graph 自动算交集并插 resample);③ 运行期(你 push frame 只是塞 FIFO,filter 内部 ref 引用、攒 buffer、延迟输出,sink 才真正吐帧);
④ flush 期(不 close buffersrc 永远丢尾巴)。
重点澄清:push ≠ 立刻处理,volume 无延迟、aformat / aresample 必攒帧,所有节点默认共享 AVBuffer
订阅专栏 解锁全文
3101

被折叠的 条评论
为什么被折叠?



