gpt4 book ai didi

在录制期间运行 ffmpeg 命令时未找到 Flutter FFmpeg moov atom

转载 作者:行者123 更新时间:2023-12-04 23:11:44 27 4
gpt4 key购买 nike

嗨,目前正在尝试检索 3 秒的音频文件剪辑,同时它正在 flutter 中录制。我正在使用录音模块flutter soundflutter ffmpeg .
我使用默认编解码器 (.aac) 录制音频文件。文件保存到缓存 getTemporaryDirectory()然后我使用这个flutter ffmpeg代码复制文件

List<String> arguments = ["-ss", start.toString(), "-i", inPath, "-to", end.toString(), "-c", "copy", outPath];

await flutterFFmpeg.executeWithArguments(arguments);

Start: start time (e.g. 0) and End: end time (e.g. 3)


然后它返回此错误

FFmpeg exited with rc: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x748964ea00] moovatom not found


有用的信息:
  • moov atom 是关于文件的数据(例如时间刻度、持续时间)
  • 我知道 inPath 存在,因为我在执行 ffmpeg 命令
  • 之前检查了它
  • outPath 也是格式 .aac
  • 正在运行此 ffmpeg 函数,同时仍在录制
  • 示例 inPath uri 如下所示/data/user/0/com.my.app/cache/output.aac
  • 我在 iOS 上运行时没有问题,仅在 android 上

  • 我将不胜感激,我花了很多天试图解决这个问题。如果您需要更多信息,请发表评论。谢谢

    最佳答案

    默认编解码器不保证为 AAC/ADTS。
    这将取决于您设备的 Android 版本。
    你可以做几件事来更好地理解:

  • ffprobe在您的文件中查看 Flutter Sound 录制的内容。
  • 使用特定编解码器而不是默认编解码器:aac/adts是一个不错的选择,因为它可以流式传输(您希望在录制期间而不是在关闭文件后处理音频数据)
  • 验证您的文件是否包含某些内容以及数据是否仍在内部缓冲区中
  • 录制到 dart PCM 流而不是文件。使用文件并使用 FFmpeg 查找它很复杂,可能无法满足您的需求。
  • 关于在录制期间运行 ffmpeg 命令时未找到 Flutter FFmpeg moov atom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65927131/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com