web-dev-qa-db-ja.com

V4L2はデフォルト設定を変更しますか?

v4l2-ctl --set-ctrl=exposure_auto_priority=1で必要な設定の値を正常に変更できますが、デフォルト設定、デフォルトは0で、ウェブカメラを黒のままにする方法を知りたいので、default = 1にする必要があります

4
Lemagex

Video4Linux Control Panel がある場合、下部にあるExposure_Auto Priorityチェックボックスのチェックを外してみて、それが役立つかどうか確認してください。

enter image description here

Hope it helps... Good Luck!

6
SoCalDiegoRob

設定はブートごとに失われるため、セッションの起動時にスクリプトを実行して、Video4Linuxパネルを使用して生成した値を適用する必要があります。

調整された値を確認するには、ターミナルで入力します。

v4l2-ctl --all

スクリプトを作成し、スタートアップセッションに追加した後...

これが私のスタートアップスクリプトです。

#!/bin/bash
v4l2-ctl 
--set-ctrl=brightness=150 \
--set-ctrl=contrast=51 \
--set-ctrl=saturation=32 \
--set-ctrl=white_balance_temperature_auto=0 \
--set-ctrl=gain=90 \
--set-ctrl=power_line_frequency=1 \
--set-ctrl=white_balance_temperature=1140 \
--set-ctrl=sharpness=24 \
--set-ctrl=backlight_compensation=1 \
--set-ctrl=exposure_auto=1 \
--set-ctrl=exposure_absolute=870 \
--set-ctrl=exposure_auto_priority=1

これが役立つことを願っています...

4
paschalis.sp

また、udevサブシステムを使用して、デバイスの接続時またはマシンの起動時に設定を確立できます。

たとえば、Logitech HD Pro C920 Webカメラで電源周波数を設定する方法は次のとおりです。lsusbはUSB ID 046d:082dを持っています。

Rootとして、新しい[誰でも読み取り可能なファイル/etc/udev/rules.d/99-local-webcam.rules]を作成します。を含む:

SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="082d", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl power_line_frequency=1 --device /dev/%k"

同じレシピに従って、USB IDとv4l-ctlパラメーターを変更して、正確なニーズに合わせることができます。コマンドラインからv4l-ctlパラメーターをテストして、動作することが納得できるまでテストし、そのテキストをudevルールファイルに入れることができます。

このアプローチの利点は、「うまく機能する」ことです。デバイスが接続されるたびに、設定が適用されます。あなたが多くのマシンのシステム管理者である場合、あなたはあなたの教育機関のすべての機器のルールファイルをプッシュアウトできます。それらはそのUSB IDがマシンに差し込まれるまで使用されません。

1
vk5tu