2014年5月12日月曜日

Linuxコマンドラインでウェブカメラ動画撮影の実験

Raspberry PiのようなARMボードでも、x86マシンでも何でもいいんですが、ウェブカメラで動画撮影しようとして調べると、streamer、mencoder、gstreamer、v4l2-ctl、ffmpeg(avconv)などなど、いろんなツールがあるっぽい。ちょろっと試してみた結果、streamerでとりあえず録画できるやり方があったので、とりあえずメモ。
$ streamer -c /dev/video0 -o test.avi -t 0:10 -s 320x240 -f rgb24
avi / video: 24 bit TrueColor (LE: bgr) / audio: none
rate: queueing frame twice (18446511) -0.00s [0]
...
ただし、このコマンドだと無圧縮AVIになるので、すごくストレージ容量を食う。320x240サイズの10fpsが10秒で25MBくらい。より大きな解像度、高いフレームレート、長い時間で、と考えたら、おそろしいことに。
そこでstreamerのヘルプを見ると
$ streamer -h
...
movie writers:
...
  avi - Microsoft AVI (RIFF) format
    video formats:
      rgb15   15 bit TrueColor (LE)        [avi]
      rgb24   24 bit TrueColor (LE: bgr)   [avi]
      mjpeg   MJPEG (AVI)                  [avi]
      jpeg    JPEG (JFIF)                  [avi]
...
ということなのでMJPEGを試してみるんですが、
$ streamer -c /dev/video0 -o test.avi -t 0:10 -s 320x240 -f mjpeg
avi / video: MJPEG (AVI) / audio: none
no way to get: 320x240 MJPEG (AVI)
movie writer initialisation failed
となってしまう。何が足りないのかな。。
あとホワイトバランスも直さないとな。

なおウェブカメラの設定可能な解像度は下記コマンドで確認可能。
$ uvcdynctrl -d video0 -f

0 件のコメント:

コメントを投稿