使用FFmpeg生成WEBP格式视频缩略图时遇滤镜报错的解决求助
使用FFmpeg生成WEBP格式视频缩略图时遇滤镜报错的解决求助
看起来你遇到的是命令解析导致的滤镜识别错误,我来帮你梳理下问题和解决办法:
首先看错误提示No such filter: '5)',这说明你的滤镜链被shell错误拆分了——原本完整的滤镜规则被拆成了零散部分,最后把5)当成了一个不存在的滤镜名称,自然会报错。
问题根源在引号和特殊字符的处理上。你提到旧版本中转义逗号能工作,但新版本的shell或FFmpeg对命令解析更严格了,这里给你两个稳妥的修正方案:
方案1:用单引号包裹完整滤镜链
单引号会让shell完全不解析内部的逗号、括号等特殊字符,能保证滤镜链完整传递给FFmpeg,命令如下:
ffmpeg -i /269.mp4 -c:v libwebp -vsync vfr -vf 'select=isnan(prev_selected_t)+gte(t-prev_selected_t,5),scale=160:90,tile=5x5' -qscale:v 3 c_thumb%01d.webp
方案2:正确使用双引号(无需转义逗号)
如果习惯用双引号,只要确保引号完整闭合,内部的逗号不需要额外转义(双引号内的逗号会被FFmpeg识别为滤镜链的分隔符),命令如下:
ffmpeg -i /269.mp4 -c:v libwebp -vsync vfr -vf "select=isnan(prev_selected_t)+gte(t-prev_selected_t,5),scale=160:90,tile=5x5" -qscale:v 3 c_thumb%01d.webp
另外你之前命令里用的"是HTML转义后的双引号,如果是在终端直接执行,一定要换成真实的双引号,这也是可能触发错误的原因之一。
备注:内容来源于stack exchange,提问作者Дмитрий
相关产品推荐
相关产品推荐

