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

使用Flutter FFmpeg Kit转视频为音频返回ReturnCode 1,命令是否有误?

关于Flutter FFmpeg Kit转换视频到音频返回ReturnCode 1的问题分析

你的FFmpeg命令和代码存在几个可能导致执行失败的问题,具体分析如下:

可能的问题点

  • 路径未转义特殊字符:如果视频源路径或输出路径包含空格、中文等特殊字符,直接拼接命令会导致FFmpeg解析失败。FFmpeg要求含特殊字符的路径必须用双引号包裹。
  • 未获取详细错误日志:直接调用FFmpegKit.execute但不监听结果,无法定位具体失败原因(ReturnCode 1是通用失败码,没有针对性)。
  • FFmpeg Kit编码库缺失:如果使用的是精简版FFmpeg Kit(如min版本),可能未包含MP3编码所需的mp3lame库,导致无法生成MP3文件。

修正后的代码示例

Directory applicationDocDirectory = await getApplicationDocumentsDirectory();
outputPath = '${applicationDocDirectory.path}/output-audio-${const Uuid().v1()}.mp3';
// 用双引号包裹路径,规避特殊字符问题
final command = '-i "${widget.pickedVideo.path}" -vn -ar 44100 -ac 2 -b:a 256k -f mp3 "$outputPath"';
// 监听执行结果并获取错误日志
final session = await FFmpegKit.execute(command);
final returnCode = await session.getReturnCode();

if (ReturnCode.isSuccess(returnCode)) {
  // 处理转换成功逻辑
} else {
  final errorLog = await session.getAllLogsAsString();
  print("FFmpeg执行错误日志:$errorLog");
}

额外建议

  • 优先查看错误日志:日志会明确给出失败原因(如路径不存在、编码库缺失等),是排查问题的关键。
  • 切换完整版本FFmpeg Kit:在pubspec.yaml中依赖支持全编码的版本,确保MP3编码可用:
dependencies:
  ffmpeg_kit_flutter_full: ^5.1.0

内容的提问来源于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 17:12:15