やすかったので、アイオーデータのTS-WLCEというネットワークカメラを買いました。
実家監視用に買ったのですが、どうにも想定外の事態が。
普通、ネットワークカメラというものはhttpで接続してwebページに現在の静止画があって、さらにその上位機能として動画表示が(おまけ的に)付いている…滑らかな動画を出せるネットワークカメラは高いヤツ…
そんなふうに考えていた時期が、俺にもありました。
なんとこのTS-WLCE、静止画を撮る・見るというとき、webページからは見れないという。
基本的に動画向けなんですね。カメラのwebページには静止画ではなく最初から動画が表示されている。値段が安いから、てっきり逆に考えていましたよ…ちゃんと調べて買わなきゃあかんですな。 まぁ通常、ネットワークカメラとしては動画で静止画の代わりにならないわけがないというか、動画で見れて悪いということは無いわけですが。
そういう静止画保存をするにはアイオーデータのLANDISKとか、activeXの実行環境が要るようです。 あとftpやメールで送ることも一応できるようですが、どうにも柔軟な動きは出来ない模様…
しかし、オイラの環境では実家鯖がhttpで各監視カメラの画像を拾い、定時の記録と一括表示を可能にしているので、静止画がメインの目的。動画視聴はなんというかライブカメラっぽい使い方だろうし…これは困った。
ところで動画のクオリティは中々良好で、スムーズな表示が可能です。これはLinux上のFirefox/Chromiumでも問題なく可能*1。むしろこの値段でこれは驚きなんだけど、今どきは普通なんでしょうかね。
と思ったらピコーンと閃きました。
avconvで動画のフレームを切り出せばいいじゃん?
と。
そんなわけでサクッとぶっちゃけます。
userがユーザー名、passwordがパスワード、xxxがカメラのアドレス、pppppがポート番号という前提で
avconv -i rtsp://user:password@xxx.xxx.xxx.xxx:ppppp/ipcam_mjpeg.sdp -ss 1 -vframes 1 -f image2 out.jpg
とすれば、現在のフレームを一枚切り取ってローカルに保存できます。ポート番号やrtspのファイル名などは、TS-WLCEのweb設定画面から確認できます。
2015/04/18 15:55:15 追記:
h264のほうから切り出したいときは
avconv -i rtsp://user:password@xxx.xxx.xxx.xxx:ppppp/ipcam_h264.sdp -ss 2 -vframes 1 -f image2 out.jpg
-ss 2がミソです。1だとフレームが完成する前に撮れてしまうので…
なぜh264の必要性があるのか、というと、ubuntu 12.04.1搭載のavconv version 0.8.17-4:0.8.17-0ubuntu0.12.04.1だと、mjpegでのフレームキャプチャがエラーで出来ないのですなぁ。困ったものだ。
*1:まぁ昔のplanexのCS-WMV02Gでもちょっといじれば可能でしたが