fswebcam - コマンドで画像をキャプチャする方法

以前は Webcam は、Skype 等のビデオチャットなどで活躍していましたが、最近はもう少し応用が増えてきました。

手軽に入手可能な Arduino (特に Arduino Yun) などのオープンソースハードウェアに Linux が搭載され、PC 以外のデバイスでもウェブカムと接続することで、 セキュリティカメラの実装が簡単にできたりします。

ここではそうした応用を念頭において、コマンドからウェブカムの画像を取得する方法を説明します。

USB 接続されるウェブカムの多くでは、UVC (USB Video Class) がサポートされています。

Linux の UVC プロジェクトでは、UVC 互換デバイスに対してデバイスドライバーなどの必要なコンポーネントやソフトウェアを提供することを目指しています。

また Video 4 Linux version 2 (V4L2) カーネルドライバーや API の提供もプロジェクトスコープに含まれています。

さて、要は UVC 互換を謳うウェブカムは、ソフトウェアから操作する環境が揃っています。

ここで紹介する fswebcam はそうしたソフトウェアのひとつです。次のコマンドでインストール可能です。

$sudo apt-get update
$sudo apt-get install fswebcam

JPEG 画像を取得するには次のようにします。オプションは適当に変えてください。

$fswebcam -i 0 -d v4l2:/dev/video0 -r 640x480 --jpeg 85 test.jpg

シェルスクリプトなら例えば foo.sh として、次のようにすることでファイル名の重複をたぶん避けることができると思われます。

foo.sh を次のようにして・・・

TIMESTAMP=$( date +"%Y-%m-%d_%T_%N" )

fswebcam -d v4l2:/dev/video1 -i 0 -r 640x480 --jpeg 85 --title Hello /home/hanako/$TIMESTAMP.jpg

実行可能なようにパーミッションを設定します。

$chmod +x foo.sh

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Linux 入門