v4l2 启动后才接受配置

v4l2 启动后才接受配置

我在带有 Alpine Linux 的 Raspberry Pi 3A+ 上使用 v4l2,但安装了官方 Raspberry Pi 内核/固件。我正在尝试让我的 Raspi-Camera 自动启动并通过 mjpg-streamer 提供直播服务,这是我迄今为止的尝试:

/etc/init.d/mjpg-streamer

#!/sbin/openrc-run
command="/usr/local/bin/mjpg.sh"
command_background="yes"
pidfile="/run/mjpg-streamer.pid"
depend() {
        need net
}

/usr/local/bin/mjpg.sh

#!/bin/sh
set -e

modprobe bcm2835-v4l2
chgrp video /dev/video0
chmod g+rw /dev/video0

export LD_LIBRARY_PATH=/opt/vc/lib
v4l2-ctl --set-fmt-video=width=1440,height=1080,pixelformat=3
chpst -u mjpg:video -- mjpg_streamer -o "output_http.so -w /usr/local/share/mjpg-streamer/www/" -i "input_uvc.so -r 1440x1080 -d /dev/video0 -f 15"

但是,启动后这不会按预期工作。分辨率和像素格式都没有正确设置,我在直播中得到的是质量很差的流,具有可见像素和非常糟糕的颜色。

一旦 Pi 启动,我就可以通过 ssh 连接到它,重新启动上面的设备,并按照我预期的方式获得完美质量的直播。因此,我假设缺少一些依赖项,需要在设置 v4l2 选项并启动 mjpg-streamer 之前启动它。我尝试sleep在该 shell 脚本中放置一个命令,但无济于事。

我该怎么做才能让这个脚本在自动启动时正常工作,而不仅仅是在之后调用时正常工作?

相关内容