在录制期间 运行 ffmpeg 命令时找不到 Flutter FFmpeg moov 原子
Flutter FFmpeg moov atom not found whilst running ffmpeg command during recording
您好,我目前正在尝试检索正在录制的音频文件的 3 秒片段。我正在使用录音模块 flutter sound and flutter 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)
然后returns这个错误
FFmpeg exited with rc: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x748964ea00] moov
atom not found
有用信息:
- moov 原子是关于文件的数据(例如时间刻度、持续时间)
- 我知道 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 查找它很复杂,可能无法满足您的需求。
您好,我目前正在尝试检索正在录制的音频文件的 3 秒片段。我正在使用录音模块 flutter sound and flutter 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)
然后returns这个错误
FFmpeg exited with rc: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x748964ea00] moov atom not found
有用信息:
- moov 原子是关于文件的数据(例如时间刻度、持续时间)
- 我知道 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 查找它很复杂,可能无法满足您的需求。