android - 由于 Android 中的 ffmpeg,内存不足的杀手
问题描述
我正在 Android 嵌入式卡中运行应用程序。该应用程序是用 C 语言实现的。它使用 API 运行 ffmpeg 进程,该system()
API 通过 IP 传输传输流数据。当我启动应用程序时,大约 2 小时后,低内存杀手守护进程正在缓慢地杀死后台进程。一段时间后,它也会杀死应用程序。并且GUI屏幕完全挂起。
ffmpeg 命令:
ffmpeg -loglevel quiet -re -i "udp://192.168.47.1:8080?buffer_size=10000000&fifo_size=100000000&overrun_nonfatal=1" -map 0:p:1 -f mpegts udp://192.168.47.172:9090?pkt_size=1316
低内存杀手日志:
[ 7975.838158@2] lowmemorykiller: Killing 'droid.deskclock' (4779), adj 906,
[ 7975.838158@2] to free 18940kB on behalf of 'kswapd0' (1978) because
[ 7975.838158@2] cache 109744kB is below limit 114688kB for oom_score_adj 529
[ 7975.838158@2] Free memory is 9276kB above reserved. nonmove free (32936kB),(63700kB)
[ 7976.045769@2] lowmemorykiller: Killing 'd.process.media' (4902), adj 906,
[ 7976.045769@2] to free 23028kB on behalf of 'kswapd0' (1978) because
[ 7976.045769@2] cache 112320kB is below limit 114688kB for oom_score_adj 529
[ 7976.045769@2] Free memory is 5440kB above reserved. nonmove free (31148kB),(66164kB)
询问:
- ffmpeg 是否会随着时间的推移消耗更多的 CPU 和内存,从而导致内存不足的杀手?
解决方案
推荐阅读
- autodesk-forge - Forge Viewer 中模型的默认材质
- javascript - 'firebase' 不是内部或外部命令、可运行程序或批处理文件
- android-studio - Android Studio 显示主目录而不是项目
- android - 未调用 onNewToken()
- spring - 本地服务器无法在 sprin web mvc 中找到 welcome.jsp 文件
- c# - 简单的 C# 白名单,查找用户名和过期的问题
- python - np.ndarray`“是”中的奇怪行为
- android - 舞台线条画
- c# - 如何在 WinForm 应用程序中持续监控用户输入
- ios - 您已经拥有当前的 iOS 开发证书或待处理的证书请求