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

Flutter使用flutter_ffmpeg合成音视频报No such filter: '"scale'错误如何解决

flutter_ffmpeg 图片音频合并报错 No such filter: '"scale' 解决方案

报错根因

Flutter FFmpeg - [AVFilterGraph @ 0x88f4b300] No such filter: '"scale'

该报错和FFmpeg版本无关,核心原因是FFmpeg解析滤镜参数时,将参数中多余的双引号识别为了滤镜名的一部分,因此找不到名为"scale的滤镜,无需更换min-gpl/full-gpl版本。

排查步骤

  • 执行命令前先打印executeWithArguments()传入的完整参数数组,逐元素检查滤镜类参数(-vf/-filter_complex对应的值)首尾是否带有多余的"、转义符\、空格等无效字符
  • 确认没有给滤镜参数额外包裹引号:executeWithArguments()接收拆分后的独立参数数组,单个参数不需要加引号包裹,加引号反而会把引号变成参数内容的一部分
  • 确认完整的滤镜链没有被拆成多个数组元素,包含逗号、分号的复杂滤镜需要作为同一个字符串放入参数数组

正确实现示例

import 'package:flutter_ffmpeg/flutter_ffmpeg.dart';

final FlutterFFmpeg _flutterFFmpeg = FlutterFFmpeg();

List<String> ffmpegArgs = [
  '-loop', '1',
  '-i', '/storage/emulated/0/input_image.jpg', // 替换为你的图片路径
  '-i', '/storage/emulated/0/input_audio.mp3', // 替换为你的音频路径
  '-c:v', 'libx264',
  '-tune', 'stillimage',
  '-c:a', 'aac',
  '-b:a', '192k',
  '-pix_fmt', 'yuv420p',
  // 滤镜参数直接传内容,无需加引号
  '-vf', 'scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2',
  '-shortest',
  '/storage/emulated/0/output_video.mp4' // 替换为你的输出路径
];

// 打印参数确认格式
print(ffmpegArgs);
// 执行命令
_flutterFFmpeg.executeWithArguments(ffmpegArgs).then((code) {
  print("执行结果码:$code");
});

内容的提问来源于stack exchange,提问作者Aryan Shandilya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:42:04