1. installation

Note elvis left the building
source /bin/cid-functions
cid_add_line /boot/config.txt "start_x=1"
cid_add_line /boot/config.txt "gpu_mem=128"
vi /etc/modules-load.d/camera.conf
bcm2835-v4l2
modprobe -v bcm2835-v4l2
yum install v4l-utils
reboot

2. xtra reading

The commands for the camera module are included as part of the raspberrypi-firmware package - which is installed by default.

-------------------------------------------------------------------------------

The V4L2 driver by default only allows video recording up to 1280x720, else it glues together consecutive still screens resulting in videos of 4 fps or lower.

Adding the following options removes this limitation:

/etc/modprobe.d/rpi-camera.conf

options bcm2835-v4l2 max_video_width=3240 max_video_height=2464

3. testing

rpm -q --quiet "xawtv" || yum -y install xawtv
v4l-info
### v4l2 device info [/dev/video0] ###
general info
    VIDIOC_QUERYCAP
        driver                  : "bm2835 mmal"
        card                    : "mmal service 16.1"
        bus_info                : "platform:bcm2835-v4l2"
        version                 : 4.9.30
        capabilities            : 0x85200005 [VIDEO_CAPTURE,VIDEO_OVERLAY,?,READWRITE,STREAMING,(null)]

standards

inputs
    VIDIOC_ENUMINPUT(0)
        index                   : 0
        name                    : "Camera 0"
        type                    : CAMERA
        audioset                : 0
        tuner                   : 0
        std                     : 0x0 []
        status                  : 0x0 []

video capture
    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
        index                   : 0
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "Planar YUV 4:2:0"
        pixelformat             : 0x32315559 [YU12]
    VIDIOC_ENUM_FMT(1,VIDEO_CAPTURE)
        index                   : 1
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "YUYV 4:2:2"
        pixelformat             : 0x56595559 [YUYV]
    VIDIOC_ENUM_FMT(2,VIDEO_CAPTURE)
        index                   : 2
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "24-bit RGB 8-8-8"
        pixelformat             : 0x33424752 [RGB3]
    VIDIOC_ENUM_FMT(3,VIDEO_CAPTURE)
        index                   : 3
        type                    : VIDEO_CAPTURE
        flags                   : 1
        description             : "JFIF JPEG"
        pixelformat             : 0x4745504a [JPEG]
    VIDIOC_ENUM_FMT(4,VIDEO_CAPTURE)
        index                   : 4
        type                    : VIDEO_CAPTURE
        flags                   : 1
        description             : "H.264"
        pixelformat             : 0x34363248 [H264]
    VIDIOC_ENUM_FMT(5,VIDEO_CAPTURE)
        index                   : 5
        type                    : VIDEO_CAPTURE
        flags                   : 1
        description             : "Motion-JPEG"
        pixelformat             : 0x47504a4d [MJPG]
    VIDIOC_ENUM_FMT(6,VIDEO_CAPTURE)
        index                   : 6
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "YVYU 4:2:2"
        pixelformat             : 0x55595659 [YVYU]
    VIDIOC_ENUM_FMT(7,VIDEO_CAPTURE)
        index                   : 7
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "VYUY 4:2:2"
        pixelformat             : 0x59555956 [VYUY]
    VIDIOC_ENUM_FMT(8,VIDEO_CAPTURE)
        index                   : 8
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "UYVY 4:2:2"
        pixelformat             : 0x59565955 [UYVY]
    VIDIOC_ENUM_FMT(9,VIDEO_CAPTURE)
        index                   : 9
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "Y/CbCr 4:2:0"
        pixelformat             : 0x3231564e [NV12]
    VIDIOC_ENUM_FMT(10,VIDEO_CAPTURE)
        index                   : 10
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "24-bit BGR 8-8-8"
        pixelformat             : 0x33524742 [BGR3]
    VIDIOC_ENUM_FMT(11,VIDEO_CAPTURE)
        index                   : 11
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "Planar YVU 4:2:0"
        pixelformat             : 0x32315659 [YV12]
    VIDIOC_ENUM_FMT(12,VIDEO_CAPTURE)
        index                   : 12
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "Y/CrCb 4:2:0"
        pixelformat             : 0x3132564e [NV21]
    VIDIOC_ENUM_FMT(13,VIDEO_CAPTURE)
        index                   : 13
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "32-bit BGRA/X 8-8-8-8"
        pixelformat             : 0x34524742 [BGR4]
    VIDIOC_G_FMT(VIDEO_CAPTURE)
        type                    : VIDEO_CAPTURE
        fmt.pix.width           : 1024
        fmt.pix.height          : 768
        fmt.pix.pixelformat     : 0x4745504a [JPEG]
        fmt.pix.field           : NONE
        fmt.pix.bytesperline    : 0
        fmt.pix.sizeimage       : 786432
        fmt.pix.colorspace      : JPEG
        fmt.pix.priv            : 4276996862

