「ウェブカメラ設定」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) 細 (→linux-uvc) |
細 (リンクを修正) |
||
(6人の利用者による、間の35版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:イメージング]] |
+ | [[Category:デジタルイメージング]] |
+ | [[Category:入力デバイス]] |
||
− | [[en:Webcam Setup]] |
||
+ | [[en:Webcam setup]] |
||
[[es:Webcam setup]] |
[[es:Webcam setup]] |
||
− | [[ |
+ | [[zh-hans:Webcam setup]] |
+ | こちらはウェブカメラを設定するガイドです。 |
||
− | [[zh-CN:Webcam Setup]] |
||
− | こちらは Arch Linux でウェブカメラを設定するガイドです。 |
||
+ | ほとんどの場合、ウェブカメラは何も設定しなくても動作します。ビデオデバイス (例えば {{ic|/dev/video0}}) へのアクセスの許可は [[udev]] により管理されており、追加の設定は必要ありません。 |
||
− | == Linux のウェブカメラサポート == |
||
+ | == ロード == |
||
− | ほとんどの場合ウェブカメラは何も設定しなくても動作します。その場合、色調や明るさなどのパラメータを設定したいなら、[[#ウェブカメラ設定|ウェブカメラ設定]]のセクションまでスキップできます。ウェブカメラが自動で動作しない場合は以下の手順に従って下さい。 |
||
+ | 最近のほとんどのウェブカメラは UVC (''USB Video Class'') に対応しており、汎用の ''uvcvideo'' カーネルドライバモジュールによりサポートされています。あなたのウェブカメラが認識されているかどうか確かめるには、ウェブカメラを接続した直後に [[journal]] を確認してください。以下と似たようなものが出力されるはずです: |
||
− | == ウェブカメラを確認する == |
||
+ | {{bc| |
||
− | ({{Ic|lsusb}} などを使って) ウェブカメラの名前を確認して適切なドライバーを探して下さい。以下はウェブカメラと、ウェブカメラが動作するドライバーのリストです。モジュールのコンパイルに関する情報などはデバイスの名前の右のリンクをクリックしてください。ウェブカメラを動作させることができたら、このリストにあなたの使ったドライバーとウェブカメラの名前を追加してください! |
||
+ | 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'' カーネルドライバモジュールによってサポートされているものもあります。このフレームワークでサポートされているデバイスの完全ではないリストは [https://docs.kernel.org/admin-guide/media/gspca-cardlist.html gspca cards list] を見てください。 |
||
− | === pwc === |
||
+ | あなたのウェブカメラがカーネルのドライバによってサポートされていない場合、外部のドライバが必要となります。まず、ウェブカメラの名前を調べます ({{ic|lsusb}} などを使って)。次に、ウェブカメラに関する情報やリソースが載っている [https://www.linuxtv.org/wiki/index.php/Webcam_devices webcam devices] を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、[[カーネルモジュール#モジュールの自動ロード|ブート時にそのモジュールをロード]]させることができます。 |
||
− | * Creative Labs Webcam Pro Ex |
||
− | * Logitech QuickCam Notebook Pro (only the "Pro" models) |
||
− | * Logitech Quickcam Pro 4000 |
||
− | * Philips ToUCams (not confirmed at the moment, but it is using the pwc driver if I remember correctly) |
||
− | * Philips SPC900NC |
||
+ | {{Note|ウェブカメラを操作するために使用される、Linux カーネルからユーザスペースへの API は、''Video4Linux2'' 略して '''v4l2''' という名前です。v4l2 に対応しているアプリケーションは全て、カーネルのドライバで動作します。}} |
||
− | === qc-usb === |
||
+ | == 設定 == |
||
− | * Dexxa Webcam |
||
− | * Labtec Webcam (old model) |
||
− | * LegoCam |
||
− | * Logitech Quickcam Express (old model) |
||
− | * Logitech QuickCam Notebook (not the "Pro" models) |
||
− | * Logitech Quickcam Web |
||
+ | 輝度、色、その他のウェブカメラのパラメータを設定したい場合 (例えば、デフォルトの色が青/赤/緑っぽい場合)、様々なアプリケーションを利用できます。一部の特定のウェブカメラ (Logitech Brio や Razer Kiyo Pro など) は、HDR などの特定のオプションを設定するために特定のアプリケーションが必要かもしれません。通常、V4L の設定を行うアプリケーションで設定を変更すると、アプリケーション自体が設定をオーバーライドしない限り、そのようなカメラを使用する全てのアプリケーションに対して変更が適用されます。 |
||
− | === qc-usb-messenger === |
||
+ | === コマンドライン === |
||
− | * Logitech Quickcam Messenger |
||
− | * Logitech Quickcam Communicate (for Communicate MP/S5500 or "for Business" see the linux-uvc section below) |
||
+ | {{Pkg|v4l-utils}} はコマンドラインツール {{ic|v4l2-ctl}} をインストールします。すべてのビデオデバイスを一覧表示するには: |
||
− | 現在 community リポジトリに入っています。 |
||
+ | $ v4l2-ctl --list-devices |
||
− | {{Note| |
||
− | * qc-usb-messenger が動作しない場合は、gspcav1 パッケージをインストールして gspca モジュールを使って下さい。 |
||
− | * 現在このドライバーはカーネル 2.6.27 に含まれているモジュールです。 |
||
− | }} |
||
+ | ビデオデバイスの設定可能な項目を一覧表示するには: |
||
− | === zr364xx === |
||
+ | $ v4l2-ctl -d /dev/video0 --list-ctrls |
||
− | このドライバーは多数のウェブカメラで使用できます: |
||
− | * Aiptek PocketDV 3300 |
||
− | * Creative PC-CAM 880 |
||
− | * Konica Revio 2 |
||
− | * Genius Digital Camera |
||
− | * Maxell Maxcam PRO DV3 |
||
− | サポートされているデバイスの完全なリストは [http://royale.zerezo.com/zr364xx/ こちら] で見れます。このドライバーの PKGBUILD が [[Arch User Repository|AUR]] にあります。 |
||
+ | また、{{Pkg|cameractrls}} を使用することもできます: |
||
− | === sn9c102 === |
||
+ | $ cameractrls -c brightness=128 |
||
− | * Trust Spacecam シリーズ |
||
− | * Maxell Smartcam (ノートパソコン用): 352x288 max. resolution @ 3fps |
||
− | === |
+ | === グラフィカル === |
+ | 汎用のグラフィカルなウェブカメラ設定ツールとしては、{{Pkg|v4l-utils}} の {{ic|qv4l2}} や {{Pkg|guvcview}} があります。加えて、{{Pkg|cameractrls}} には {{ic|cameractrlsgtk}} という、v4l の全オプションだけでなく Logitech Brio や Razer Kiyo Pro のカメラ固有の機能を設定できるツールが含まれています。 |
||
− | サポートされているウェブカメラの完全なリストは [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/video4linux/gspca.txt;hb=HEAD こちら] です。 |
||
+ | === 設定の変更を永続化する === |
||
− | {{Note|このドライバーは V4L1 をサポートしていません。}} |
||
+ | V4L2 を通して加えられた設定は、ウェブカメラが切断されたり再接続されると破棄されます。{{ic|v4l2-ctl}} と [[udev]] ルールを使って、特定のカメラが接続されるたびに設定を適用することができます。 |
||
− | === stv680 === |
||
+ | 例えば、特定の Logitech ウェブカメラに対して、それが接続されるたびにデフォルトの拡大設定を適用するには、以下のような [[Udev#udev ルールの例|udev ルール]]を追加してください: |
||
− | ここ数年アジアで作られた安いノーブランドのカメラはほとんど stv680 チップセットを使っています。こういったカメラは多くがノベルティグッズです (Pencam, SpyC@m, LegoCam)。 |
||
− | * Aiptek PenCam シリーズ |
||
− | * Digitaldream シリーズ |
||
− | * Dolphin Peripherals シリーズ |
||
− | * Lego LegoCam |
||
− | * Trust SpyC@m シリーズ |
||
− | * Welback Coolcam |
||
+ | {{hc|/etc/udev/rules.d/99-logitech-default-zoom.rules|2= |
||
− | stv680 チップセットを使用するウェブカメラの完全なリストは [http://webcam-osx.sourceforge.net/cameras/index.php?orderBy=controller こちら] から見れます。 |
||
+ | 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) で有効です。 |
||
− | === linux-uvc === |
||
+ | デバイスのベンダ ID とプロダクト ID は、{{ic|lsusb}} を使って調べることができます。これらの ID は、製品ごとにユニークで、製品が新しいハードウェアリビジョンにならない限り変更されません。 |
||
− | * 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 or "for Business" |
||
− | * Chicony Electronics CNF7051 |
||
− | * === linux-uvc === |
||
+ | プロダクト名やシリアル ID のような udev の属性を調べるには、[[Udev#デバイスの属性を一覧表示する]] を見てください ([[Udev#固定デバイス名を設定する|ビデオデバイスに対して固定デバイス名]]を設定することもできます)。 |
||
− | * 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 or "for Business" |
||
− | * Chicony Electronics CNF7051Lite-On Technology Corp. USB webcam |
||
− | * |
||
− | === 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 or "for Business" |
||
− | * Chicony Electronics CNF7051Lite-On Technology Corp. USB webcam |
||
− | * === linux-uvc === |
||
+ | USB で接続されているカメラだけが見えるようにするために、場合によってはノートパソコンの内蔵ウェブカメラを無効化する必要があります。udev ルールで内蔵ウェブカメラを無効化できます。 |
||
− | * Genius iLook 1321 |
||
+ | まず、{{ic|lsusb}} を使って、デバイスのベンダ ID とプロダクト ID を手に入れる必要があります: |
||
− | * 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 or "for Business" |
||
− | * Chicony Electronics CNF7051Lite-On Technology Corp. USB webcam |
||
− | * === linux-uvc === |
||
+ | {{hc|lsusb|2= |
||
− | * Genius iLook 1321 |
||
+ | Bus 001 Device 008: ID 1bcf:28c1 Sunplus Innovation Technology Inc. Integrated_Webcam_HD |
||
− | * 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 or "for Business" |
||
− | * Chicony Electronics CNF7051Lite-On Technology Corp. USB webcam |
||
− | * Lite-On Technology Corp. USB webcam |
||
+ | 次に、このデバイスが検出されたらすぐにデバイスを取り除くための udev ルールを新しく追加します: |
||
− | サポートされている UVC デバイスの完全なリストは [http://www.ideasonboard.org/uvc/ こちら] で見れます。 |
||
+ | {{hc|/etc/udev/rules.d/40-disable-internal-webcam.rules|2= |
||
− | カーネル 2.6.26 から linux-uvc はカーネルに含まれています。uvcvideo モジュールをロードしてください。 |
||
+ | ACTION=="add", ATTR{idVendor}=="1bcf", ATTR{idProduct}=="28c1", RUN="/bin/sh -c 'echo 1 >/sys/\$devpath/remove'" |
||
+ | }} |
||
+ | === ウェブカメラを完全に無効化する === |
||
− | {{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}} }} |
||
+ | {{ic|uvcvideo}} カーネルモジュールを[[カーネルモジュール#ブラックリスト|ブラックリスト化]]することで、ウェブカメラを完全に無効化できます。例えば: |
||
+ | {{hc|/etc/modprobe.d/nowebcam.conf| |
||
− | サポートされている UVC デバイスの完全なリストは [http://www.ideasonboard.org/uvc/ こちら] で見れます。 |
||
+ | blacklist uvcvideo |
||
+ | }} |
||
+ | == アプリケーション == |
||
− | カーネル 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}} }} |
||
+ | === xawtv === |
||
+ | ベーシックな ''Video4Linux2'' デバイスビュアーです。TV チューナーカードで使うことが想定されていますが、ウェブカメラでも問題なく動作します。ウィンドウにウェブカメラの映像を表示します。 |
||
− | サポートされている UVC デバイスの完全なリストは [http://www.ideasonboard.org/uvc/ こちら] で見れます。 |
||
+ | {{AUR|xawtv}} を[[インストール]]し、以下のコマンドで実行してください: |
||
− | カーネル 2.6.26 から linux-uvc はカーネルに含まれています。uvcvideo モジュールをロードしてください。 |
||
+ | $ xawtv -c /dev/video0 |
||
+ | エラーが発生する場合は、[[#xawtv と nvidia カード]] を見てください。 |
||
− | {{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}} }} |
||
+ | === VLC === |
||
− | サポートされている UVC デバイスの完全なリストは [http://www.ideasonboard.org/uvc/ こちら] で見れます。 |
||
+ | [[VLC]] を使ってウェブカメラを表示したり記録することもできます。VLC の ''メディア'' メニューから ''キャプチャーデバイスを開く'' ダイアログを開いて、ビデオとオーディオのデバイスファイルを入力してください。もしくは、コマンドラインから例えば以下のように実行してください: |
||
− | カーネル 2.6.26 から linux-uvc はカーネルに含まれています。uvcvideo モジュールをロードしてください。 |
||
+ | $ vlc v4l2://:input-slave=alsa://:v4l-vdev="/dev/video0" |
||
+ | これで 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| |
||
+ | ... :duplicate{'''dst=display''',dst=std{access= .... |
||
− | * このドライバーは 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}} }} |
||
+ | {{Note|VLC がウェブカメラを検出しない場合は、{{Pkg|zvbi}} パッケージがインストールされていることを確認してください。}} |
||
+ | === MPlayer === |
||
− | サポートされている UVC デバイスの完全なリストは [http://www.ideasonboard.org/uvc/ こちら] で見れます。 |
||
+ | [[MPlayer]] を使ってウェブカメラのスナップショットを撮るには、ターミナルから次のコマンドを実行します: |
||
− | カーネル 2.6.26 から linux-uvc はカーネルに含まれています。uvcvideo モジュールをロードしてください。 |
||
+ | $ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot |
||
+ | ここから {{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 |
||
+ | {{ic|Ctrl+c}} を押せば録画が終了します。 |
||
+ | デフォルト (ほとんどの場合 YUYV) の代わりに MJPEG をピクセル形式として使って [[MPlayer]] で動画を再生するには、以下を実行することで可能です: |
||
− | {{Note| |
||
+ | $ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:outfmt=mjpeg -fps 15 |
||
− | * このドライバーは 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}} }} |
||
− | === |
+ | === mpv === |
+ | [[mpv]] を使ってウェブカメラの画像を取得するにはターミナルから以下のコマンドを実行: |
||
− | * Sony EyeToy |
||
+ | $ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed |
||
− | * 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 |
||
+ | {{ic|s}} を押すことでスナップショットが取得されます。スナップショットはカレントフォルダに {{ic|mpv-shot''NNNN''.jpg}} という名前で保存されます。 |
||
− | これは AUR にあるカーネルモジュールでオリジナルのドライバーに jpeg の復元が追加されています。 |
||
+ | デフォルト (ほとんどの場合 YUYV) の代わりに MJPEG をピクセル形式として使って [[MPlayer]] で動画を再生するには、以下を実行することで可能です: |
||
− | "Creative Live! Cam Vista IM" を Skype で使うには、次の行を {{ic|/etc/modprobe.d/modprobe.conf}} に追加する必要があります: |
||
+ | $ mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0 |
||
− | options ov51x-jpeg forceblock=1 |
||
+ | こうすることで、品質とパフォーマンスが劇的に向上することがあります (例えば 5FPS -> 30FPS)。 |
||
− | === r5u870 (Ricoh) === |
||
+ | ウェブカメラの設定を調整するには (解像度など)、[https://github.com/mpv-player/mpv/wiki/Video4Linux2-Input mpv のドキュメント] を見てください。 |
||
− | * HP Pavilion Webcam |
||
− | * HP Webcam 1000 |
||
− | * Sony VAIO VGP-VCCx |
||
+ | === FFmpeg === |
||
− | Ricoh ウェブカメラは新しい Sony のノートパソコンでよく使われています。 |
||
+ | 例は [[v4l2loopback#使用例]] を参照してください。v4l2 デバイスへビデオを出力するために FFmpeg が使用されています。これは、ウェブカメラとしても使用できます。 |
||
− | {{AUR|r5u87x-hg}} (ファームウェアも入っています) をインストールして {{ic|loader}} コマンドを実行してください。 |
||
+ | ウェブカメラの無いノートパソコンの場合、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}} であるとすると: |
||
− | === stk11xx (Syntek) === |
||
+ | # modprobe v4l2loopback exclusive_caps=1 |
||
− | * Asus のノートパソコンに搭載された内蔵カメラ |
||
+ | $ ffmpeg -i <nowiki>http://192.168.1.</nowiki>''xxx'':8080/video -vf format=yuv420p -f v4l2 /dev/video0 |
||
− | * Asus A8J, F3S, F5R, F5GL, F9E, VX2S, V1S, A6T |
||
+ | {{Note|{{ic|1=exclusive_caps=1}} は、一部の Chrome/WebRTC アプリケーションでビデオ入力が利用できない問題を解決します [https://github.com/umlaeute/v4l2loopback#options]。}} |
||
− | {{AUR|stk11xx}} AUR パッケージをインストールしてください。適切なカーネルモジュールが含まれています。 |
||
+ | == トラブルシューティング == |
||
− | == ウェブカメラのモジュールがロードされているか確認する == |
||
+ | === V4L1 サポート === |
||
− | あなたの使っているウェブカメラの[[カーネルモジュール#ロード|モジュール]]を {{ic|/etc/modules-load.d/webcam.conf}} に追加すればブートストラップの初期化段階でカーネルにロードされるようになります。 |
||
+ | Linux カーネルのバージョン 2.6.27 で、レガシーな Video4Linux (1) API のサポートが打ち切られました。Video4Linux バージョン 2 はカーネルスペースでのデコードをサポートしていないため、ピクセル形式のデコードはユーザスペースで行うようになりました。libv4l ライブラリは、ユーザランドのアプリケーションにピクセルデコードサービスを提供し、ほとんどのプログラムで使用されるようになるでしょう。他の互換レイヤも利用可能です。 |
||
− | ウェブカメラが 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>}} |
||
+ | アプリケーションが V4L2 に対応しているが、ピクセル形式に対応していない場合、以下のコマンドを使ってください: |
||
− | == パーミッション == |
||
+ | LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so application |
||
+ | アプリケーションが古いバージョンの V4L にしか対応していない場合、以下のコマンドを使ってください: |
||
− | ビデオデバイス (例: {{ic|/dev/video0}}) にアクセスするパーミッションは [[udev|udev]] によって管理されるので、設定は必要ありません。 |
||
+ | LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so application |
||
+ | {{Tip|1=上記の長いコマンドを毎回入力する手間を省くために、以下のような行を {{ic|/etc/profile}} か [[xprofile]] に追加することができます: {{ic|1=export LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so}} あるいは {{ic|1=export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so}}}} |
||
− | == ウェブカメラ設定 == |
||
+ | 32ビットの [[multilib]] アプリケーションの場合は、{{Pkg|lib32-v4l-utils}} パッケージを[[インストール]]して、上記のコマンドの {{ic|/usr/lib/libv4l/}} の部分を {{ic|/usr/lib32/libv4l/}} に置き換えてください。 |
||
− | 明るさや色調などのウェブカメラのパラメータを設定したい場合 (例: デフォルトの色調が青・赤・緑みがかっているなど)、[[公式リポジトリ]]に {{Pkg|guvcview}} パッケージとして存在する [http://guvcview.berlios.de/ GTK+ UVC Viewer] (guvcview) を使うことができます。インストールして起動すれば、調整できる設定のリストが表示されます。設定を変更すると全てのアプリケーションに影響があります (例: Skype)。 |
||
+ | === xawtv と nvidia カード === |
||
− | == ソフトウェアでウェブカメラを使う == |
||
+ | nvidia のグラフィックカードを使用していて、以下のようなエラーが発生する場合: |
||
− | Linux カーネルのバージョン 2.6.27 は [http://mxhaard.free.fr/spca5xx.html 多数の新しいウェブカメラドライバー] をサポートしています。レガシーな Video4Linux API は廃止され、現在これらのドライバーは Video4Linux バージョン 2 のみをサポートしています。Video4Linux バージョン 2 からピクセル形式のデコードはユーザースペースに移り、カーネルスペースでのデコードはサポートしていません。libv4l ライブラリがピクセスデコードサービスのユーザーランドアプリケーションを提供しており、多くのプログラムで使用されます。他の互換レイヤーも利用可能です。 |
||
+ | 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 を {{ic|$ xawtv -nodga}} として実行する必要があります。 |
||
+ | === Microsoft Lifecam Studio/Cinema === |
||
− | '''デバイスが作成されたが画像がおかしい場合 (完全に緑など)、以下の設定が必要かもしれません。''' |
||
+ | 特定の設定下で、Microsoft lifecam studio/cinema は過大な usb 帯域を要求して失敗します、[https://www.ideasonboard.org/uvc/#footnote-13 Uvcvideo FAQ] を見て下さい。この場合、{{ic|uvcvideo}} ドライバーを {{ic|1=quirks=0x80}} でロードしてください。以下を {{ic|/etc/modprobe.d/uvcvideo.conf}} に追加します: |
||
− | アプリケーションが V4L2 をサポートしているがピクセル形式をサポートしていない場合 (例: cheese) 次のコマンドを使って下さい: |
||
− | LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so cheese |
||
+ | {{hc|1=/etc/modprobe.d/uvcvideo.conf|2= |
||
− | アプリケーションが V4L の古いバージョンしかサポートしていない場合 (Skype がこの種のソフトウェアで一番有名です) 次のコマンドを使って下さい: |
||
+ | ## fix bandwidth issue for lifecam studio/cinema |
||
− | LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype |
||
+ | options uvcvideo quirks=0x80 |
||
− | |||
− | {{Tip|1=以下のような行を {{ic|/etc/profile}} や [[xprofile|xprofile]] に追加することで長いコマンドを毎回入力する手間が省けます: |
||
− | {{bc|1=export LD_PRELOAD=/usr/'$LIB'/libv4l/v4l2convert.so}} |
||
− | または: |
||
− | {{bc|1=export LD_PRELOAD=/usr/'$LIB'/libv4l/v4l1compat.so}} |
||
}} |
}} |
||
+ | {{Note|ログで遅延が確認できたり、カメラが断続的に動作する場合、上記の方法で解決できます。{{ic|1=quirks=0x100}} のように大きな値を使うことも可能です。}} |
||
− | Arch64 で32ビットのアプリケーションを使う場合 (例: Skype)、{{Pkg|lib32-v4l-utils}} パッケージをインストールして下さい。 |
||
+ | === Skype === |
||
− | ウェブカメラが guvcview で問題なく動くのに、Skype で動かない場合、起動する前に次も設定する必要があるかもしれません: |
||
− | export XLIB_SKIP_ARGB_VISUALS=1 |
||
+ | ウェブカメラをテストする際は、以下のことに注意してください: |
||
− | === Cheese === |
||
+ | * echobot は videochat をサポートしていません。ウェブカメラをテストするために使用しないでください。 |
||
+ | * Skype は異なるビデオデバイス/カメラデバイス (/dev/video*) を認識するかもしれません。これらのデバイスは、カメラの設定画面のドロップダウンメニューで "integrated camera..." のようにリストアップされます。それぞれのカメラを試し、数秒間待ってください (別のカメラに切り替えるのに時間がかかるからです)。 |
||
+ | === USB ウェブカメラにより使用されている帯域幅を確認する === |
||
− | Cheese は GNOME の静画・動画トーククライアントです。Mac OS X の Photo Booth に似ています。公式リポジトリからインストール可能です。 |
||
+ | ひとつの USB バスで複数のウェブカメラを使用した場合、USB バスの帯域幅が足りずにウェブカメラが機能しなくなることがあります。{{AUR|usbtop}} パッケージの ''usbtop'' ツールで問題を診断できます。 |
||
− | 以下のようなエラーが表示される場合: |
||
+ | === ビデオストリームを反転させる === |
||
− | Error during camera setup: One or more needed GStreamer elements are missing: cluttervideosink. |
||
+ | ビデオストリームが反転している場合、反転しているビデオをさらに反転させる仮想ビデオカメラを作成することができます。{{Pkg|v4l-utils}} と {{Pkg|v4l2loopback-dkms}} を[[インストール]]する必要があります。仮想ビデオカメラを作成してください: |
||
− | cheese を終了して、以下のコマンドを実行してください: |
||
+ | # modprobe v4l2loopback |
||
− | # pacman -R clutter-gst |
||
− | $ rm -r ~/.cache/gstreamer-1.0/ |
||
− | + | 新しく作成したカメラの名前を確認してください: |
|
+ | $ v4l2-ctl --list-devices |
||
− | === fswebcam === |
||
+ | Dummy video device (0x0000) (platform:v4l2loopback-000): |
||
+ | /dev/video1 |
||
+ | これで、{{Pkg|ffmpeg}} を実行して、実際のウェブカメラ (ここでは {{ic|/dev/video0}}) からビデオを読み出し、それを反転させて、仮想カメラに書き込むことができます: |
||
− | fswebcam は軽量で柔軟性のあるウェブカメラアプリで、コマンドラインから起動することができます。[[公式リポジトリ]]の {{Pkg|fswebcam}} パッケージでインストールしてください。 |
||
+ | $ ffmpeg -f v4l2 -i /dev/video0 -vf "vflip" -f v4l2 /dev/video1 |
||
− | === GTK+ UVC Viewer (guvcview) === |
||
+ | ここで、{{ic|vflip}} はビデオストリームを垂直方向に反転させます。水平方向に反転させるには {{ic|hflip}} を使用してください。 |
||
− | ウェブカメラの設定ができる便利なソフトウェアというだけでなく、[http://guvcview.sourceforge.net/ guvcview] は Linux UVC ドライバーがサポートしているデバイスから動画をキャプチャ(音付きで!)・表示することもできます。{{Pkg|guvcview}} パッケージとして[[公式リポジトリ]]から利用可能です。 |
||
+ | エラーを避けるために、format 引数 {{ic|yuv420p}} が必要かもしれません。そうしないと、ビデオストリームを取得できず、黒画面が表示されるかもしれません [https://stackoverflow.com/questions/61485726/ffmpeg-flip-horizontally-webcam-to-virtual-video-camera/63943783#63943783]。言い換えると: |
||
− | === Kopete === |
||
+ | $ ffmpeg -f v4l2 -i /dev/video0 -vf "hflip,format=yuv420p" -f v4l2 /dev/video1 |
||
− | Kopete は [[KDE|KDE]] のインスタントメッセージ (IM) クライアントです。KDE 3.5 では、MSN と Yahoo! ウェブカメラをサポートしていますが、全てのウェブカメラが動くわけではありません。kdenetwork パッケージに含まれています。 |
||
+ | これで、アプリケーションで "Integrated" カメラの代わりに "Dummy" カメラを使えるようになります。 |
||
− | === Kamoso === |
||
+ | === 画像の品質が悪い === |
||
− | ウェブカメラから写真や動画を撮影する KDE のアプリケーション。AUR で利用可能です: |
||
+ | 画像が明るすぎたり、暗すぎたり、露出が高すぎたりする場合、{{AUR|v4l2ucp}} をインストールして画像出力を調整できます。 |
||
− | * KDE4: {{AUR|kamoso}} |
||
− | * KDE Plasma 5: {{AUR|kamoso-git}} |
||
− | === |
+ | === Logitech Quickcam Pro 9000 === |
+ | オートフォーカス制御を有効化するために {{AUR|libwebcam-git}} を[[インストール]]してください。インストール後、カメラを一旦切断し、その後接続し直して、新しく追加された [[udev ルール]]をトリガーしてください。 |
||
− | これは 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 |
||
+ | {{TranslationStatus|Webcam setup|2023-06-29|781822}} |
||
− | === VLC === |
||
− | |||
− | [[VLC media player|VLC]] を使ってウェブカメラを表示したり記録することもできます。VLC のファイルメニューで、'Capture Device...' ダイアログを開いて動画と音声のデバイスファイルを入力してください。もしくはコマンドラインから次を実行します: |
||
− | $ 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}}" |
||
− | |||
− | (Obviously a bit overkill with regard to the bit rates but it is fine for testing purposes.) Notice that this will not produce a mirror on the display - in order to see what you are recording, you would need to add the display as a destination to the argument: |
||
− | ... :duplicate{dst=display,dst=std{access= .... |
||
− | (Though this can tax older hardware somewhat...) |
||
− | |||
− | === MPlayer === |
||
− | |||
− | [[MPlayer|MPlayer]] を使ってウェブカメラのスナップショットを撮るにはターミナルから次のコマンドを実行します: |
||
− | $ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot |
||
− | ここから {{ic|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 |
||
− | {{ic|Ctrl+c}} を押せば録画が終了します。 |
||
− | |||
− | === FFmpeg === |
||
− | |||
− | [[FFmpeg#ウェブカメラの録画]] を見て下さい。 |
||
− | |||
− | === ekiga === |
||
− | |||
− | Microsoft NetMeeting にとてもよく似ています。 |
||
− | 公式リポジトリから {{pkg|ekiga}} パッケージをインストールして下さい。 |
||
− | 設定は自分で行なって下さい。 |
||
− | |||
− | === Sonic-snap === |
||
− | |||
− | Sonic-snap [http://www.stolk.org/sonic-snap/] は sn9c102 ベースのウェブカメラ'''専用'''のビューア・レコーダです。 |
||
− | {{AUR|sonic-snap}} は AUR から入手可能です。 |
||
− | |||
− | === Skype === |
||
− | |||
− | [[Skype|Skype]] の最新版は動画をサポートしています。オプションのビデオデバイスを確認してください、テスト画像をダブルクリックすることでフルスクリーンにできます。{{pkg|skype}} パッケージをインストールして下さい。 |
||
− | skype で緑の画像が表示される場合は上の[[#ソフトウェアでウェブカメラを使う|ソフトウェアでウェブカメラを使う]]セクションを見て下さい。 |
||
− | |||
− | x86-64 を使っている場合は {{Pkg|lib32-v4l-utils}} をインストールして次のコマンドで skype を起動してください: |
||
− | LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype |
||
− | You can either set an alias for skype, or rename the original skype binary in {{ic|/usr/bin}} and create a text file containing the above option, or you can simply adjust the Command line in the options for the Skype icon in your favourite desktop environment. |
||
− | |||
− | === Motion === |
||
− | |||
− | :''Motion はカメラからのビデオ信号を監視するプログラムです。映像の一部が変わったのを検出することが可能で、言い換えれば、動き検出が可能です。'' |
||
− | |||
− | {{Pkg|motion}} は v4l2 デバイスしか処理できないため v4l1 ドライバーしかないカメラを使う時は前述の通りに v4l1compat.so をプリロードする必要があります。そうしないと motion が適切なパレットを見つけられないというエラーが起こります。 |
||
− | |||
− | == トラブルシューティング == |
||
− | |||
− | === Microsoft Lifecam Studio/Cinema=== |
||
− | 特定の設定下で、Microsoft lifecam studio/cinema は過大な usb 帯域を要求して失敗します、[http://www.ideasonboard.org/uvc/#footnote-13 Uvcvideo FAQ] を見て下さい。この場合、{{ic|uvcvideo}} ドライバーを {{ic|quirks<nowiki>=</nowiki>0x80}} でロードしてください。以下を {{ic|/etc/modprobe.d/uvcvideo.conf}} に追加します: |
||
− | {{hc|/etc/modprobe.d/uvcvideo.conf|<nowiki> |
||
− | ## fix bandwidth issue for lifecam studio/cinema |
||
− | options uvcvideo quirks=0x80 |
||
− | </nowiki>}} |
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 を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、ブート時にそのモジュールをロードさせることができます。
設定
輝度、色、その他のウェブカメラのパラメータを設定したい場合 (例えば、デフォルトの色が青/赤/緑っぽい場合)、様々なアプリケーションを利用できます。一部の特定のウェブカメラ (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-utils の qv4l2
や guvcview があります。加えて、cameractrls には cameractrlsgtk
という、v4l の全オプションだけでなく Logitech Brio や Razer Kiyo Pro のカメラ固有の機能を設定できるツールが含まれています。
設定の変更を永続化する
V4L2 を通して加えられた設定は、ウェブカメラが切断されたり再接続されると破棄されます。v4l2-ctl
と udev ルールを使って、特定のカメラが接続されるたびに設定を適用することができます。
例えば、特定の 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= ....
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-headers と v4l2loopback-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
トラブルシューティング
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
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
Skype
ウェブカメラをテストする際は、以下のことに注意してください:
- echobot は videochat をサポートしていません。ウェブカメラをテストするために使用しないでください。
- Skype は異なるビデオデバイス/カメラデバイス (/dev/video*) を認識するかもしれません。これらのデバイスは、カメラの設定画面のドロップダウンメニューで "integrated camera..." のようにリストアップされます。それぞれのカメラを試し、数秒間待ってください (別のカメラに切り替えるのに時間がかかるからです)。
USB ウェブカメラにより使用されている帯域幅を確認する
ひとつの USB バスで複数のウェブカメラを使用した場合、USB バスの帯域幅が足りずにウェブカメラが機能しなくなることがあります。usbtopAUR パッケージの usbtop ツールで問題を診断できます。
ビデオストリームを反転させる
ビデオストリームが反転している場合、反転しているビデオをさらに反転させる仮想ビデオカメラを作成することができます。v4l-utils と v4l2loopback-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 ルールをトリガーしてください。