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

ffmpeg_kit_flutter添加视频水印返回码1,需获取成功返回码

解决ffmpeg_kit_flutter加水印返回码1的问题

返回码1意味着FFmpeg命令执行失败,以下是几个常见排查方向和修复方案:

  • 资产路径无法直接访问
    Flutter的assets/目录是应用打包后的内部资源,ffmpeg_kit_flutter无法直接读取这个路径。需要先将资产文件复制到设备本地可读写目录(比如临时缓存目录),再用本地路径作为输入源。
    示例逻辑:通过rootBundle读取资产文件,写入到getTemporaryDirectory()生成的本地文件中,再替换命令里的路径。

  • 命令语法存在疏漏
    原命令缺少流映射参数,且filter_complex的写法可以更明确:
    修正后的命令模板:

    -i /本地路径/1.mp4 -i /本地路径/poster_Watermark.png -filter_complex "[0:v][1:v]overlay=10:10[v]" -map "[v]" -map 0:a -codec:a copy $outPath
    

    其中[0:v][1:v]明确指定用第一个输入的视频流和第二个输入的图片流做叠加,-map参数告诉FFmpeg要输出处理后的视频流和原音频流。

  • 输出路径无写入权限
    确保$outPath指向应用有权限写入的目录,比如Android的getExternalFilesDir()、iOS的应用沙盒目录,避免直接写入公共存储(需要额外权限申请)。

  • 查看详细错误日志定位问题
    不要只依赖返回码,获取FFmpeg的错误输出能精准找到问题:

    FFmpegKit.execute(yourCommand).then((session) async {
      final returnCode = await session.getReturnCode();
      if (!ReturnCode.isSuccess(returnCode)) {
        final errorLogs = await session.getAllLogsAsString();
        print(errorLogs); // 打印错误日志,比如文件不存在、滤镜参数错误等
      }
    });
    

内容的提问来源于stack exchange,提问作者DHRUV PATEL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:10:07