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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(他言語へのリンクの順番をソート)
(→‎ロード: 追加)
6行目: 6行目:
   
 
ほとんどの場合、ウェブカメラは何も設定しなくても動作します。ビデオデバイス (例えば {{ic|/dev/video0}}) へのアクセスの許可は [[udev]] により管理されており、追加の設定は必要ありません。
 
ほとんどの場合、ウェブカメラは何も設定しなくても動作します。ビデオデバイス (例えば {{ic|/dev/video0}}) へのアクセスの許可は [[udev]] により管理されており、追加の設定は必要ありません。
  +
  +
== ロード ==
  +
  +
最近のほとんどのウェブカメラは UVC (''USB Video Class'') に対応しており、汎用の ''uvcvideo'' カーネルドライバモジュールによりサポートされています。あなたのウェブカメラが認識されているかどうか確かめるには、ウェブカメラを接続した直後に [[dmesg]] を実行してください。以下と似たようなものが出力されるはずです:
  +
  +
{{hc|# dmesg {{!}} tail|
  +
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] を見てください。
  +
  +
あなたのウェブカメラがカーネルのドライバによってサポートされていない場合、外部のドライバが必要となります。まず、ウェブカメラの名前を調べます ({{ic|lsusb}} などを使って)。次に、ウェブカメラに関する情報やリソースが載っている [https://www.linuxtv.org/wiki/index.php/Webcam_devices webcam devices] を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、それに対応する[[カーネルモジュール]]を {{ic|/etc/modules-load.d/webcam.conf}} に追加する必要があります。これで、ブートの init ステージでドライバがカーネルにロードされるようになります。
  +
  +
{{Note|ウェブカメラを操作するために使用される、Linux カーネルからユーザスペースへの API は、''Video4Linux2'' 略して '''v4l2''' という名前です。v4l2 に対応しているアプリケーションは全て、カーネルのドライバで動作します。}}
   
 
== Linux のウェブカメラサポート ==
 
== Linux のウェブカメラサポート ==

2022年8月19日 (金) 05:59時点における版

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

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

ロード

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

# dmesg | tail
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 を見ます。あなたのウェブカメラと互換性のあるドライバを見つけたら、それに対応するカーネルモジュール/etc/modules-load.d/webcam.conf に追加する必要があります。これで、ブートの init ステージでドライバがカーネルにロードされるようになります。

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

Linux のウェブカメラサポート

ほとんどの場合ウェブカメラは何も設定しなくても動作します。その場合、色調や明るさなどのパラメータを設定したいなら、ウェブカメラ設定のセクションまでスキップできます。ウェブカメラが自動で動作しない場合は以下の手順に従って下さい。

ウェブカメラを確認する

(lsusb などを使って) ウェブカメラの名前を確認して適切なドライバーを探して下さい。以下はウェブカメラと、ウェブカメラが動作するドライバーのリストです。モジュールのコンパイルに関する情報などはデバイスの名前の右のリンクをクリックしてください。ウェブカメラを動作させることができたら、このリストにあなたの使ったドライバーとウェブカメラの名前を追加してください!

pwc

  • Creative Labs Webcam Pro Ex
  • Logitech QuickCam Notebook Pro ("Pro" モデルのみ)
  • Logitech Quickcam Pro 4000
  • Philips ToUCams (未確認)
  • Philips SPC900NC

qc-usb

  • Dexxa Webcam
  • Labtec Webcam (旧モデル)
  • LegoCam
  • Logitech Quickcam Express (旧モデル)
  • Logitech QuickCam Notebook ("Pro" モデルは含まず)
  • Logitech Quickcam Web

qc-usb-messenger

  • Logitech Quickcam Messenger
  • Logitech Quickcam Communicate (Communicate MP/S5500 や "for Business" については下の linux-uvc セクションを参照)
ノート: 現在このドライバーはカーネル 2.6.27 に含まれているモジュールです。

zr364xx

このドライバーは多数のウェブカメラで使用できます:

  • Aiptek PocketDV 3300
  • Creative PC-CAM 880
  • Konica Revio 2
  • Genius Digital Camera
  • Maxell Maxcam PRO DV3

サポートされているデバイスの完全なリストは こちら で見れます。

sn9c102

  • Trust Spacecam シリーズ
  • Maxell Smartcam (ノートパソコン用): 最大解像度 352x288 @ 3fps

gspca

サポートされているウェブカメラの完全なリストは こちら です。

ノート: このドライバーは V4L1 をサポートしていません。

stv680

ここ数年アジアで作られた安いノーブランドのカメラはほとんど stv680 チップセットを使っています。こういったカメラは多くがノベルティグッズです (Pencam, SpyC@m, LegoCam)。

  • Aiptek PenCam シリーズ
  • Digitaldream シリーズ
  • Dolphin Peripherals シリーズ
  • Lego LegoCam
  • Trust SpyC@m シリーズ
  • Welback Coolcam

stv680 チップセットを使用するウェブカメラの完全なリストは こちら から見れます。

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 デバイスの完全なリストは こちら で見れます。

カーネル 2.6.26 から linux-uvc はカーネルに含まれています。uvcvideo モジュールをロードしてください。

ノート:
  • このドライバーは V4L1 をサポートしていません。
  • WebCam SCB-0385N (usb ID 2232:1005), WebCam SC-0311139N (usb ID 2232:1020), WebCam SC-03FFL11939N (usb ID 2232:1028) では、カメラの使用によってシステムがフリーズする場合、モジュールの設定を追加する必要があります:
/etc/modprobe.d/uvcvideo.conf
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 で使うには、次の行を /etc/modprobe.d/modprobe.conf に追加する必要があります:

options ov51x-jpeg forceblock=1

r5u870 (Ricoh)

  • HP Pavilion Webcam
  • HP Webcam 1000
  • Sony VAIO VGP-VCCx

Ricoh ウェブカメラは新しい Sony のノートパソコンでよく使われています。

r5u87x-hgAUR[リンク切れ: アーカイブ: aur-mirror] (ファームウェアも入っています) をインストールして r5u87x-loader コマンドを実行してください。

stk11xx (Syntek)

  • Asus のノートパソコンに搭載された内蔵カメラ
  • Asus A8J, F3S, F5R, F5GL, F9E, VX2S, V1S, A6T

stk11xx-svnAUR パッケージをインストールしてください。適切なカーネルモジュールが含まれています。

ウェブカメラのモジュールがロードされているか確認する

あなたの使っているウェブカメラのモジュール/etc/modules-load.d/webcam.conf に追加すればブートストラップの初期化段階でカーネルにロードされるようになります。

ウェブカメラが USB の場合、カーネルは自動的に適切なドライバーをロードするはずです。この場合、ウェブカメラを接続して dmesg を確認してください。以下のような表示があるはずです:

$ dmesg|tail
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

パーミッション

ビデオデバイス (例: /dev/video0) にアクセスするパーミッションは udev によって管理されるので、設定は必要ありません。

ウェブカメラ設定

明るさや色調などのウェブカメラのパラメータを設定したい場合 (例: デフォルトの色調が青・赤・緑みがかっているなど)、公式リポジトリguvcview パッケージとして存在する GTK+ UVC Viewer (guvcview) を使うことができます。インストールして起動すれば、調整できる設定のリストが表示されます。設定を変更すると全てのアプリケーションに影響があります (例: Skype)。

ウェブカメラの解像度

まずはウェブカメラを確認してください:

$ lsusb
Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
...

そして、BusDevice 番号を使ってデバイスに関する詳細な情報を取得:

$ lsusb -s 001:002 -v | egrep "Width|Height"
wWidth    640
wHeight   480
wWidth    1280
wHeight   1024
...

出力を見ることで、カメラの縦・横の解像度がわかります。上記の場合、1280x1024 に加えて小さな解像度が利用できます [1]

ソフトウェアでウェブカメラを使う

Linux カーネルのバージョン 2.6.27 は 多数の新しいウェブカメラドライバー をサポートしています。レガシーな Video4Linux API は廃止され、現在これらのドライバーは Video4Linux バージョン 2 のみをサポートしています。Video4Linux バージョン 2 からピクセル形式のデコードはユーザースペースに移り、カーネルスペースでのデコードはサポートしていません。libv4l ライブラリがピクセスデコードサービスのユーザーランドアプリケーションを提供しており、多くのプログラムで使用されます。他の互換レイヤーも利用可能です。

デバイスが作成されたが画像がおかしい場合 (完全に緑など)、以下の設定が必要かもしれません。

アプリケーションが V4L2 をサポートしているがピクセル形式をサポートしていない場合 (例: cheese) 次のコマンドを使って下さい:

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

アプリケーションが V4L の古いバージョンしかサポートしていない場合 (Skype がこの種のソフトウェアで一番有名です) 次のコマンドを使って下さい:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
ヒント: 以下のような行を /etc/profilexprofile に追加することで長いコマンドを毎回入力する手間が省けます:
export LD_PRELOAD=/usr/'$LIB'/libv4l/v4l2convert.so

または:

export LD_PRELOAD=/usr/'$LIB'/libv4l/v4l1compat.so

Arch64 で32ビットのアプリケーションを使う場合 (例: Skype)、lib32-v4l-utils パッケージをインストールして下さい。

ウェブカメラが guvcview で問題なく動くのに、Skype で動かない場合、起動する前に次も設定する必要があるかもしれません:

export XLIB_SKIP_ARGB_VISUALS=1

Cheese

Cheese は GNOME の静画・動画トーククライアントです。macOS の Photo Booth に似ています。公式リポジトリからインストール可能です (cheese)。

fswebcam

fswebcam は軽量で柔軟性のあるウェブカメラアプリで、コマンドラインから起動することができます。公式リポジトリfswebcamAUR パッケージでインストールしてください。

GTK+ UVC Viewer (guvcview)

ウェブカメラの設定ができる便利なソフトウェアというだけでなく、guvcview は Linux UVC ドライバーがサポートしているデバイスから動画をキャプチャ(音付きで!)・表示することもできます。guvcview パッケージとして公式リポジトリから利用可能です。

Kopete

Kopete は KDE のインスタントメッセージ (IM) クライアントです。kopete パッケージでインストールできます。

Kamoso

ウェブカメラから写真や動画を撮影する KDE のアプリケーション。kamoso パッケージをインストールしてください。

xawtv

これは v4l デバイスの素朴なビューアで、TV チューナーカードで使うことが想定されていながら、ウェブカメラでも問題なく動作します。ウィンドウにウェブカメラの映像を表示します。インストールして (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 を使ってウェブカメラを表示したり記録することもできます。VLC のファイルメニューで、'Capture Device...' ダイアログを開いて動画と音声のデバイスファイルを入力してください。もしくはコマンドラインから次を実行します:

$ vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2"

これで 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}}"

上記のコマンドでは、何を記録しているのか表示されません。確認したい場合は、以下のように dst にディスプレイを追加する必要があります (ハードウェアの負担は増えます):

... :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 を押せば録画が終了します。

mpv

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

$ mpv tv:// --tv-driver=v4l2 --tv-device=/dev/video0

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

FFmpeg

FFmpeg#ウェブカメラの録画 を見て下さい。

ekiga

Microsoft NetMeeting にとてもよく似ています。公式リポジトリから ekiga[リンク切れ: パッケージが存在しません] パッケージをインストールして下さい。設定は全て勝手にやってくれます。

Sonic-snap

Sonic-snap [2] は sn9c102 ベースのウェブカメラ専用のビューア・レコーダです。sonic-snapAUR[リンク切れ: アーカイブ: aur-mirror] は AUR から入手可能です。

Skype

Skype の最新版は動画をサポートしています。オプションのビデオデバイスを確認してください、テスト画像をダブルクリックすることでフルスクリーンにできます。skypeAUR[リンク切れ: パッケージが存在しません] パッケージをインストールして下さい。Skype で緑の画像が表示される場合は上のソフトウェアでウェブカメラを使うセクションを見て下さい。

x86-64 を使っている場合は lib32-v4l-utils をインストールして次のコマンドで skype を起動してください:

LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype

skype のエイリアスを作成するか、/usr/bin にあるオリジナルの skype バイナリの名前を変更してから上記のオプションを記述したテキストファイルを作成するか、あるいは、デスクトップ環境で Skype アイコンのコマンドラインオプションを変更することで、恒常的に使うことができます。

Motion

Motion はカメラからのビデオ信号を監視するプログラムです。映像の一部が変わったのを検出することが可能で、言い換えれば、動き検出が可能です。

motion は v4l2 デバイスしか処理できないため v4l1 ドライバーしかないカメラを使う時は前述の通りに v4l1compat.so をプリロードする必要があります。そうしないと motion が適切なパレットを見つけられないというエラーが起こります。

MJPG-streamer

mjpg-streamerAUR[リンク切れ: パッケージが存在しません] は Linux-UVC 対応のウェブカメラ、ファイルシステム、あるいは他の入力プラグインから JPG を取得して HTTP を介しウェブブラウザや VLC などのソフトウェアに M-JPEG としてストリーミングします。

QtCAM

QtCAM はオープンソースの Linux ウェブカメラソフトウェアです。USB カメラや V4L2 に対応しているデバイスから動画や画像を取得することができます。色空間の切り替えや、フレームレートの表示などの機能があります。

トラブルシューティング

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 のように大きな値を使うことも可能です。

USB ウェブカメラによって使われている帯域幅をチェック

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