저는 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
해당 쉘 스크립트 안에 명령을 넣어 보았지만 소용이 없었습니다.
나중에 호출할 때뿐 아니라 자동으로 시작될 때 이 스크립트가 올바르게 작동하도록 하려면 어떻게 해야 합니까?