# media-ctl -p Media controller API version 5.15.0 Media device information ------------------------ driver atmel_isc_commo model microchip,sama7g5-isc serial bus info platform:microchip-sama7g5-xisc hw revision 0x220 driver version 5.15.0 Device topology - entity 1: atmel_isc_scaler (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 pad0: Sink [fmt:SBGGR8_1X8/3264x2464 field:none colorspace:srgb crop.bounds:(0,0)/3264x2464 crop:(0,0)/3264x2464] <- "csi2dc":1 [ENABLED,IMMUTABLE] pad1: Source [fmt:SBGGR8_1X8/3264x2464 field:none colorspace:srgb] -> "atmel_isc_common":0 [ENABLED,IMMUTABLE] - entity 4: csi2dc (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: Sink [fmt:SRGGB8_1X8/640x480 field:none colorspace:srgb] <- "dw-csi.0":1 [ENABLED] pad1: Source [fmt:SRGGB8_1X8/640x480 field:none colorspace:srgb] -> "atmel_isc_scaler":0 [ENABLED,IMMUTABLE] - entity 7: dw-csi.0 (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev2 pad0: Sink [fmt:SBGGR8_1X8/0x0] <- "imx219 1-0010":0 [ENABLED] pad1: Source [fmt:SBGGR8_1X8/0x0] -> "csi2dc":0 [ENABLED] - entity 12: imx219 1-0010 (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev3 pad0: Source [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(8,8)/3280x2464 crop:(8,8)/3280x2464] -> "dw-csi.0":0 [ENABLED] - entity 24: atmel_isc_common (1 pad, 1 link) type Node subtype V4L flags 1 device node name /dev/video0 pad0: Sink <- "atmel_isc_scaler":1 [ENABLED,IMMUTABLE]
# v4l2-ctl -d /dev/v4l-subdev3 --list-subdev-mbus-codes 0 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=0) 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x3014: MEDIA_BUS_FMT_SRGGB8_1X8
# v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-mbus-codes 0 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=0) 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3007: MEDIA_BUS_FMT_SBGGR10_1X10 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x3008: MEDIA_BUS_FMT_SBGGR12_1X12 0x3019: MEDIA_BUS_FMT_SBGGR14_1X14 0x301d: MEDIA_BUS_FMT_SBGGR16_1X16 0x1009: MEDIA_BUS_FMT_RGB666_1X18 0x1007: MEDIA_BUS_FMT_RGB565_2X8_BE 0x1008: MEDIA_BUS_FMT_RGB565_2X8_LE 0x1003: MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE 0x1004: MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE 0x1001: MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1002: MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x100c: MEDIA_BUS_FMT_RGB888_2X12_LE 0x100b: MEDIA_BUS_FMT_RGB888_2X12_BE 0x100a: MEDIA_BUS_FMT_RGB888_1X24 0x2010: MEDIA_BUS_FMT_VYUY8_1X16 0x2019: MEDIA_BUS_FMT_VYUY10_2X10 0x2001: MEDIA_BUS_FMT_Y8_1X8 0x200a: MEDIA_BUS_FMT_Y10_1X10 # v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-mbus-codes 1 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=1) 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3007: MEDIA_BUS_FMT_SBGGR10_1X10 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x3008: MEDIA_BUS_FMT_SBGGR12_1X12 0x3019: MEDIA_BUS_FMT_SBGGR14_1X14 0x301d: MEDIA_BUS_FMT_SBGGR16_1X16 0x1009: MEDIA_BUS_FMT_RGB666_1X18 0x1007: MEDIA_BUS_FMT_RGB565_2X8_BE 0x1008: MEDIA_BUS_FMT_RGB565_2X8_LE 0x1003: MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE 0x1004: MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE 0x1001: MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1002: MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x100c: MEDIA_BUS_FMT_RGB888_2X12_LE 0x100b: MEDIA_BUS_FMT_RGB888_2X12_BE 0x100a: MEDIA_BUS_FMT_RGB888_1X24 0x2010: MEDIA_BUS_FMT_VYUY8_1X16 0x2019: MEDIA_BUS_FMT_VYUY10_2X10 0x2001: MEDIA_BUS_FMT_Y8_1X8 0x200a: MEDIA_BUS_FMT_Y10_1X10
# v4l2-ctl -d /dev/v4l-subdev1 --list-subdev-mbus-codes 0 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=0) 0x3014: MEDIA_BUS_FMT_SRGGB8_1X8 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3002: MEDIA_BUS_FMT_SGRBG8_1X8 0x3013: MEDIA_BUS_FMT_SGBRG8_1X8 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x3007: MEDIA_BUS_FMT_SBGGR10_1X10 0x300a: MEDIA_BUS_FMT_SGRBG10_1X10 0x300e: MEDIA_BUS_FMT_SGBRG10_1X10 0x2008: MEDIA_BUS_FMT_YUYV8_2X8 # v4l2-ctl -d /dev/v4l-subdev1 --list-subdev-mbus-codes 1 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=1) 0x3014: MEDIA_BUS_FMT_SRGGB8_1X8 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3002: MEDIA_BUS_FMT_SGRBG8_1X8 0x3013: MEDIA_BUS_FMT_SGBRG8_1X8 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x3007: MEDIA_BUS_FMT_SBGGR10_1X10 0x300a: MEDIA_BUS_FMT_SGRBG10_1X10 0x300e: MEDIA_BUS_FMT_SGBRG10_1X10 0x2008: MEDIA_BUS_FMT_YUYV8_2X8 #
# v4l2-ctl -d /dev/v4l-subdev0 --list-subdev-mbus-codes 0 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=0) 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3013: MEDIA_BUS_FMT_SGBRG8_1X8 0x3002: MEDIA_BUS_FMT_SGRBG8_1X8 0x3014: MEDIA_BUS_FMT_SRGGB8_1X8 0x3007: MEDIA_BUS_FMT_SBGGR10_1X10 0x300e: MEDIA_BUS_FMT_SGBRG10_1X10 0x300a: MEDIA_BUS_FMT_SGRBG10_1X10 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x2008: MEDIA_BUS_FMT_YUYV8_2X8 # v4l2-ctl -d /dev/v4l-subdev0 --list-subdev-mbus-codes 1 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=1) 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3013: MEDIA_BUS_FMT_SGBRG8_1X8 0x3002: MEDIA_BUS_FMT_SGRBG8_1X8 0x3014: MEDIA_BUS_FMT_SRGGB8_1X8 0x3007: MEDIA_BUS_FMT_SBGGR10_1X10 0x300e: MEDIA_BUS_FMT_SGBRG10_1X10 0x300a: MEDIA_BUS_FMT_SGRBG10_1X10 0x300f: MEDIA_BUS_FMT_SRGGB10_1X10 0x2008: MEDIA_BUS_FMT_YUYV8_2X8
# v4l2-ctl -d /dev/v4l-subdev3 --list-subdev-framesizes pad=0,code=0x300f ioctl: VIDIOC_SUBDEV_ENUM_FRAME_SIZE (pad=0) Size Range: 3280x2464 - 3280x2464 Size Range: 1920x1080 - 1920x1080 Size Range: 1640x1232 - 1640x1232 Size Range: 640x480 - 640x480
# v4l2-ctl -d /dev/v4l-subdev3 --list-subdev-framesizes pad=0,code=0x3001 ioctl: VIDIOC_SUBDEV_ENUM_FRAME_SIZE (pad=0) #
# v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-framesizes pad=0 ioctl: VIDIOC_SUBDEV_ENUM_FRAME_SIZE (pad=0) Size Range: 16x16 - 4000x3000 #
# v4l2-ctl -d /dev/v4l-subdev3 --get-subdev-fmt 0 ioctl: VIDIOC_SUBDEV_G_FMT (pad=0) Width/Height : 3280/2464 Mediabus Code : 0x300f (MEDIA_BUS_FMT_SRGGB10_1X10) Field : None Colorspace : sRGB Transfer Function : sRGB YCbCr/HSV Encoding: ITU-R 601 Quantization : Full Range #
# v4l2-ctl -d /dev/v4l-subdev2 --get-subdev-fmt 0 ioctl: VIDIOC_SUBDEV_G_FMT (pad=0) Width/Height : 0/0 Mediabus Code : 0x3001 (MEDIA_BUS_FMT_SBGGR8_1X8) Field : Any Colorspace : Default Transfer Function : Default (maps to Rec. 709) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) # v4l2-ctl -d /dev/v4l-subdev2 --get-subdev-fmt 1 ioctl: VIDIOC_SUBDEV_G_FMT (pad=1) Width/Height : 0/0 Mediabus Code : 0x3001 (MEDIA_BUS_FMT_SBGGR8_1X8) Field : Any Colorspace : Default Transfer Function : Default (maps to Rec. 709) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) #
media-ctl -d /dev/media0 --set-v4l2 '"imx219 1-0010":0[fmt:SRGGB10_1X10/3280x2464]' media-ctl -d /dev/media0 --set-v4l2 '"dw-csi.0":0[fmt:SRGGB10_1X10/3280x2464]' media-ctl -d /dev/media0 --set-v4l2 '"csi2dc":0[fmt:SRGGB10_1X10/3280x2464]' media-ctl -d /dev/media0 --set-v4l2 '"atmel_isc_scaler":0[fmt:SRGGB10_1X10/3280x2464]'The above sequence of commands will configure the 4 given entities with the format specified.
# media-ctl -p Media controller API version 5.15.0 Media device information ------------------------ driver atmel_isc_commo model microchip,sama7g5-isc serial bus info platform:microchip-sama7g5-xisc hw revision 0x220 driver version 5.15.0 Device topology - entity 1: atmel_isc_scaler (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 pad0: Sink [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb crop.bounds:(0,0)/3264x2464 crop:(0,0)/3264x2464] <- "csi2dc":1 [ENABLED,IMMUTABLE] pad1: Source [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb] -> "atmel_isc_common":0 [ENABLED,IMMUTABLE] - entity 4: csi2dc (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: Sink [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb] <- "dw-csi.0":1 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb] -> "atmel_isc_scaler":0 [ENABLED,IMMUTABLE] - entity 7: dw-csi.0 (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev2 pad0: Sink [fmt:SRGGB10_1X10/3280x2464] <- "imx219 1-0010":0 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/3280x2464] -> "csi2dc":0 [ENABLED] - entity 12: imx219 1-0010 (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev3 pad0: Source [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(8,8)/3280x2464 crop:(8,8)/3280x2464] -> "dw-csi.0":0 [ENABLED] - entity 24: atmel_isc_common (1 pad, 1 link) type Node subtype V4L flags 1 device node name /dev/video0 pad0: Sink <- "atmel_isc_scaler":1 [ENABLED,IMMUTABLE]
media-ctl -d /dev/media0 --set-v4l2 '"imx219 1-0010":0[fmt:SRGGB10_1X10/1920x1080]' media-ctl -d /dev/media0 --set-v4l2 '"dw-csi.0":0[fmt:SRGGB10_1X10/1920x1080]' media-ctl -d /dev/media0 --set-v4l2 '"csi2dc":0[fmt:SRGGB10_1X10/1920x1080]' media-ctl -d /dev/media0 --set-v4l2 '"atmel_isc_scaler":0[fmt:SRGGB10_1X10/1920x1080]'
Media controller API version 5.15.0 Media device information ------------------------ driver atmel_isc_commo model microchip,sama7g5-isc serial bus info platform:microchip-sama7g5-xisc hw revision 0x220 driver version 5.15.0 Device topology - entity 1: atmel_isc_scaler (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 pad0: Sink [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb crop.bounds:(0,0)/3264x2464 crop:(0,0)/3264x2464] <- "csi2dc":1 [ENABLED,IMMUTABLE] pad1: Source [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb] -> "atmel_isc_common":0 [ENABLED,IMMUTABLE] - entity 4: csi2dc (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: Sink [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb] <- "dw-csi.0":1 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb] -> "atmel_isc_scaler":0 [ENABLED,IMMUTABLE] - entity 7: dw-csi.0 (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev2 pad0: Sink [fmt:SRGGB10_1X10/1920x1080] <- "imx219 1-0010":0 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/1920x1080] -> "csi2dc":0 [ENABLED] - entity 12: imx219 1-0010 (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev3 pad0: Source [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(8,8)/3280x2464 crop:(688,700)/1920x1080] -> "dw-csi.0":0 [ENABLED] - entity 24: atmel_isc_common (1 pad, 1 link) type Node subtype V4L flags 1 device node name /dev/video0 pad0: Sink <- "atmel_isc_scaler":1 [ENABLED,IMMUTABLE]
# v4l2-ctl -d /dev/video0 --list-formats ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'BG10' (10-bit Bayer BGBG/GRGR) [1]: 'GB10' (10-bit Bayer GBGB/RGRG) [2]: 'BA10' (10-bit Bayer GRGR/BGBG) [3]: 'RG10' (10-bit Bayer RGRG/GBGB) [4]: 'AR12' (16-bit ARGB 4-4-4-4) [5]: 'AR15' (16-bit ARGB 1-5-5-5) [6]: 'RGBP' (16-bit RGB 5-6-5) [7]: 'AR24' (32-bit BGRA 8-8-8-8) [8]: 'XR24' (32-bit BGRX 8-8-8-8) [9]: 'YU12' (Planar YUV 4:2:0) [10]: 'UYVY' (UYVY 4:2:2) [11]: 'VYUY' (VYUY 4:2:2) [12]: 'YUYV' (YUYV 4:2:2) [13]: '422P' (Planar YUV 4:2:2) [14]: 'GREY' (8-bit Greyscale) [15]: 'Y10 ' (10-bit Greyscale) [16]: 'Y16 ' (16-bit Greyscale) #
# v4l2-ctl -d /dev/video0 --list-formats-ext ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'BG10' (10-bit Bayer BGBG/GRGR) Size: Continuous 16x16 - 3264x2464 [1]: 'GB10' (10-bit Bayer GBGB/RGRG) Size: Continuous 16x16 - 3264x2464 [2]: 'BA10' (10-bit Bayer GRGR/BGBG) Size: Continuous 16x16 - 3264x2464 [3]: 'RG10' (10-bit Bayer RGRG/GBGB) Size: Continuous 16x16 - 3264x2464 [4]: 'AR12' (16-bit ARGB 4-4-4-4) Size: Continuous 16x16 - 3264x2464 [5]: 'AR15' (16-bit ARGB 1-5-5-5) Size: Continuous 16x16 - 3264x2464 [6]: 'RGBP' (16-bit RGB 5-6-5) Size: Continuous 16x16 - 3264x2464 [7]: 'AR24' (32-bit BGRA 8-8-8-8) Size: Continuous 16x16 - 3264x2464 [8]: 'XR24' (32-bit BGRX 8-8-8-8) Size: Continuous 16x16 - 3264x2464 [9]: 'YU12' (Planar YUV 4:2:0) Size: Continuous 16x16 - 3264x2464 [10]: 'UYVY' (UYVY 4:2:2) Size: Continuous 16x16 - 3264x2464 [11]: 'VYUY' (VYUY 4:2:2) Size: Continuous 16x16 - 3264x2464 [12]: 'YUYV' (YUYV 4:2:2) Size: Continuous 16x16 - 3264x2464 [13]: '422P' (Planar YUV 4:2:2) Size: Continuous 16x16 - 3264x2464 [14]: 'GREY' (8-bit Greyscale) Size: Continuous 16x16 - 3264x2464 [15]: 'Y10 ' (10-bit Greyscale) Size: Continuous 16x16 - 3264x2464 [16]: 'Y16 ' (16-bit Greyscale) Size: Continuous 16x16 - 3264x2464
# v4l2-ctl -d /dev/video0 --get-fmt-video Format Video Capture: Width/Height : 640/480 Pixel Format : 'BG10' (10-bit Bayer BGBG/GRGR) Field : None Bytes per Line : 1280 Size Image : 614400 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) Flags : #
# v4l2-ctl -d /dev/video0 --set-fmt-video width=3464,height=2464,pixelformat=RGBP # v4l2-ctl -d /dev/video0 --get-fmt-video Format Video Capture: Width/Height : 3264/2464 Pixel Format : 'RGBP' (16-bit RGB 5-6-5) Field : None Bytes per Line : 6528 Size Image : 16084992 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) Flags : #
# v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=RGBP_3264_2464.raw --stream-count=1 < # ls -la RGBP_3264_2464.raw -rw-r--r-- 1 root root 16084992 Jan 1 00:00 RGBP_3264_2464.raw #
ffmpeg -f rawvideo -s 3264x2464 -pix_fmt bayer_rggb8 -i frame.raw -frames:v 1 frame.png
ffmpeg -f rawvideo -s 1920x1080 -pix_fmt yuyv422 -i YUYV_1920_1080.raw -frames:v 1 YUYV_1920_1080.png
ffmpeg -f rawvideo -s 1920x1080 -pix_fmt rgb565be -i RGB565_1920_1080.raw -frames:v 1 RGB565_1920_1080.png
# ffmpeg -pix_fmts
#configure pipeline to 3280x2464 first fswebcam -p RGB565 -r 3280x2464 -S 20 bigRGB565.png fswebcam -p YUYV -r 3280x2464 -S 20 bigYUYV.png fswebcam -p UYVY -r 3280x2464 -S 20 bigUYVY.png fswebcam -p VYUY -r 3280x2464 -S 20 bigVYUY.png fswebcam -p ABGR32 -r 3280x2464 -S 20 bigABGR32.png fswebcam -p Y16 -r 3280x2464 -S 20 bigY16.png fswebcam -p GREY -r 3280x2464 -S 20 bigGREY.png fswebcam -p YUV420P -r 3280x2464 -S 20 bigYUV420P.png # reconfigure pipeline to 1920x1080 first fswebcam -p RGB565 -r 1920x1080 -S 20 smallRGB565.png fswebcam -p YUYV -r 1920x1080 -S 20 smallYUYV.png fswebcam -p UYVY -r 1920x1080 -S 20 smallUYVY.png fswebcam -p VYUY -r 1920x1080 -S 20 smallVYUY.png fswebcam -p ABGR32 -r 1920x1080 -S 20 smallABGR32.png fswebcam -p Y16 -r 1920x1080 -S 20 smallY16.png fswebcam -p GREY -r 1920x1080 -S 20 smallGREY.png fswebcam -p YUV420P -r 1920x1080 -S 20 smallYUV420P.png # reconfigure pipeline to 1640x1232 first fswebcam -p RGB565 -r 1640x1232 -S 20 panoRGB565.png fswebcam -p YUYV -r 1640x1232 -S 20 panoYUYV.png fswebcam -p UYVY -r 1640x1232 -S 20 panoUYVY.png fswebcam -p VYUY -r 1640x1232 -S 20 panoVYUY.png fswebcam -p ABGR32 -r 1640x1232 -S 20 panoABGR32.png fswebcam -p Y16 -r 1640x1232 -S 20 panoY16.png fswebcam -p GREY -r 1640x1232 -S 20 panoGREY.png fswebcam -p YUV420P -r 1640x1232 -S 20 panoYUV420P.png # reconfigure pipeline to 640x480 first fswebcam -p RGB565 -r 640x480 -S 20 tinyRGB565.png fswebcam -p YUYV -r 640x480 -S 20 tinyYUYV.png fswebcam -p UYVY -r 640x480 -S 20 tinyUYVY.png fswebcam -p VYUY -r 640x480 -S 20 tinyVYUY.png fswebcam -p ABGR32 -r 640x480 -S 20 tinyABGR32.png fswebcam -p Y16 -r 640x480 -S 20 tinyY16.png fswebcam -p GREY -r 640x480 -S 20 tinyGREY.png fswebcam -p YUV420P -r 640x480 -S 20 tinyYUV420P.png
gst-launch-1.0 v4l2src device="/dev/video0" num-buffers=1 ! video/x-raw,width=3264,height=2464 ! videoconvert ! jpegenc ! filesink location=capture2.jpg
# cam -l [3:09:29.602118600] [272] INFO IPAManager ipa_manager.cpp:138 libcamera is not installed. Adding '//src/ipa' to the IPA search path [3:09:29.602612000] [272] WARN IPAManager ipa_manager.cpp:149 No IPA found in '/usr/lib/libcamera' [3:09:29.602773400] [272] INFO Camera camera_manager.cpp:293 libcamera v0.0.0+58645-2021.08-dirty (2021-10-08T16:10:25+03:00) [3:09:29.610875800] [274] WARN CameraSensor camera_sensor.cpp:197 'imx219 1-0010': Recommended V4L2 control 0x009a0922 not supported [3:09:29.611025000] [274] WARN CameraSensor camera_sensor.cpp:249 'imx219 1-0010': The sensor kernel driver needs to be fixed [3:09:29.611092200] [274] WARN CameraSensor camera_sensor.cpp:251 'imx219 1-0010': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information [3:09:29.617962400] [274] WARN CameraSensor camera_sensor.cpp:414 'imx219 1-0010': Failed to retrieve the camera location [3:09:29.620663000] [274] WARN V4L2 v4l2_pixelformat.cpp:283 Unsupported V4L2 pixel format Y10 [3:09:29.620766200] [274] WARN V4L2 v4l2_pixelformat.cpp:283 Unsupported V4L2 pixel format Y16 [3:09:29.620828600] [274] WARN V4L2 v4l2_pixelformat.cpp:283 Unsupported V4L2 pixel format AR12 [3:09:29.620886800] [274] WARN V4L2 v4l2_pixelformat.cpp:283 Unsupported V4L2 pixel format AR15 Available cameras: 1: 'imx219' (/base/soc/flexcom@e2818000/i2c@600/camera@10) #
cam -c1 -C1 -Fframe.raw -s pixelformat=RGB565
root@sama7g5ek-sd:~# mchpcam-still --help Usage: mchpcam-still [options] Options: -o, --output=FILE Output file name (default: output.jpg) -w, --width=WIDTH Set capture width -h, --height=HEIGHT Set capture height -f, --format=FORMAT Set pixel format (YUYV, RGB565) -i, --image-format=FORMAT Set image format (jpeg, png) -c, --camera=ID Set camera ID -b, --brightness=VALUE Set brightness (-100 to 100) -n, --contrast=VALUE Set contrast (0 to 100) -a, --white-balance-auto=VALUE Set white balance automatic (0 or 1) -g, --gamma=VALUE Set gamma (0 to 500) -H, --help Print this help message* Example: The below example sets the following v4l2 controls Brightness = 1; Contrast = 15; Resolution = 1640x1232.
root@sama7g5ek-sd:~/video-capture-at91/imx219# mchpcam-still -b 1 -n 15 -w 1640 -h 1232 Setting resolution to: 1640x1232 Requested resolution: 1640x1232 [0:14:03.521168000] [222] WARN IPAManager ipa_manager.cpp:154 No IPA found in '/usr/lib/libcamera' [0:14:03.521687000] [222] INFO Camera camera_manager.cpp:313 libcamera v0.0.0+4868-13ea9534-dirty (2024-11-08T03:55:36UTC) [0:14:03.582716800] [223] WARN CameraSensor camera_sensor.cpp:259 'imx219 1-0010': Recommended V4L2 control 0x009a0922 not supported [0:14:03.583237800] [223] WARN CameraSensor camera_sensor.cpp:331 'imx219 1-0010': The sensor kernel driver needs to be fixed [0:14:03.583453000] [223] WARN CameraSensor camera_sensor.cpp:333 'imx219 1-0010': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information [0:14:03.589297600] [223] WARN CameraSensor camera_sensor.cpp:479 'imx219 1-0010': Failed to retrieve the camera location [0:14:03.589564600] [223] WARN CameraSensor camera_sensor.cpp:501 'imx219 1-0010': Rotation control not available, default to 0 degrees [0:14:03.594523400] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.595092000] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.597384000] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.597927000] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.600207800] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.600684600] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.602939600] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.603408600] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.605592800] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.606048400] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.608190000] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.608722400] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.611034800] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.611504200] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.613660000] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR12 [0:14:03.614123000] [223] WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format AR15 [0:14:03.615442600] [223] INFO MicrochipISC microchip-isc.cpp:368 Registered camera '/base/soc/flexcom@e2818000/i2c@600/camera@10' Camera camera.cpp:1183 configuring streams: (0) 1640x1232-YUYV Actual configured resolution: 1640x1232 Capturing image with resolution: 1640x1232* The captured image is stored as output.jpg in the current working directory
# cd video-capture-at91/imx219 # ./3264x2464.sh Ready to capture at 3264x2464 # # ./fswebcam_3264x2464.sh --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigRGB565.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigYUYV.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigUYVY.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigVYUY.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigABGR32.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigY16.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigGREY.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 1.33 seconds. (15 fps) --- Processing captured image... Unable to load font 'sans': Could not find/open font Disabling the the banner. Writing JPEG image to 'bigYUV420P.png'.
# ls -la video-capture-at91/ total 24 drwxr-xr-x 6 root root 4096 May 10 2022 . drwx------ 3 root root 4096 Jan 1 02:08 .. drwxr-xr-x 2 root root 4096 May 10 2022 mt9v022 drwxr-xr-x 2 root root 4096 May 10 2022 ov5640 drwxr-xr-x 2 root root 4096 May 10 2022 ov7670 drwxr-xr-x 2 root root 4096 May 10 2022 ov7740
# ./video-capture-at91/mt9v022/ 752x480_Y10.sh fswebcam_752x480.sh # ./video-capture-at91/mt9v022/752x480_Y10.sh Preparing MT9V022 in Y10 10bits mode Ready to capture at 752x480 # # # ./video-capture-at91/mt9v022/fswebcam_752x480.sh --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 0.37 seconds. (56 fps) --- Processing captured image... Writing JPEG image to 'tinyGREY.png'. #
# ./video-capture-at91/ov7740/640x480_raw.sh Preparing OV7440 in RAW BAYER MODE Ready to capture at 640x480 # ./video-capture-at91/ov7740/fswebcam_640x480.sh --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 0.38 seconds. (55 fps) --- Processing captured image... Writing JPEG image to 'tinyRGB565.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 0.38 seconds. (55 fps) --- Processing captured image... Writing JPEG image to 'tinyYUYV.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 0.38 seconds. (54 fps) --- Processing captured image... Writing JPEG image to 'tinyABGR32.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 0.38 seconds. (54 fps) --- Processing captured image... Writing JPEG image to 'tinyGREY.png'. --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Skipping 20 frames... Capturing 1 frames... Captured 21 frames in 0.38 seconds. (54 fps) --- Processing captured image... Writing JPEG image to 'tinyYUV420P.png'. #
ffmpeg -pix_fmts
v4l2-ctl -v pixelformat=RGBP,height=480,width=640 # corresponding v4l2 format ffmpeg -s vga -pix_fmt rgb565be -f video4linux2 -i /dev/video0 video_vga_rgb565be.avi
v4l2-ctl -v pixelformat=YUYV,height=480,width=640 # corresponding v4l2 format ffmpeg -s vga -pix_fmt yuyv422 -f video4linux2 -i /dev/video0 video_vga_yuyv422.avi
WebFaqBaseForm | |
---|---|
Boards | Sam9x75Curiosity, Sama7g5-ek, Sama5d27WLSom1EK, Sama5d27Som1EK, Sama5d2Xplained |
Components | linux-5.15-mchp, linux-6.1-mchp, linux-6.6-mchp |
Summary | What is Media controller and how to use it with SAM products. |
|
|||||||||||||||
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Microchip and others, are registered trademarks or trademarks of Microchip Technology Inc. and its subsidiaries.
Arm® and others are registered trademarks or trademarks of Arm Limited (or its affiliates). Other terms and product names may be trademarks of others.
Ideas, requests, contributions ? Connect to LinksToCommunities page.