video overlay
    VIDIOC_ENUM_FMT(0,VIDEO_OVERLAY)
        index                   : 0
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "Planar YUV 4:2:0"
        pixelformat             : 0x32315559 [YU12]
    VIDIOC_ENUM_FMT(1,VIDEO_OVERLAY)
        index                   : 1
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "YUYV 4:2:2"
        pixelformat             : 0x56595559 [YUYV]
    VIDIOC_ENUM_FMT(2,VIDEO_OVERLAY)
        index                   : 2
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "24-bit RGB 8-8-8"
        pixelformat             : 0x33424752 [RGB3]
    VIDIOC_ENUM_FMT(3,VIDEO_OVERLAY)
        index                   : 3
        type                    : VIDEO_OVERLAY
        flags                   : 1
        description             : "JFIF JPEG"
        pixelformat             : 0x4745504a [JPEG]
    VIDIOC_ENUM_FMT(4,VIDEO_OVERLAY)
        index                   : 4
        type                    : VIDEO_OVERLAY
        flags                   : 1
        description             : "H.264"
        pixelformat             : 0x34363248 [H264]
    VIDIOC_ENUM_FMT(5,VIDEO_OVERLAY)
        index                   : 5
        type                    : VIDEO_OVERLAY
        flags                   : 1
        description             : "Motion-JPEG"
        pixelformat             : 0x47504a4d [MJPG]
    VIDIOC_ENUM_FMT(6,VIDEO_OVERLAY)
        index                   : 6
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "YVYU 4:2:2"
        pixelformat             : 0x55595659 [YVYU]
    VIDIOC_ENUM_FMT(7,VIDEO_OVERLAY)
        index                   : 7
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "VYUY 4:2:2"
        pixelformat             : 0x59555956 [VYUY]
    VIDIOC_ENUM_FMT(8,VIDEO_OVERLAY)
        index                   : 8
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "UYVY 4:2:2"
        pixelformat             : 0x59565955 [UYVY]
    VIDIOC_ENUM_FMT(9,VIDEO_OVERLAY)
        index                   : 9
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "Y/CbCr 4:2:0"
        pixelformat             : 0x3231564e [NV12]
    VIDIOC_ENUM_FMT(10,VIDEO_OVERLAY)
        index                   : 10
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "24-bit BGR 8-8-8"
        pixelformat             : 0x33524742 [BGR3]
    VIDIOC_ENUM_FMT(11,VIDEO_OVERLAY)
        index                   : 11
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "Planar YVU 4:2:0"
        pixelformat             : 0x32315659 [YV12]
    VIDIOC_ENUM_FMT(12,VIDEO_OVERLAY)
        index                   : 12
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "Y/CrCb 4:2:0"
        pixelformat             : 0x3132564e [NV21]
    VIDIOC_ENUM_FMT(13,VIDEO_OVERLAY)
        index                   : 13
        type                    : VIDEO_OVERLAY
        flags                   : 0
        description             : "32-bit BGRA/X 8-8-8-8"
        pixelformat             : 0x34524742 [BGR4]
    VIDIOC_G_FMT(VIDEO_OVERLAY)
        type                    : VIDEO_OVERLAY
        fmt.win.w.left          : 150
        fmt.win.w.top           : 50
        fmt.win.w.width         : 1024
        fmt.win.w.height        : 768
        fmt.win.field           : NONE
        fmt.win.chromakey       : 0
        fmt.win.clips           : (nil)
        fmt.win.clipcount       : 0
        fmt.win.bitmap          : (nil)
    VIDIOC_G_FBUF
        capability              : 0x21 [EXTERNOVERLAY,(null)]
        flags                   : 0x2 [OVERLAY]
        base                    : (nil)
        fmt.width               : 1024
        fmt.height              : 768
        fmt.pixelformat         : 0x32315559 [YU12]
        fmt.field               : ANY
        fmt.bytesperline        : 1024
        fmt.sizeimage           : 1179648
        fmt.colorspace          : SMPTE170M
        fmt.priv                : 0

