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

使用FFmpegKit将视频转MP3失败,返回码1求助

排查FFmpegKit转MP3失败(返回码1)的方法

先获取详细错误日志

当前代码仅打印返回码,无法定位具体问题,先修改代码获取完整执行日志:

try {
  final session = await FFmpegKit.execute('-i $videoFilePath -vn -ar 44100 -ac 2 -b:a 192k -f mp3 $audioFilePath');

  final returnCode = await session.getReturnCode();
  // 添加日志打印
  final fullLog = await session.getAllLogsAsString();
  print('FFmpeg执行日志: $fullLog');

  if (ReturnCode.isSuccess(returnCode)) {
    print('视频转MP3成功!');
  } else {
    print('视频转MP3失败,返回码: $returnCode');
  }
} catch (e) {
  print('转换过程出错: $e');
}

常见问题及解决方法

  • 路径含特殊字符导致解析失败:你的输入文件路径包含大量特殊字符(连字符、点号等),FFmpeg可能无法正确解析。给路径加双引号包裹:
    final session = await FFmpegKit.execute('-i "$videoFilePath" -vn -ar 44100 -ac 2 -b:a 192k -f mp3 "$audioFilePath"');
    
  • 输入文件不存在或无读取权限:检查$videoFilePath对应的文件是否真实存在,模拟器tmp目录的文件可能被系统自动清理,确认路径有效性;同时确保App拥有读取tmp目录的权限。
  • 输出目录无写入权限:验证Documents目录是否允许写入,iOS端需确认App已开启文件访问权限,或更换为明确有权限的输出路径。
  • FFmpegKit缺少MP3编码库:部分FFmpegKit默认版本未包含LAME编码库(MP3格式依赖),需替换为完整版本依赖,修改pubspec.yaml:
    dependencies:
      ffmpeg_kit_flutter_full: ^5.1.0
    
  • 命令参数冗余干扰:先简化命令测试基础转换,排除参数问题:
    final session = await FFmpegKit.execute('-i "$videoFilePath" -vn "$audioFilePath"');
    

内容的提问来源于stack exchange,提问作者shakti goyal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:49:56