Flutter 使用 FFmpeg 传入 filter 参数时报 option not found 错误如何解决
问题原因
你报错的核心原因是 FFmpeg 执行时要求每个参数是独立的数组项,你把所有参数拼接成一个字符串传入,FFmpeg 会把整个字符串识别为单个无效参数,自然找不到对应的选项。
解决方法
把拼接的整段参数字符串拆分成独立的数组元素即可,修改后的代码如下:
return _ffmpeg.renderHelper( args: [ '-i', src, '-filter_complex', '[0:v]crop=200:200:60:30,avgblur=10[fg];[0:v][fg]overlay=60:30[v]', '-map', '[v]', '-map', '0:a', '-c:v', 'libx264', '-c:a', 'copy', '-movflags', '+faststart', output ], onStats: onStats, onError: onError, onAbort: onAbort );
额外注意点
- 不需要给
filter_complex的参数额外加引号,因为拆分后每个数组项本身就是独立参数,引号是命令行下用来标识这是一整段参数用的,代码里传数组不需要 - 输入输出路径如果有空格也不需要额外处理,独立数组项会自动识别完整路径
内容的提问来源于stack exchange,提问作者lazydevpro
相关产品推荐
相关产品推荐

