使用 buildroot 时运动运行极其缓慢

使用 buildroot 时运动运行极其缓慢

我在一个带有 raspberry pi zero w 的项目中使用了 motioneyeos,并且可以轻松获得 20fps@1280x720,因此我决定快速滑动 buildroot 来删除我不需要的功能(我只需要流)并希望为以后释放一些 CPU 使用率。

我现在拥有 pi zero w 的默认 buildroot 配置以及使 wifi 工作和运动的最低要求。

我调整了 /etc/init.d/S99motion 文件并将其更改为:

#!/bin/sh

NAME=motion
PIDFILE=/var/run/$NAME.pid
DAEMON=/usr/bin/$NAME

start() {
        printf "Starting $NAME: "
        motion -m -c /etc/motion/motion.config -p $PIDFILE 
        [ $? = 0 ] && echo "OK" || echo "FAIL"
}
stop() {
        printf "Stopping $NAME: "
        start-stop-daemon -K -q -p $PIDFILE
        [ $? = 0 ] && echo "OK" || echo "FAIL"
}
restart() {
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac

exit $?

我也尝试运行运动命令,chrt 99但没有任何变化。

我还更改了 motion.conf 文件以禁用 Web 控制器、视频保存并更改视频参数。以下是我从默认值更改的内容:

daemon on
mmalcam_name cv.ril.camera
width 1280
height 720
movie_output off
framerate 20
webcontrol_port 0
stream_maxrate 20

但是视频非常卡顿(可能在 1280x720 时为 2-3fps),我无论如何也想不出为什么性能这么差。我还查看了 motioneyeos github 存储库中的部分代码,但无法确定运动过程实际上是从哪里开始的(我根据他们的自定义 init.d 文件找到了 motioneye.sh,但这是我能找到的最多的信息)。

编辑我还刚刚注意到,只有当我启用“快速网络摄像机”设置时,我才能在 motioneyeos 上获得这种性能,否则帧速率大致相同。

相关内容