自宅でただサーバーをただのウェブサーバーとして起動しっぱなしにしているのもつまらないので、防犯がてらウェブカメラでストリーミング配信をできるようにしてみた。
OS:Ubuntu 12.04 LTS(Kernel3.2.0)
ウェブカメラ:UCAM-DLA200H(エレコム製)
はこにUVC(USB Video Drive Class)対応と書いてあるので信じることに。
ウェブカメラはヤマダ電機で1480円で購入。気にしていなかったが、USBバスパワーで動くため別途電源は不要。
さて、買ってから約3週間ほど放置していたがお盆休みの余暇を利用してインストールしてみることに。
Kernelが2.6のどこからかドライバがカーネルドライバとして組み込まれているとの事で、挿しただけで認識した様子。
kenji@r61:/usr/local/www$ dmesg | grep uvc
[ 11.663620] uvcvideo: Found UVC 1.00 device Venus USB2.0 Camera (056e:700a)
[ 11.665917] usbcore: registered new interface driver uvcvideo
kenji@r61:/usr/local/www$ lsmod | grep uvc
uvcvideo 72627 0
videodev 98259 1 uvcvideo
ストリーミング用として使用するソフトウェアはmjpg-streamerというものが一般的らしい。なぜかUbuntuのパッケージとして用意されていないので、ソースからビルトすることになる。ソースはSorceforgeからダウンロードしたものを使用したところ、
mjpg_streamer.c:27:28: 致命的エラー: linux/videodev.h: そのようなファイルやディレクトリはありません
となり色々なサイトでレポートされているようにSubversionでソースをダウンロードし、ビルトすることにする。Subversionはaptでインストール。
makeするとconvertが無いと言われる。これは、apt-get install imagemagickとすることで解決。うまくmakeが通り、make install。
起動は、
sudo mjpg_streamer -o “/usr/local/lib/output_http.so -w /usr/local/www”
としたところ、ブラウザでアクセスすると
404: Not Found! Invalid input plugin number
と言われてしまったので、起動を以下のように訂正したところストリーミング映像が出てきた。
sudo mjpg_streamer -i “/usr/local/lib/input_uvc.so” -o “/usr/local/lib/output_http.so -w /usr/local/www”
起動すると沢山Invalid argumentと出るがとりあえず動作の確認が行えた。