「ウェブカメラ設定」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンクを修正)
 
(2人の利用者による、間の10版が非表示)
1行目: 1行目:
[[Category:イメージング]]
+
[[Category:デジタルイメージング]]
 
[[Category:入力デバイス‏‎]]
 
[[Category:入力デバイス‏‎]]
 
[[en:Webcam setup]]
 
[[en:Webcam setup]]
 
[[es:Webcam setup]]
 
[[es:Webcam setup]]
  +
[[zh-hans:Webcam setup]]
こちらは Arch Linux でウェブカメラを設定するガイドです。
 
  +
こちらはウェブカメラを設定するガイドです。
   
 
ほとんどの場合、ウェブカメラは何も設定しなくても動作します。ビデオデバイス (例えば {{ic|/dev/video0}}) へのアクセスの許可は [[udev]] により管理されており、追加の設定は必要ありません。
 
ほとんどの場合、ウェブカメラは何も設定しなくても動作します。ビデオデバイス (例えば {{ic|/dev/video0}}) へのアクセスの許可は [[udev]] により管理されており、追加の設定は必要ありません。
9行目: 10行目:
 
== ロード ==
 
== ロード ==
   
最近のほとんどのウェブカメラは UVC (''USB Video Class'') に対応しており、汎用の ''uvcvideo'' カーネルドライバモジュールによりサポートされています。あなたのウェブカメラが認識されているかどうか確かめるには、ウェブカメラを接続した直後に [[dmesg]] を実行してください。以下と似たようなものが出力されるはずです:
+
最近のほとんどのウェブカメラは UVC (''USB Video Class'') に対応しており、汎用の ''uvcvideo'' カーネルドライバモジュールによりサポートされています。あなたのウェブカメラが認識されているかどうか確かめるには、ウェブカメラを接続した直後に [[journal]] を確認してください。以下と似たようなものが出力されるはずです:
   
  +
{{bc|
{{hc|# dmesg {{!}} tail|
 
sn9c102: V4L2 driver for SN9C10x PC Camera Controllers v1:1.24a
+
kernel: sn9c102: V4L2 driver for SN9C10x PC Camera Controllers v1:1.24a
 
usb 1-1: SN9C10[12] PC Camera Controller detected (vid/pid 0x0C45/0x600D)
 
usb 1-1: SN9C10[12] PC Camera Controller detected (vid/pid 0x0C45/0x600D)
 
usb 1-1: PAS106B image sensor detected
 
usb 1-1: PAS106B image sensor detected
18行目: 19行目:
 
usb 1-1: V4L2 device registered as /dev/video0
 
usb 1-1: V4L2 device registered as /dev/video0
 
usb 1-1: Optional device control through 'sysfs' interface ready
 
usb 1-1: Optional device control through 'sysfs' interface ready
usbcore: registered new driver sn9c102}}
+
usbcore: registered new driver sn9c102
  +
}}
  +
 
