Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Waveshare社OV5648USBカメラをつかう その2:v4l2でカメラ情報をみる

前回の記事で"/dev/video0"という名前でデバイスを認識したものの、このvideo0の正体が不明で色々調べていました。
debian系では外部カメラ用ユーティリティライブラリとしてvideo for linux 略してv4lというのがあり
これを使えば中身を確認できるってわけです。

実際のところ

デフォのRasPiなら入っているはずですが、念のため。

$ sudo apt install v4l-utils

早速カメラをみてみましょう。

$ v4l2-ctl --list-devices
bcm2835-codec-decode (platform:bcm2835-codec):
        /dev/video10
        /dev/video11
        /dev/video12

SIT USB2.0 Camera: SIT USB2.0 C (usb-3f980000.usb-1.3):
        /dev/video0
        /dev/video1

list-formatsで、モジュールが使える様式の情報が出てきます。

$ v4l2-ctl -d /dev/video0 --list-formats
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
        [1]: 'YUYV' (YUYV 4:2:2)

”ext”をつけると、さらに詳しい情報が。
fps値の目安なんかでるんですね。

$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 2592x1944
                        Interval: Discrete 0.067s (15.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.067s (15.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1600x1200
                        Interval: Discrete 0.067s (15.000 fps)
                Size: Discrete 2048x1536
                        Interval: Discrete 0.067s (15.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.067s (15.000 fps)
        [1]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 2592x1944
                        Interval: Discrete 0.500s (2.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1600x1200
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 2048x1536
                        Interval: Discrete 0.500s (2.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.050s (20.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.500s (2.000 fps)

参考もと

  • "v4l2-ctl --help"

GitHub - gjasny/v4l-utils