首页 > 解决方案 > 由于 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)

询问:

标签: androidmemory-managementffmpegudpvideo-streaming

解决方案


推荐阅读