バッファローコクヨサプライ BSW13K05HBK を認識させる

※Linux関連記事についてはsnagplaces on @wikiにまとめていますので、そちらをご参照ください。

この製品はUVC(Usb Video device Class)というWebカメラ統一規格に対応したもので、Windowsなら挿すだけですぐに使用できますが、Linuxの場合はドライバを導入しておく必要があります。

各所でUVCの導入事例をみると、belilOSのsvnで引っ張って来てるものが多いのですが、uvc公式サイトによるとbelilOSのリンク先は古いドライバだから使わないほうがいい的なことが書いてるあるのですが、実際のところどうなんだろうと思ったので、LinuxTVよ り配布されているソースファイルからインストールしてみることにしました。

LinuxTVにあるソースファイルはUVCドライバの他、Video for Linux(今はV4L/DVBとかいうみたい)も同梱されます。gspcaもUVCに統一されたわけではありませんが、一応ここのサイトに集約してるよ うです。ちなみに、このLinuxTVというサイトはトップページにプロジェクトの一覧がありますが、探すのが結構めんどくさいです。

※UVCのカメラはドライバを一度導入すれば他の製品でもすぐに使えることが利点ですが、後述のwebcamはmotion、RED5等、UVC規格に対応していないパッケージが使用できません。しかも意外とメジャーなものばかり対応していないという状況です。

UVC Videoドライバのダウンロード・解凍・インストール

# wget http://linuxtv.org/hg/~pinchartl/uvcvideo/archive/tip.tar.bz2
# tar vjxf uvcvideo-f5c337ded781.tar.bz2 ※「f5c337~」の部分はダウンロードするたびに変わるかもしれません
# cd uvcvideo-f5c337ded781
# make
# paco -D make install ※paco使用の場合

ドライバの確認

# lsmod | grep uvcvideo
uvcvideo               57100  0
videodev               42240  1 uvcvideo
v4l1_compat            16516  2 uvcvideo,videodev

これでドライバ自体の認識は完了です。いつもの感覚でxawtv入れてwebcamで画像を取ろうとしたのですが、画像の三分の二を境にずれるという問題が発生しました。
八方手を尽くしてみたものの、このずれは改善の兆しが見えなかったため、どうやらwebcamはuvcvideoドライバと相性が悪いと判断、別のパッケージで対応することにしました。

なお、xawtvのほうは一応表示はできましたが、ログのほうにエラーが出る状態でした。

動画確認用パッケージluvcviewのインストール

# yum –enablerepo=rpmforge install luvcview

動作確認

以下のコマンドでX上からリアルタイムでWebカメラの様子を見ることができます。ウインドウ下部に明るさやコントラスト調整のボタンがあります が、右端に並んであるパンやチルトは動作できません。Qcam Orbitとかならできるんですかね。ちなみに録画もできるようですが、どこに保存されたかがわかりません(ぉ

# luvcview -f yuv -s 640×480

デバイス情報の取得(luvcview版)

luvcviewは接続したWebカメラの持つ対応解像度やフレームレートを知ることができます。何気にこのカメラは800×600と1024×768に対応してない…

# luvcview -L
luvcview version 0.2.1
Video driver: fbcon
Hardware surfaces are available (7872K video memory)
video /dev/video0
/dev/video0 does not support read i/o
{ pixelformat = ‘YUYV’, description = ‘YUV 4:2:2 (YUYV)’ }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 1280, height = 960 }
        Time interval between frame: 1/9, 1/5,
{ discrete: width = 1280, height = 1024 }
        Time interval between frame: 1/9, 1/5,

これでX上から動画の確認ができました。次にwebcamの代わりとなるキャプチャ用のパッケージを導入します。

キャプチャ用パッケージfswebcamのインストール

参考サイト:

# wget http://www.firestorm.cx/fswebcam/files/fswebcam-20070108-1.i386.rpm
# rpm -Uvh fswebcam-20070108-1.i386.rpm

動作確認

普通にキャプチャすると画面の各種情報を表示するために下部に赤い線(バナー)が表示されますが、「–line-colour ‘#FF000000’」で消すことができます。

# fswebcam -p YUYV –top-banner –line-colour ‘#FF000000’ -S 5 -r 640×480 –font "/usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf:10" /home/akitaka/public_html/webcamtest/`date +%Y-%m-%d_%H%M.jpg`

内訳は以下の通り。

# fswebcam
-d デバイス(/dev/video0等)
-p 動画フォーマット(YUY等)
–top-banner バナーを画面上部に(デフォルトは下部) 非表示は–no-banner
–line-colour ‘カラーコード’ デフォルトは赤、透明は#FF000000
-S キャプチャ開始フレーム
-r 解像度
–font "フォントパス:フォントサイズ" 明示しないとバナー部に文字が表示できない(/usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf)
保存先

-Sの指定なしで撮影するとホワイトバランスの調整が間に合わず映像が結構暗くなります。Webカメラの特性にもよりますが最低でも3~5フレーム位はおいたほうがいいかもしれません。

webcamのようなコマンドを起動するとずっと監視し続けるものではないので、cronで定期実行したほうがよさそうです。

定期監視用スクリプトの作成(サンプル)

※各種モニタ用のユーザ(monitor等)をあらかじめ作成しておくこと

# vi /home/monitor/fswebcam.sh
#!/bin/sh
p="/home/monitor/public_html/webcam/`date +%Y-%m-%d_%H%M%S`.jpg"
/usr/bin/fswebcam -p YUYV –top-banner –line-colour ‘#FF000000’ -S 9 -r 640×480 –font "/usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf:10" –save $p

# chmod 755 /home/monitor/fswebcam.sh
# chown monitor:monitor /home/monitor/fswebcam.sh
# crontab -u monitor -e
10 * * * * fswebcam.sh 2>&1

デバイス情報の取得(fswebcam版)

luvcviewとはちょっと違う情報が取得ができます。

# fswebcam –list-controls
— Opening /dev/video0…
Trying source module v4l2…
/dev/video0 opened.
No input was specified, using the first.
Available Controls        Current Value   Range
——————        ————-   —–
Brightness                0 (50%)         -64 – 64
Contrast                  32 (50%)        0 – 64
Saturation                64 (50%)        0 – 128
Hue                       0 (50%)         -40 – 40
Gamma                     100 (6%)        72 – 500
Adjusting resolution from 384×288 to 352×288.
— Capturing frame…
Captured frame in 0.00 seconds.
— Processing captured image…
There are unsaved changes to the image.

一般ユーザでも利用できるようにする

一般ユーザで上記コマンドを実行すると「Error opening device: /dev/video0」のエラーがでるので、その対策を行います。

# vi /etc/security/console.perms.d/50-default.perms
【37行目あたり変更】
<console> 0666 <sound> 0666 root
【52行目あたり変更】
<console> 0666 <v4l>   0666 root

# pam_console_apply

これの恩恵として、一般ユーザでもサウンドが鳴るようになります(Gnomeの右上のサウンドアイコンに付いてるXが消える)。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中