controls
    VIDIOC_QUERYCTRL(BASE+0)
        id                      : 9963776
        type                    : INTEGER
        name                    : "Brightness"
        minimum                 : 0
        maximum                 : 100
        step                    : 1
        default_value           : 50
        flags                   : 32
    VIDIOC_QUERYCTRL(BASE+1)
        id                      : 9963777
        type                    : INTEGER
        name                    : "Contrast"
        minimum                 : -100
        maximum                 : 100
        step                    : 1
        default_value           : 0
        flags                   : 32
    VIDIOC_QUERYCTRL(BASE+2)
        id                      : 9963778
        type                    : INTEGER
        name                    : "Saturation"
        minimum                 : -100
        maximum                 : 100
        step                    : 1
        default_value           : 0
        flags                   : 32
    VIDIOC_QUERYCTRL(BASE+14)
        id                      : 9963790
        type                    : INTEGER
        name                    : "Red Balance"
        minimum                 : 1
        maximum                 : 7999
        step                    : 1
        default_value           : 1000
        flags                   : 32
    VIDIOC_QUERYCTRL(BASE+15)
        id                      : 9963791
        type                    : INTEGER
        name                    : "Blue Balance"
        minimum                 : 1
        maximum                 : 7999
        step                    : 1
        default_value           : 1000
        flags                   : 32
    VIDIOC_QUERYCTRL(BASE+20)
        id                      : 9963796
        type                    : BOOLEAN
        name                    : "Horizontal Flip"
        minimum                 : 0
        maximum                 : 1
        step                    : 1
        default_value           : 0
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+21)
        id                      : 9963797
        type                    : BOOLEAN
        name                    : "Vertical Flip"
        minimum                 : 0
        maximum                 : 1
        step                    : 1
        default_value           : 0
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+24)
        id                      : 9963800
        type                    : MENU
        name                    : "Power Line Frequency"
        minimum                 : 0
        maximum                 : 3
        step                    : 1
        default_value           : 1
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+27)
        id                      : 9963803
        type                    : INTEGER
        name                    : "Sharpness"
        minimum                 : -100
        maximum                 : 100
        step                    : 1
        default_value           : 0
        flags                   : 32
    VIDIOC_QUERYCTRL(BASE+31)
        id                      : 9963807
        type                    : MENU
        name                    : "Color Effects"
        minimum                 : 0
        maximum                 : 15
        step                    : 1
        default_value           : 0
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+34)
        id                      : 9963810
        type                    : INTEGER
        name                    : "Rotate"
        minimum                 : 0
        maximum                 : 360
        step                    : 90
        default_value           : 0
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+42)
        id                      : 9963818
        type                    : INTEGER
        name                    : "Color Effects, CbCr"
        minimum                 : 0
        maximum                 : 65535
        step                    : 1
        default_value           : 32896
        flags                   : 0
v4l2-ctl --list-devices
mmal service 16.1 (platform:bcm2835-v4l2):
        /dev/video0
v4lctl list
attribute  | type   | current | default | comment
 -----------+--------+---------+---------+-------------------------------------
norm       | choice | (null)  | (null)  |
input      | choice | Camera  | Camera  | Camera 0
bright     | int    |      50 |      50 | range is 0 => 100
contrast   | int    |       0 |       0 | range is -100 => 100
color      | int    |       0 |       0 | range is -100 => 100
Red Balanc | int    |    1000 |    1000 | range is 1 => 7999
Blue Balan | int    |    1000 |    1000 | range is 1 => 7999
Horizontal | bool   | off     | off     |
Vertical F | bool   | off     | off     |
Power Line | choice | 50 Hz   | 50 Hz   | Disabled 50 Hz 60 Hz Auto
Sharpness  | int    |       0 |       0 | range is -100 => 100
Color Effe | choice | None    | None    | None Black & White Sepia Negative Emboss Sketch Sky Blue Grass Green Skin Whiten Vivid Aqua Art Freeze Silhouette Solarization Antique Set Cb/Cr
v4lctl -c /dev/video0 snap jpeg 1280x1024 snap.jpg
streamer -c /dev/video0 -b 16 -o snap.jpeg

4. deps

ldd /opt/raspivid/raspivid
 linux-vdso.so.1 =>  (0x7ee06000)
 libmmal_core.so => /opt/raspivid/libmmal_core.so (0x76f58000)
 libmmal_util.so => /opt/raspivid/libmmal_util.so (0x76f38000)
 libmmal_vc_client.so => /opt/raspivid/libmmal_vc_client.so (0x76f1d000)
 libbcm_host.so => /opt/raspivid/libbcm_host.so (0x76ef5000)
 libvcsm.so => /opt/raspivid/libvcsm.so (0x76ee1000)
 libvchiq_arm.so => /opt/raspivid/libvchiq_arm.so (0x76ecb000)
 libvcos.so => /opt/raspivid/libvcos.so (0x76eb1000)
 libpthread.so.0 => /lib/libpthread.so.0 (0x76e8a000)
 libdl.so.2 => /lib/libdl.so.2 (0x76e74000)
 librt.so.1 => /lib/librt.so.1 (0x76e5d000)
 libc.so.6 => /lib/libc.so.6 (0x76d0c000)
 /lib/ld-linux-armhf.so.3 (0x54b24000)

5. streaming

yum install nc

5.1. on the pi

raspivid -t 0 -br 60 -w 1024 -h 768 -ih -fps 40 -o - | nc -4 -v -k -l -p 2222

5.2. on the client

mplayer -fps 40 -demuxer h264es ffmpeg://tcp://mmc056e.d01.net:2222

6. references