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そのシェルスクリプトの中にコマンドを入れてみましたが、役に立ちませんでした。

後で呼び出すだけでなく、自動的に起動したときにこのスクリプトが正しく機能するようにするにはどうすればよいですか?

関連情報