gpt4 book ai didi

android - FFmpeg - 混合视频和音频时大文件的 ANR

转载 作者:行者123 更新时间:2023-12-04 23:32:36 24 4
gpt4 key购买 nike

这个命令

ffmpeg -i video.webm -i audio.m4a -c 复制 output.mkv

对于任何大文件(例如大于 700mb),在转换结束时总是会在 android 中产生 ANR 错误。

ANR 错误仅在成功生成输出后的转换过程结束时产生,而不是在中间或开始时等。

所以我怀疑它最后与一些 I/O 的东西有关。
有人可以对此有所了解,并帮助消除此 ANR 问题吗?

最佳答案

默认情况下, ffmpeg 产生进度输出〜每 500 毫秒。一路FFmpeg-Android处理此输出,它将进度消息返回到您的 onProgress()回调,并将所有这些(相对较短的)消息附加到一个字符串中,该字符串在 onSuccess() 中返回.

发生的情况是,对于大型视频文件,内存可能会耗尽,或者至少垃圾收集器会非常努力地工作。这些字符串操作发生在主线程上,很容易导致 ANR。

作为一种快速解决方法,您可以通过 -nostats ffmpeg 命令行:

ffmpeg -i video.webm -i audio.m4a -c copy output.mkv -nostats

要解决此问题,请查看 https://github.com/bravobit/FFmpeg-Android/pull/128 .

关于android - FFmpeg - 混合视频和音频时大文件的 ANR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067507/

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