You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在不指定时基的情况下用FFmpeg为单帧程序化应用滤镜?

单个AVFrame应用FFmpeg滤镜无需指定真实时基的合规配置方式

buffer滤镜作为滤镜链的输入源,初始化时确实要求必须指定time_base参数,不过如果你的场景里无法获取真实时基,完全可以用合法的默认占位值来配置,这不是临时变通,而是符合FFmpeg规则的解决方案:

  • 直接指定通用的默认时基,比如1/90000(FFmpeg内部常用的默认时基)或者1/1,这类值都是合法的分数格式,能通过buffer滤镜的参数校验。
  • 如果使用的滤镜不涉及时间相关处理(比如缩放、格式转换、色彩调整等),这个占位时基不会影响最终的帧处理结果。

具体代码示例

将参数配置修改为:

const AVFilter *buffersrc = avfilter_get_by_name("buffer");
// ...
snprintf(args, sizeof(args),
         "video_size=%dx%d:pix_fmt=%d:time_base=1/1:pixel_aspect=1/1",
         frame->width, frame->height, frame->format);

补充说明

buffer滤镜要求time_base只是为了完成初始化阶段的参数校验,对于单帧处理场景,你还可以将输入AVFrame的pts设为0,进一步避免时间相关的潜在问题——毕竟单帧本身不存在时间序列的依赖。

内容的提问来源于stack exchange,提问作者Dan M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:52:08