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

使用FFmpeg提取指定视频帧失败的问题求助

FFmpeg提取指定视频帧失败的问题求助

嘿,我来帮你排查这个问题!你当前的FFmpeg命令没能正确筛选出目标帧,核心原因是select滤镜的表达式写法有误,另外还有个关键参数可以帮你避免多余帧输出,具体调整方案如下:

首先,修正select滤镜的条件连接方式:你用了加号+来拼接多个eq(n,X)条件,但在FFmpeg的滤镜语法里,+是算术运算符号,不是逻辑“或”的意思。正确的逻辑或应该用||运算符,这样只有当帧序号匹配指定值中的任意一个时,才会被选中。

其次,添加-vsync vfr参数,这个参数会强制FFmpeg使用可变帧率输出,只保留被select选中的帧,避免默认的帧率同步机制自动补全多余的帧。

给你修正后的完整命令:

ffmpeg -i input.mp4 -vf "select=eq(n\,1395)||eq(n\,2790)||eq(n\,4185)||eq(n\,5580)" -vsync vfr img%01d.jpg

额外的优化小提示:

  • 如果你是在Linux/macOS的bash环境下,用双引号包裹滤镜表达式的话,逗号可以不用转义,写法会更简洁:
    ffmpeg -i input.mp4 -vf "select=eq(n,1395)||eq(n,2790)||eq(n,4185)||eq(n,5580)" -vsync vfr img%01d.jpg
    
  • 观察你指定的帧序号,它们刚好是每1395帧取一次(2790-1395=1395,4185-2790=1395),如果后续需要按这个固定间隔提取帧,可以用更简洁的表达式:select=not(mod(n,1395)),这样会自动选中第0、1395、2790...帧,省去逐个写条件的麻烦。

试试这个修正后的命令,应该就能精准提取你想要的那几帧啦!

备注:内容来源于stack exchange,提问作者peterh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:38:10