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

使用ffmpeg_kit_flutter在iOS添加drawtext滤镜报错:No such filter: 'drawtext'

解决ffmpeg_kit_flutter中drawtext滤镜提示“No such filter: 'drawtext'”的问题

问题描述

使用ffmpeg_kit_flutter为视频添加drawtext滤镜时,出现错误提示:No such filter: 'drawtext'。本地直接执行以下FFmpeg命令可正常运行:

ffmpeg -y -i input.mp4 -filter_complex '[0]scale=540:-1[s];[s]drawtext=text='your_text_here':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2' output.mp4

用户的Flutter代码示例:

/// 给视频添加文本
Future<void> createVideoWithText() async {
  final file = File('${(await getTemporaryDirectory()).path}/output.mp4');
  String outPut = file.path;

  String command = "-y -i $inputFilePath -filter_complex '[0]scale=540:-1[s];[s]drawtext=text='MY_TEXT':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2' $outPut";

  FFmpegKit.executeAsync(
    command,
    (session) async {
      final returnCode = await session.getReturnCode();

      if (ReturnCode.isSuccess(returnCode)) {
        print('视频添加文本成功');
      } else {
        print('视频添加文本失败');
      }
    },
  );
}

核心原因

ffmpeg_kit_flutter默认提供的min版本包不包含drawtext这类高级滤镜,该滤镜属于FFmpeg的文本处理组件,仅在full版本包中提供。

解决方案

1. 替换为full版本依赖

在pubspec.yaml中,将原有的ffmpeg_kit_flutter依赖替换为完整版本:

dependencies:
  ffmpeg_kit_flutter_full: ^5.1.0 # 请使用最新版本号

执行flutter pub get更新依赖。

2. 修正命令中的引号冲突

代码中命令的文本参数存在引号解析问题,text='MY_TEXT'的单引号会与外层双引号冲突,导致FFmpeg无法正确解析滤镜参数。修改命令为:

// 使用转义双引号包裹文本内容
String command = "-y -i $inputFilePath -filter_complex '[0]scale=540:-1[s];[s]drawtext=text=\"MY_TEXT\":fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2' $outPut";

或者改用单引号包裹整个命令,内部用单引号:

String command = '-y -i $inputFilePath -filter_complex "[0]scale=540:-1[s];[s]drawtext=text=\'MY_TEXT\':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2" $outPut';

3. 清理缓存并重新构建

执行以下命令确保依赖生效:

flutter clean
flutter run

验证

完成上述步骤后,重新调用createVideoWithText方法,即可正常为视频添加文本水印。

内容的提问来源于stack exchange,提问作者Patel Milan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:25:53