UVC 以前のウェブカメラの中には、''gspca'' カーネルドライバモジュールによってサポートされているものもあります。このフレームワークでサポートされているデバイスの完全ではないリストは [https://docs.kernel.org/admin-guide/media/gspca-cardlist.html gspca cards list] を見てください。
 
UVC 以前のウェブカメラの中には、''gspca'' カーネルドライバモジュールによってサポートされているものもあります。このフレームワークでサポートされているデバイスの完全ではないリストは [https://docs.kernel.org/admin-guide/media/gspca-cardlist.html gspca cards list] を見てください。
   
あなたのウェブカメラがカーネルのドライバによってサポートされていない場合、外部のドライバが必要となります。まず、ウェブカメラの名前を調べます ({{ic|lsusb}} などを使って)。次に、ウェブカメラに関する情報やリソースが載っている [https://www.linuxtv.org/wiki/index.php/Webcam_devices webcam devices] を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、それに対応する[[カーネルモジュール]]を {{ic|/etc/modules-load.d/webcam.conf}} に追加する必要があります。これで、ブートの init ステーでドライバがカロードさようになります。
+
あなたのウェブカメラがカーネルのドライバによってサポートされていない場合、外部のドライバが必要となります。まず、ウェブカメラの名前を調べます ({{ic|lsusb}} などを使って)。次に、ウェブカメラに関する情報やリソースが載っている [https://www.linuxtv.org/wiki/index.php/Webcam_devices webcam devices] を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、[[カーネルモジュール#モジュールの自動ロード|ブート時にそールロード]]ことができます。
   
 
{{Note|ウェブカメラを操作するために使用される、Linux カーネルからユーザスペースへの API は、''Video4Linux2'' 略して '''v4l2''' という名前です。v4l2 に対応しているアプリケーションは全て、カーネルのドライバで動作します。}}
 
{{Note|ウェブカメラを操作するために使用される、Linux カーネルからユーザスペースへの API は、''Video4Linux2'' 略して '''v4l2''' という名前です。v4l2 に対応しているアプリケーションは全て、カーネルのドライバで動作します。}}
   
  +
== 設定 ==
== Linux のウェブカメラサポート ==
 
   
  +
輝度、色、その他のウェブカメラのパラメータを設定したい場合 (例えば、デフォルトの色が青/赤/緑っぽい場合)、様々なアプリケーションを利用できます。一部の特定のウェブカメラ (Logitech Brio や Razer Kiyo Pro など) は、HDR などの特定のオプションを設定するために特定のアプリケーションが必要かもしれません。通常、V4L の設定を行うアプリケーションで設定を変更すると、アプリケーション自体が設定をオーバーライドしない限り、そのようなカメラを使用する全てのアプリケーションに対して変更が適用されます。
ほとんどの場合ウェブカメラは何も設定しなくても動作します。その場合、色調や明るさなどのパラメータを設定したいなら、[[#ウェブカメラ設定|ウェブカメラ設定]]のセクションまでスキップできます。ウェブカメラが自動で動作しない場合は以下の手順に従って下さい。
 
   
== ウェブカメを確認する ==
+
=== コマンドイン ===
   
  +
{{Pkg|v4l-utils}} はコマンドラインツール {{ic|v4l2-ctl}} をインストールします。すべてのビデオデバイスを一覧表示するには:
({{Ic|lsusb}} などを使って) ウェブカメラの名前を確認して適切なドライバーを探して下さい。以下はウェブカメラと、ウェブカメラが動作するドライバーのリストです。モジュールのコンパイルに関する情報などはデバイスの名前の右のリンクをクリックしてください。ウェブカメラを動作させることができたら、このリストにあなたの使ったドライバーとウェブカメラの名前を追加してください!
 
   
  +
$ v4l2-ctl --list-devices
=== pwc ===
 
   
  +
ビデオデバイスの設定可能な項目を一覧表示するには:
* Creative Labs Webcam Pro Ex
 
* Logitech QuickCam Notebook Pro ("Pro" モデルのみ)
 
* Logitech Quickcam Pro 4000
 
* Philips ToUCams (未確認)
 
* Philips SPC900NC
 
   
  +
$ v4l2-ctl -d /dev/video0 --list-ctrls
=== qc-usb ===
 
   
  +
また、{{Pkg|cameractrls}} を使用することもできます:
* Dexxa Webcam
 
* Labtec Webcam (旧モデル)
 
* LegoCam
 
* Logitech Quickcam Express (旧モデル)
 
* Logitech QuickCam Notebook ("Pro" モデルは含まず)
 
* Logitech Quickcam Web
 
   
  +
$ cameractrls -c brightness=128
=== qc-usb-messenger ===
 
   
  +
=== グラフィカル ===
* Logitech Quickcam Messenger
 
* Logitech Quickcam Communicate (Communicate MP/S5500 や "for Business" については下の linux-uvc セクションを参照)
 
   
  +
汎用のグラフィカルなウェブカメラ設定ツールとしては、{{Pkg|v4l-utils}} の {{ic|qv4l2}} や {{Pkg|guvcview}} があります。加えて、{{Pkg|cameractrls}} には {{ic|cameractrlsgtk}} という、v4l の全オプションだけでなく Logitech Brio や Razer Kiyo Pro のカメラ固有の機能を設定できるツールが含まれています。
{{Note|現在このドライバーはカーネル 2.6.27 に含まれているモジュールです。}}
 
   
  +
=== 設定の変更を永続化する ===
=== zr364xx ===
 
   
  +
V4L2 を通して加えられた設定は、ウェブカメラが切断されたり再接続されると破棄されます。{{ic|v4l2-ctl}} と [[udev]] ルールを使って、特定のカメラが接続されるたびに設定を適用することができます。
このドライバーは多数のウェブカメラで使用できます:
 
* Aiptek PocketDV 3300
 
* Creative PC-CAM 880
 
* Konica Revio 2
 
* Genius Digital Camera
 
* Maxell Maxcam PRO DV3
 
サポートされているデバイスの完全なリストは [http://royale.zerezo.com/zr364xx/ こちら] で見れます。
 
   
  +
例えば、特定の Logitech ウェブカメラに対して、それが接続されるたびにデフォルトの拡大設定を適用するには、以下のような [[Udev#udev ルールの例|udev ルール]]を追加してください:
=== sn9c102 ===
 
   
  +
{{hc|/etc/udev/rules.d/99-logitech-default-zoom.rules|2=
* Trust Spacecam シリーズ
 
  +
SUBSYSTEM=="video4linux", KERNEL=="video[0-9]*", ATTR{index}=="0", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0892", RUN+="/usr/bin/v4l2-ctl -d $devnode --set-ctrl=zoom_absolute=170"
* Maxell Smartcam (ノートパソコン用): 最大解像度 352x288 @ 3fps
 
  +
}}
   
  +
上記のルールは、Logitech C920 HD Pro Webcam (ハードウェア ID 046d:0892) で有効です。
=== gspca ===
 
   
  +
デバイスのベンダ ID とプロダクト ID は、{{ic|lsusb}} を使って調べることができます。これらの ID は、製品ごとにユニークで、製品が新しいハードウェアリビジョンにならない限り変更されません。
サポートされているウェブカメラの完全なリストは [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/video4linux/gspca.txt;hb=HEAD こちら] です。
 
   
  +
プロダクト名やシリアル ID のような udev の属性を調べるには、[[Udev#デバイスの属性を一覧表示する]] を見てください ([[Udev#固定デバイス名を設定する|ビデオデバイスに対して固定デバイス名]]を設定することもできます)。
{{Note|このドライバーは V4L1 をサポートしていません。}}
 
   
  +
=== ノートパソコンの内蔵ウェブカメラを無効化する ===
=== stv680 ===
 
   
  +
USB で接続されているカメラだけが見えるようにするために、場合によってはノートパソコンの内蔵ウェブカメラを無効化する必要があります。udev ルールで内蔵ウェブカメラを無効化できます。
ここ数年アジアで作られた安いノーブランドのカメラはほとんど stv680 チップセットを使っています。こういったカメラは多くがノベルティグッズです (Pencam, SpyC@m, LegoCam)。
 
  +
まず、{{ic|lsusb}} を使って、デバイスのベンダ ID とプロダクト ID を手に入れる必要があります:
* Aiptek PenCam シリーズ
 
* Digitaldream シリーズ
 
* Dolphin Peripherals シリーズ
 
* Lego LegoCam
 
* Trust SpyC@m シリーズ
 
* Welback Coolcam
 
   
  +
{{hc|lsusb|2=
stv680 チップセットを使用するウェブカメラの完全なリストは [http://webcam-osx.sourceforge.net/cameras/index.php?orderBy=controller こちら] から見れます。
 
  +
Bus 001 Device 008: ID 1bcf:28c1 Sunplus Innovation Technology Inc. Integrated_Webcam_HD
 
=== linux-uvc ===
 
 
* Genius iLook 1321
 
* Logitech Webcam C210
 
* Logitech Webcam C250
 
* Logitech Webcam C270
 
* Logitech Webcam C600
 
* Logitech HD Webcam C525
 
* Logitech HD Pro Webcam C920
 
* Logitech Quickcam Pro 5000
 
* Logitech Quickcam Pro 9000
 
* Logitech Quickcam Orbit AF
 
* Logitech Quickcam Orbit MP
 
* Logitech Quickcam S5500
 
* Microdia Pavilion Webcam (on MSI PR200)
 
* Logitech Quickcam Communicate MP/S5500 または "for Business"
 
* Chicony Electronics CNF7051
 
* Lite-On USB ウェブカメラ
 
 
サポートされている UVC デバイスの完全なリストは [http://www.ideasonboard.org/uvc/ こちら] で見れます。
 
 
カーネル 2.6.26 から linux-uvc はカーネルに含まれています。uvcvideo モジュールをロードしてください。
 
 
{{Note|
 
* このドライバーは V4L1 をサポートしていません。
 
* WebCam SCB-0385N (usb ID 2232:1005), WebCam SC-0311139N (usb ID 2232:1020), WebCam SC-03FFL11939N (usb ID 2232:1028) では、カメラの使用によってシステムがフリーズする場合、モジュールの設定を追加する必要があります:
 
{{hc|1=/etc/modprobe.d/uvcvideo.conf|2=options uvcvideo nodrop=1}} }}
 
 
=== ov51x-jpeg ===
 
 
* Sony EyeToy
 
* Chicony DC-2120
 
* Chicony DC-2120 pro
 
* Trust Spacecam 320
 
* Hercules Webcam Deluxe
 
* Hercules Webcam Classic
 
* Creative Live! Cam Notebook Pro VF0400
 
* Creative Live! Cam Vista IM
 
* Creative Live! Cam Vista IM VF0420
 
* Creative Vista Webcam VF0330
 
* ASUS webcam Model?
 
* Philips PCVC820K/00
 
* NGS showtime plus
 
* HP VGA Webcam with Integrated Microphone
 
 
"Creative Live! Cam Vista IM" を Skype で使うには、次の行を {{ic|/etc/modprobe.d/modprobe.conf}} に追加する必要があります:
 
options ov51x-jpeg forceblock=1
 
 
=== r5u870 (Ricoh) ===
 
 
* HP Pavilion Webcam
 
* HP Webcam 1000
 
* Sony VAIO VGP-VCCx
 
 
Ricoh ウェブカメラは新しい Sony のノートパソコンでよく使われています。
 
 
{{AUR|r5u87x-hg}}{{Broken package link|{{aur-mirror|r5u87x-hg}}}} (ファームウェアも入っています) をインストールして {{ic|r5u87x-loader}} コマンドを実行してください。
 
 
=== stk11xx (Syntek) ===
 
 
* Asus のノートパソコンに搭載された内蔵カメラ
 
* Asus A8J, F3S, F5R, F5GL, F9E, VX2S, V1S, A6T
 
 
{{AUR|stk11xx-svn}} パッケージをインストールしてください。適切なカーネルモジュールが含まれています。
 
 
== ウェブカメラのモジュールがロードされているか確認する ==
 
 
あなたの使っているウェブカメラの[[カーネルモジュール#ロード|モジュール]]を {{ic|/etc/modules-load.d/webcam.conf}} に追加すればブートストラップの初期化段階でカーネルにロードされるようになります。
 
 
ウェブカメラが USB の場合、カーネルは自動的に適切なドライバーをロードする''はず''です。この場合、ウェブカメラを接続して dmesg を確認してください。以下のような表示があるはずです:
 
 
{{hc|<nowiki>$ dmesg|tail</nowiki>|<nowiki>
 
sn9c102: V4L2 driver for SN9C10x PC Camera Controllers v1:1.24a
 
usb 1-1: SN9C10[12] PC Camera Controller detected (vid/pid 0x0C45/0x600D)
 
usb 1-1: PAS106B image sensor detected
 
usb 1-1: Initialization succeeded
 
usb 1-1: V4L2 device registered as /dev/video0
 
usb 1-1: Optional device control through 'sysfs' interface ready
 
usbcore: registered new driver sn9c102
 
</nowiki>}}
 
 
== パーミッション ==
 
 
ビデオデバイス (例: {{ic|/dev/video0}}) にアクセスするパーミッションは [[udev]] によって管理されるので、設定は必要ありません。
 
 
== ウェブカメラ設定 ==
 
 
明るさや色調などのウェブカメラのパラメータを設定したい場合 (例: デフォルトの色調が青・赤・緑みがかっているなど)、[[公式リポジトリ]]に {{Pkg|guvcview}} パッケージとして存在する [http://guvcview.sourceforge.net/ GTK+ UVC Viewer] (guvcview) を使うことができます。インストールして起動すれば、調整できる設定のリストが表示されます。設定を変更すると全てのアプリケーションに影響があります (例: Skype)。
 
 
=== ウェブカメラの解像度 ===
 
 
まずは[[#ウェブカメラを確認する|ウェブカメラを確認]]してください:
 
{{hc|$ lsusb|
 
Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
 
...
 
 
}}
 
}}
   
  +
次に、このデバイスが検出されたらすぐにデバイスを取り除くための udev ルールを新しく追加します:
そして、{{ic|Bus}} と {{ic|Device}} 番号を使ってデバイスに関する詳細な情報を取得:
 
   
  +
{{hc|/etc/udev/rules.d/40-disable-internal-webcam.rules|2=
{{hc|<nowiki>$ lsusb -s 001:002 -v | egrep "Width|Height"</nowiki>|
 
  +
ACTION=="add", ATTR{idVendor}=="1bcf", ATTR{idProduct}=="28c1", RUN="/bin/sh -c 'echo 1 >/sys/\$devpath/remove'"
wWidth 640
 
wHeight 480
 
wWidth 1280
 
wHeight 1024
 
...
 
 
}}
 
}}
   
  +
=== ウェブカメラを完全に無効化する ===
出力を見ることで、カメラの縦・横の解像度がわかります。上記の場合、1280x1024 に加えて小さな解像度が利用できます [https://askubuntu.com/questions/214977/how-can-i-find-out-the-supported-webcam-resolutions/214990#214990]。
 
 
== ソフトウェアでウェブカメラを使う ==
 
 
Linux カーネルのバージョン 2.6.27 は [http://mxhaard.free.fr/spca5xx.html 多数の新しいウェブカメラドライバー] をサポートしています。レガシーな Video4Linux API は廃止され、現在これらのドライバーは Video4Linux バージョン 2 のみをサポートしています。Video4Linux バージョン 2 からピクセル形式のデコードはユーザースペースに移り、カーネルスペースでのデコードはサポートしていません。libv4l ライブラリがピクセスデコードサービスのユーザーランドアプリケーションを提供しており、多くのプログラムで使用されます。他の互換レイヤーも利用可能です。
 
 
'''デバイスが作成されたが画像がおかしい場合 (完全に緑など)、以下の設定が必要かもしれません。'''
 
 
アプリケーションが V4L2 をサポートしているがピクセル形式をサポートしていない場合 (例: cheese) 次のコマンドを使って下さい:
 
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so cheese
 
   
  +
{{ic|uvcvideo}} カーネルモジュールを[[カーネルモジュール#ブラックリスト|ブラックリスト化]]することで、ウェブカメラを完全に無効化できます。例えば:
アプリケーションが V4L の古いバージョンしかサポートしていない場合 (Skype がこの種のソフトウェアで一番有名です) 次のコマンドを使って下さい:
 
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
 
   
  +
{{hc|/etc/modprobe.d/nowebcam.conf|
{{Tip|1=以下のような行を {{ic|/etc/profile}} や [[xprofile]] に追加することで長いコマンドを毎回入力する手間が省けます:
 
  +
blacklist uvcvideo
{{bc|1=export LD_PRELOAD=/usr/'$LIB'/libv4l/v4l2convert.so}}
 
または:
 
{{bc|1=export LD_PRELOAD=/usr/'$LIB'/libv4l/v4l1compat.so}}
 
 
}}
 
}}
   
  +
== アプリケーション ==
Arch64 で32ビットのアプリケーションを使う場合 (例: Skype)、{{Pkg|lib32-v4l-utils}} パッケージをインストールして下さい。
 
   
  +
[[アプリケーション一覧/マルチメディア#ウェブカメラ]] も見てください。
ウェブカメラが guvcview で問題なく動くのに、Skype で動かない場合、起動する前に次も設定する必要があるかもしれません:
 
export XLIB_SKIP_ARGB_VISUALS=1
 
   
=== Cheese ===
+
=== xawtv ===
   
  +
ベーシックな ''Video4Linux2'' デバイスビュアーです。TV チューナーカードで使うことが想定されていますが、ウェブカメラでも問題なく動作します。ウィンドウにウェブカメラの映像を表示します。
Cheese は GNOME の静画・動画トーククライアントです。macOS の Photo Booth に似ています。公式リポジトリからインストール可能です ({{Pkg|cheese}})。
 
   
  +
{{AUR|xawtv}} を[[インストール]]し、以下のコマンドで実行してください:
=== fswebcam ===
 
  +
$ xawtv -c /dev/video0
   
  +
エラーが発生する場合は、[[#xawtv と nvidia カード]] を見てください。
fswebcam は軽量で柔軟性のあるウェブカメラアプリで、コマンドラインから起動することができます。[[公式リポジトリ]]の {{AUR|fswebcam}} パッケージでインストールしてください。
 
   
=== GTK+ UVC Viewer (guvcview) ===
+
=== VLC ===
   
  +
[[VLC]] を使ってウェブカメラを表示したり記録することもできます。VLC の ''メディア'' メニューから ''キャプチャーデバイスを開く'' ダイアログを開いて、ビデオとオーディオのデバイスファイルを入力してください。もしくは、コマンドラインから例えば以下のように実行してください:
ウェブカメラの設定ができる便利なソフトウェアというだけでなく、[http://guvcview.sourceforge.net/ guvcview] は Linux UVC ドライバーがサポートしているデバイスから動画をキャプチャ(音付きで!)・表示することもできます。{{Pkg|guvcview}} パッケージとして[[公式リポジトリ]]から利用可能です。
 
  +
$ vlc v4l2://:input-slave=alsa://:v4l-vdev="/dev/video0"
 
  +
これで VLC はウェブカメラのミラーを作ります。
=== Kopete ===
 
  +
* 写真を撮影するには、''Video'' メニューの ''Snapshot'' を選択してください。
 
  +
* 動画を記録するには、{{ic|--sout}} 引数を追加します、例:
Kopete は [[KDE]] のインスタントメッセージ (IM) クライアントです。{{Pkg|kopete}} パッケージでインストールできます。
 
  +
$ vlc v4l://:v4l-vdev="/dev/video0":v4l-adev="/dev/audio2" --sout "#transcode{vcodec=mp1v,vb=1024,scale=1,acodec=mpga,ab=192,channels=2}:duplicate{dst=std{access=file,mux=mpeg1,dst=/tmp/test.mpg}}"
 
=== Kamoso ===
 
 
ウェブカメラから写真や動画を撮影する KDE のアプリケーション。{{Pkg|kamoso}} パッケージをインストールしてください。
 
 
=== xawtv ===
 
 
これは v4l デバイスの素朴なビューアで、TV チューナーカードで使うことが想定されていながら、ウェブカメラでも問題なく動作します。ウィンドウにウェブカメラの映像を表示します。インストールして ({{Pkg|xawtv}}) 次のコマンドで起動してください:
 
$ xawtv -c /dev/video0
 
nVidia グラフィックカードを使っている場合、以下のようなエラーが表示されます:
 
X Error of failed request: XF86DGANoDirectVideoMode
 
Major opcode of failed request: 139 (XFree86-DGA)
 
Minor opcode of failed request: 1 (XF86DGAGetVideoLL)
 
Serial number of failed request: 69
 
Current serial number in output stream: 69
 
次のコマンドで実行してください:
 
$ xawtv -nodga
 
 
=== VLC ===
 
   
  +
デフォルトではビデオを表示しないことに注意してください。録画中のものを見るには、引数に表示先のディスプレイを追加する必要があります (ハードウェアの負担は増えます):
[[VLC media player|VLC]] を使ってウェブカメラを表示したり記録することもできます。VLC のファイルメニューで、'Capture Device...' ダイアログを開いて動画と音声のデバイスファイルを入力してください。もしくはコマンドラインから次を実行します:
 
  +
... :duplicate{'''dst=display''',dst=std{access= ....
$ vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2"
 
これで VLC はウェブカメラのミラーを作ります。写真を撮影するには、'Video' メニューの 'Snapshot' を選択してください。動画を記録するには、{{ic|--sout}} 引数を追加します、例:
 
$ vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" \
 
--sout "#transcode{vcodec=mp1v,vb=1024,scale=1,acodec=mpga,ab=192,channels=2}:duplicate{dst=std{access=file,mux=mpeg1,dst=/tmp/test.mpg}}"
 
   
  +
{{Note|VLC がウェブカメラを検出しない場合は、{{Pkg|zvbi}} パッケージがインストールされていることを確認してください。}}
上記のコマンドでは、何を記録しているのか表示されません。確認したい場合は、以下のように dst にディスプレイを追加する必要があります (ハードウェアの負担は増えます):
 
... :duplicate{dst=display,dst=std{access= ....
 
   
 
=== MPlayer ===
 
=== MPlayer ===
   
[[MPlayer]] を使ってウェブカメラのスナップショットを撮るにはターミナルから次のコマンドを実行します:
+
[[MPlayer]] を使ってウェブカメラのスナップショットを撮るにはターミナルから次のコマンドを実行します:
 
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot
 
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot
ここから {{ic|s}} を押すことでスナップショットが作られます。スナップショットはあなたのカレントフォルダに '''shotXXXX.png''' と保存されます。連続動画を記録したい場合:
+
ここから {{ic|s}} を押すことでスナップショットが作られます。スナップショットはあなたのカレントフォルダに {{ic|shotXXXX.png}} と保存されます。
  +
連続動画を記録したい場合:
 
$ mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:adevice=/dev/dsp -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o ''filename''.avi
 
$ mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:adevice=/dev/dsp -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o ''filename''.avi
 
{{ic|Ctrl+c}} を押せば録画が終了します。
 
{{ic|Ctrl+c}} を押せば録画が終了します。
  +
  +
デフォルト (ほとんどの場合 YUYV) の代わりに MJPEG をピクセル形式として使って [[MPlayer]] で動画を再生するには、以下を実行することで可能です:
  +
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:outfmt=mjpeg -fps 15
   
 
=== mpv ===
 
=== mpv ===
   
 
[[mpv]] を使ってウェブカメラの画像を取得するにはターミナルから以下のコマンドを実行:
 
[[mpv]] を使ってウェブカメラの画像を取得するにはターミナルから以下のコマンドを実行:
$ mpv tv:// --tv-driver=v4l2 --tv-device=/dev/video0
+
$ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed
{{ic|s}} を押すことでスナップショットが取得されます。スナップショットはカレントフォルダに '''mpv-shotNNNN.jpg''' という名前で保存されます。
 
   
  +
{{ic|s}} を押すことでスナップショットが取得されます。スナップショットはカレントフォルダに {{ic|mpv-shot''NNNN''.jpg}} という名前で保存されます。
=== FFmpeg ===
 
   
  +
デフォルト (ほとんどの場合 YUYV) の代わりに MJPEG をピクセル形式として使って [[MPlayer]] で動画を再生するには、以下を実行することで可能です:
[[FFmpeg#ウェブカメラの録画]] を見て下さい。
 
  +
$ mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0
   
  +
こうすることで、品質とパフォーマンスが劇的に向上することがあります (例えば 5FPS -> 30FPS)。
=== ekiga ===
 
   
  +
ウェブカメラの設定を調整するには (解像度など)、[https://github.com/mpv-player/mpv/wiki/Video4Linux2-Input mpv のドキュメント] を見てください。
Microsoft NetMeeting にとてもよく似ています。公式リポジトリから {{pkg|ekiga}}{{Broken package link|パッケージが存在しません}} パッケージをインストールして下さい。設定は全て勝手にやってくれます。
 
   
=== Sonic-snap ===
+
=== FFmpeg ===
 
Sonic-snap [http://www.stolk.org/sonic-snap/] は sn9c102 ベースのウェブカメラ'''専用'''のビューア・レコーダです。{{AUR|sonic-snap}}{{Broken package link|{{aur-mirror|sonic-snap}}}} は AUR から入手可能です。
 
 
=== Skype ===
 
 
[[Skype]] の最新版は動画をサポートしています。オプションのビデオデバイスを確認してください、テスト画像をダブルクリックすることでフルスクリーンにできます。{{AUR|skype}}{{Broken package link|パッケージが存在しません}} パッケージをインストールして下さい。Skype で緑の画像が表示される場合は上の[[#ソフトウェアでウェブカメラを使う|ソフトウェアでウェブカメラを使う]]セクションを見て下さい。
 
 
x86-64 を使っている場合は {{Pkg|lib32-v4l-utils}} をインストールして次のコマンドで skype を起動してください:
 
LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype
 
skype のエイリアスを作成するか、{{ic|/usr/bin}} にあるオリジナルの skype バイナリの名前を変更してから上記のオプションを記述したテキストファイルを作成するか、あるいは、デスクトップ環境で Skype アイコンのコマンドラインオプションを変更することで、恒常的に使うことができます。
 
 
=== Motion ===
 
 
:''Motion はカメラからのビデオ信号を監視するプログラムです。映像の一部が変わったのを検出することが可能で、言い換えれば、動き検出が可能です。''
 
 
{{Pkg|motion}} は v4l2 デバイスしか処理できないため v4l1 ドライバーしかないカメラを使う時は前述の通りに v4l1compat.so をプリロードする必要があります。そうしないと motion が適切なパレットを見つけられないというエラーが起こります。
 
   
  +
例は [[v4l2loopback#使用例]] を参照してください。v4l2 デバイスへビデオを出力するために FFmpeg が使用されています。これは、ウェブカメラとしても使用できます。
=== MJPG-streamer ===
 
   
  +
ウェブカメラの無いノートパソコンの場合、droidcam の代替として IP カメラを使用できます。こうすることで、追加のウェブカメラデバイスがかさばることはありません。Android の場合、[https://play.google.com/store/apps/details?id=com.pas.webcam IP ウェブカメラ]のようなものを携帯電話でホストし、ノートパソコンのビデオ入力として IP カメラを使用できます。まず、{{Pkg|linux-headers}} と {{Pkg|v4l2loopback-dkms}} をインストールしてください。次に、{{ic|v4l2loopback}} を使ってビデオソースに {{ic|v4l2loopback}} として接続してください、携帯電話の IP アドレスが {{ic|192.168.1.xxx}} であるとすると:
{{AUR|mjpg-streamer}}{{Broken package link|パッケージが存在しません}} は Linux-UVC 対応のウェブカメラ、ファイルシステム、あるいは他の入力プラグインから JPG を取得して HTTP を介しウェブブラウザや VLC などのソフトウェアに M-JPEG としてストリーミングします。
 
   
  +
# modprobe v4l2loopback exclusive_caps=1
=== QtCAM ===
 
  +
$ ffmpeg -i <nowiki>http://192.168.1.</nowiki>''xxx'':8080/video -vf format=yuv420p -f v4l2 /dev/video0
   
  +
{{Note|{{ic|1=exclusive_caps=1}} は、一部の Chrome/WebRTC アプリケーションでビデオ入力が利用できない問題を解決します [https://github.com/umlaeute/v4l2loopback#options]。}}
QtCAM はオープンソースの Linux ウェブカメラソフトウェアです。USB カメラや V4L2 に対応しているデバイスから動画や画像を取得することができます。色空間の切り替えや、フレームレートの表示などの機能があります。
 
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
390行目: 229行目:
   
 
画像が明るすぎたり、暗すぎたり、露出が高すぎたりする場合、{{AUR|v4l2ucp}} をインストールして画像出力を調整できます。
 
画像が明るすぎたり、暗すぎたり、露出が高すぎたりする場合、{{AUR|v4l2ucp}} をインストールして画像出力を調整できます。
  +
  +
=== Logitech Quickcam Pro 9000 ===
  +
  +
オートフォーカス制御を有効化するために {{AUR|libwebcam-git}} を[[インストール]]してください。インストール後、カメラを一旦切断し、その後接続し直して、新しく追加された [[udev ルール]]をトリガーしてください。
  +
  +
{{TranslationStatus|Webcam setup|2023-06-29|781822}}

2023年12月28日 (木) 12:57時点における最新版

こちらはウェブカメラを設定するガイドです。

ほとんどの場合、ウェブカメラは何も設定しなくても動作します。ビデオデバイス (例えば /dev/video0) へのアクセスの許可は udev により管理されており、追加の設定は必要ありません。

ロード

最近のほとんどのウェブカメラは UVC (USB Video Class) に対応しており、汎用の uvcvideo カーネルドライバモジュールによりサポートされています。あなたのウェブカメラが認識されているかどうか確かめるには、ウェブカメラを接続した直後に journal を確認してください。以下と似たようなものが出力されるはずです:

kernel: sn9c102: V4L2 driver for SN9C10x PC Camera Controllers v1:1.24a
usb 1-1: SN9C10[12] PC Camera Controller detected (vid/pid 0x0C45/0x600D)
usb 1-1: PAS106B image sensor detected
usb 1-1: Initialization succeeded
usb 1-1: V4L2 device registered as /dev/video0
usb 1-1: Optional device control through 'sysfs' interface ready
usbcore: registered new driver sn9c102

UVC 以前のウェブカメラの中には、gspca カーネルドライバモジュールによってサポートされているものもあります。このフレームワークでサポートされているデバイスの完全ではないリストは gspca cards list を見てください。

あなたのウェブカメラがカーネルのドライバによってサポートされていない場合、外部のドライバが必要となります。まず、ウェブカメラの名前を調べます (lsusb などを使って)。次に、ウェブカメラに関する情報やリソースが載っている webcam devices を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、ブート時にそのモジュールをロードさせることができます。

ノート: ウェブカメラを操作するために使用される、Linux カーネルからユーザスペースへの API は、Video4Linux2 略して v4l2 という名前です。v4l2 に対応しているアプリケーションは全て、カーネルのドライバで動作します。

設定

輝度、色、その他のウェブカメラのパラメータを設定したい場合 (例えば、デフォルトの色が青/赤/緑っぽい場合)、様々なアプリケーションを利用できます。一部の特定のウェブカメラ (Logitech Brio や Razer Kiyo Pro など) は、HDR などの特定のオプションを設定するために特定のアプリケーションが必要かもしれません。通常、V4L の設定を行うアプリケーションで設定を変更すると、アプリケーション自体が設定をオーバーライドしない限り、そのようなカメラを使用する全てのアプリケーションに対して変更が適用されます。

コマンドライン

v4l-utils はコマンドラインツール v4l2-ctl をインストールします。すべてのビデオデバイスを一覧表示するには:

$ v4l2-ctl --list-devices

ビデオデバイスの設定可能な項目を一覧表示するには:

$ v4l2-ctl -d /dev/video0 --list-ctrls

また、cameractrls を使用することもできます:

$ cameractrls -c brightness=128

グラフィカル

汎用のグラフィカルなウェブカメラ設定ツールとしては、v4l-utilsqv4l2guvcview があります。加えて、cameractrls には cameractrlsgtk という、v4l の全オプションだけでなく Logitech Brio や Razer Kiyo Pro のカメラ固有の機能を設定できるツールが含まれています。

設定の変更を永続化する

V4L2 を通して加えられた設定は、ウェブカメラが切断されたり再接続されると破棄されます。v4l2-ctludev ルールを使って、特定のカメラが接続されるたびに設定を適用することができます。

例えば、特定の Logitech ウェブカメラに対して、それが接続されるたびにデフォルトの拡大設定を適用するには、以下のような udev ルールを追加してください:

/etc/udev/rules.d/99-logitech-default-zoom.rules
SUBSYSTEM=="video4linux", KERNEL=="video[0-9]*", ATTR{index}=="0", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0892", RUN+="/usr/bin/v4l2-ctl -d $devnode --set-ctrl=zoom_absolute=170"

上記のルールは、Logitech C920 HD Pro Webcam (ハードウェア ID 046d:0892) で有効です。

デバイスのベンダ ID とプロダクト ID は、lsusb を使って調べることができます。これらの ID は、製品ごとにユニークで、製品が新しいハードウェアリビジョンにならない限り変更されません。

プロダクト名やシリアル ID のような udev の属性を調べるには、Udev#デバイスの属性を一覧表示する を見てください (ビデオデバイスに対して固定デバイス名を設定することもできます)。

ノートパソコンの内蔵ウェブカメラを無効化する

USB で接続されているカメラだけが見えるようにするために、場合によってはノートパソコンの内蔵ウェブカメラを無効化する必要があります。udev ルールで内蔵ウェブカメラを無効化できます。 まず、lsusb を使って、デバイスのベンダ ID とプロダクト ID を手に入れる必要があります:

lsusb
Bus 001 Device 008: ID 1bcf:28c1 Sunplus Innovation Technology Inc. Integrated_Webcam_HD

次に、このデバイスが検出されたらすぐにデバイスを取り除くための udev ルールを新しく追加します:

/etc/udev/rules.d/40-disable-internal-webcam.rules
ACTION=="add", ATTR{idVendor}=="1bcf", ATTR{idProduct}=="28c1", RUN="/bin/sh -c 'echo 1 >/sys/\$devpath/remove'"

ウェブカメラを完全に無効化する

uvcvideo カーネルモジュールをブラックリスト化することで、ウェブカメラを完全に無効化できます。例えば:

/etc/modprobe.d/nowebcam.conf
blacklist uvcvideo

アプリケーション

アプリケーション一覧/マルチメディア#ウェブカメラ も見てください。

xawtv

ベーシックな Video4Linux2 デバイスビュアーです。TV チューナーカードで使うことが想定されていますが、ウェブカメラでも問題なく動作します。ウィンドウにウェブカメラの映像を表示します。

xawtvAURインストールし、以下のコマンドで実行してください:

$ xawtv -c /dev/video0

エラーが発生する場合は、#xawtv と nvidia カード を見てください。

VLC

VLC を使ってウェブカメラを表示したり記録することもできます。VLC の メディア メニューから キャプチャーデバイスを開く ダイアログを開いて、ビデオとオーディオのデバイスファイルを入力してください。もしくは、コマンドラインから例えば以下のように実行してください:

$ vlc v4l2://:input-slave=alsa://:v4l-vdev="/dev/video0"

これで VLC はウェブカメラのミラーを作ります。

  • 写真を撮影するには、Video メニューの Snapshot を選択してください。
  • 動画を記録するには、--sout 引数を追加します、例:
$ vlc v4l://:v4l-vdev="/dev/video0":v4l-adev="/dev/audio2" --sout "#transcode{vcodec=mp1v,vb=1024,scale=1,acodec=mpga,ab=192,channels=2}:duplicate{dst=std{access=file,mux=mpeg1,dst=/tmp/test.mpg}}"

デフォルトではビデオを表示しないことに注意してください。録画中のものを見るには、引数に表示先のディスプレイを追加する必要があります (ハードウェアの負担は増えます):

... :duplicate{dst=display,dst=std{access= ....
ノート: VLC がウェブカメラを検出しない場合は、zvbi パッケージがインストールされていることを確認してください。

MPlayer

MPlayer を使ってウェブカメラのスナップショットを撮るには、ターミナルから次のコマンドを実行します:

$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot

ここから s を押すことでスナップショットが作られます。スナップショットはあなたのカレントフォルダに shotXXXX.png と保存されます。 連続動画を記録したい場合:

$ mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:adevice=/dev/dsp -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o filename.avi

Ctrl+c を押せば録画が終了します。

デフォルト (ほとんどの場合 YUYV) の代わりに MJPEG をピクセル形式として使って MPlayer で動画を再生するには、以下を実行することで可能です:

$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:outfmt=mjpeg -fps 15

mpv

mpv を使ってウェブカメラの画像を取得するにはターミナルから以下のコマンドを実行:

$ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed

s を押すことでスナップショットが取得されます。スナップショットはカレントフォルダに mpv-shotNNNN.jpg という名前で保存されます。

デフォルト (ほとんどの場合 YUYV) の代わりに MJPEG をピクセル形式として使って MPlayer で動画を再生するには、以下を実行することで可能です:

$ mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0

こうすることで、品質とパフォーマンスが劇的に向上することがあります (例えば 5FPS -> 30FPS)。

ウェブカメラの設定を調整するには (解像度など)、mpv のドキュメント を見てください。

FFmpeg

例は v4l2loopback#使用例 を参照してください。v4l2 デバイスへビデオを出力するために FFmpeg が使用されています。これは、ウェブカメラとしても使用できます。

ウェブカメラの無いノートパソコンの場合、droidcam の代替として IP カメラを使用できます。こうすることで、追加のウェブカメラデバイスがかさばることはありません。Android の場合、IP ウェブカメラのようなものを携帯電話でホストし、ノートパソコンのビデオ入力として IP カメラを使用できます。まず、linux-headersv4l2loopback-dkms をインストールしてください。次に、v4l2loopback を使ってビデオソースに v4l2loopback として接続してください、携帯電話の IP アドレスが 192.168.1.xxx であるとすると:

# modprobe v4l2loopback exclusive_caps=1
$ ffmpeg -i http://192.168.1.xxx:8080/video -vf format=yuv420p -f v4l2 /dev/video0
ノート: exclusive_caps=1 は、一部の Chrome/WebRTC アプリケーションでビデオ入力が利用できない問題を解決します [1]

トラブルシューティング

V4L1 サポート

Linux カーネルのバージョン 2.6.27 で、レガシーな Video4Linux (1) API のサポートが打ち切られました。Video4Linux バージョン 2 はカーネルスペースでのデコードをサポートしていないため、ピクセル形式のデコードはユーザスペースで行うようになりました。libv4l ライブラリは、ユーザランドのアプリケーションにピクセルデコードサービスを提供し、ほとんどのプログラムで使用されるようになるでしょう。他の互換レイヤも利用可能です。

デバイスファイルが作成されたが、画像がおかしい場合 (例えば、ほぼ完全に緑になっている)、おそらく以下のことを行う必要があります。

アプリケーションが V4L2 に対応しているが、ピクセル形式に対応していない場合、以下のコマンドを使ってください:

LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so application

アプリケーションが古いバージョンの V4L にしか対応していない場合、以下のコマンドを使ってください:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so application
ヒント: 上記の長いコマンドを毎回入力する手間を省くために、以下のような行を /etc/profilexprofile に追加することができます: export LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so あるいは export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

32ビットの multilib アプリケーションの場合は、lib32-v4l-utils パッケージをインストールして、上記のコマンドの /usr/lib/libv4l/ の部分を /usr/lib32/libv4l/ に置き換えてください。

xawtv と nvidia カード

nvidia のグラフィックカードを使用していて、以下のようなエラーが発生する場合:

X Error of failed request:  XF86DGANoDirectVideoMode
 Major opcode of failed request:  139 (XFree86-DGA)
 Minor opcode of failed request:  1 (XF86DGAGetVideoLL)
 Serial number of failed request:  69
 Current serial number in output stream:  69

xawtv を $ xawtv -nodga として実行する必要があります。

Microsoft Lifecam Studio/Cinema

特定の設定下で、Microsoft lifecam studio/cinema は過大な usb 帯域を要求して失敗します、Uvcvideo FAQ を見て下さい。この場合、uvcvideo ドライバーを quirks=0x80 でロードしてください。以下を /etc/modprobe.d/uvcvideo.conf に追加します:

/etc/modprobe.d/uvcvideo.conf
## fix bandwidth issue for lifecam studio/cinema
options uvcvideo quirks=0x80
ノート: ログで遅延が確認できたり、カメラが断続的に動作する場合、上記の方法で解決できます。quirks=0x100 のように大きな値を使うことも可能です。

Skype

ウェブカメラをテストする際は、以下のことに注意してください:

  • echobot は videochat をサポートしていません。ウェブカメラをテストするために使用しないでください。
  • Skype は異なるビデオデバイス/カメラデバイス (/dev/video*) を認識するかもしれません。これらのデバイスは、カメラの設定画面のドロップダウンメニューで "integrated camera..." のようにリストアップされます。それぞれのカメラを試し、数秒間待ってください (別のカメラに切り替えるのに時間がかかるからです)。

USB ウェブカメラにより使用されている帯域幅を確認する

ひとつの USB バスで複数のウェブカメラを使用した場合、USB バスの帯域幅が足りずにウェブカメラが機能しなくなることがあります。usbtopAUR パッケージの usbtop ツールで問題を診断できます。

ビデオストリームを反転させる

ビデオストリームが反転している場合、反転しているビデオをさらに反転させる仮想ビデオカメラを作成することができます。v4l-utilsv4l2loopback-dkmsインストールする必要があります。仮想ビデオカメラを作成してください:

# modprobe v4l2loopback

新しく作成したカメラの名前を確認してください:

$ v4l2-ctl --list-devices
Dummy video device (0x0000) (platform:v4l2loopback-000):
   	/dev/video1

これで、ffmpeg を実行して、実際のウェブカメラ (ここでは /dev/video0) からビデオを読み出し、それを反転させて、仮想カメラに書き込むことができます:

$ ffmpeg -f v4l2 -i /dev/video0 -vf "vflip" -f v4l2 /dev/video1

ここで、vflip はビデオストリームを垂直方向に反転させます。水平方向に反転させるには hflip を使用してください。

エラーを避けるために、format 引数 yuv420p が必要かもしれません。そうしないと、ビデオストリームを取得できず、黒画面が表示されるかもしれません [2]。言い換えると:

$ ffmpeg -f v4l2 -i /dev/video0 -vf "hflip,format=yuv420p" -f v4l2 /dev/video1

これで、アプリケーションで "Integrated" カメラの代わりに "Dummy" カメラを使えるようになります。

画像の品質が悪い

画像が明るすぎたり、暗すぎたり、露出が高すぎたりする場合、v4l2ucpAUR をインストールして画像出力を調整できます。

Logitech Quickcam Pro 9000

オートフォーカス制御を有効化するために libwebcam-gitAURインストールしてください。インストール後、カメラを一旦切断し、その後接続し直して、新しく追加された udev ルールをトリガーしてください。

翻訳ステータス: このページは en:Webcam setup の翻訳バージョンです。最後の翻訳日は 2023-06-29 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。