这些都定义在linux/videodev2.h文件里面:
/* Pixel format FOURCC depth Description */ #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ #define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ #define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ #define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ #define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */ #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
/* two planes -- one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ /* The following formats are not defined in the V4L2 specification */ #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ #define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ #define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ /* see http://www.siliconimaging.com/RGB%20Bayer.htm */ #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */
/* compressed formats */ #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */ #define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG */ #define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 */ #define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 */
/* Vendor-specific formats */ #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ #define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ #define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ #define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ #define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */ #define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */ #define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ #define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ #define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ #define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ #define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ #define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ #define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
希望有所帮助~~
相关推荐
本主题聚焦于使用v4l2(Video for Linux Two)接口,结合QT库,实现MJPEG(Motion JPEG)格式的视频采集、屏幕显示以及图片保存功能。下面将详细阐述这些知识点。 1. **v4l2接口**: v4l2是Linux操作系统中的一个...
在这个项目中,我们看到一个用C语言编写的V4L2程序,其目标是捕获视频流并将其保存为YUV格式的视频文件。下面我们将详细探讨V4L2、YUV以及如何在Linux环境中实现这个功能。 1. **V4L2接口** V4L2是Video for Linux...
USB Camera V4L2 视频录制在Ubuntu操作系统中的实现是一项关键的技术,它涉及到计算机视觉、多媒体处理和Linux系统编程等多个领域。V4L2,全称Video for Linux Two,是Linux内核提供的一种用于访问视频设备(如USB...
在这个场景中,我们的目标是通过V4L2接口来采集摄像头的视频数据,并且将其转换为特定格式以便于处理和显示。具体来说,我们将关注以下几个关键知识点: 1. **V4L2接口**:V4L2提供了与视频设备进行通信的一套结构...
在Linux系统中,USB摄像头的视频采集通常涉及到了一个核心的技术接口——Video for Linux version 2(v4l2)。v4l2是Linux内核为数字视频设备提供的一种驱动程序接口,它允许用户空间程序直接与硬件进行交互,进行...
V4L2是Linux内核提供的一种API,它为开发者提供了访问视频设备(如摄像头)的能力,支持多种视频捕获和编码功能。在本项目中,我们将基于Qt开发平台,结合V4L2驱动,来实现视频的实时采集和帧数据的保存。 首先,Qt...
V4L2 API包括一系列的结构体、枚举和函数,用于控制视频设备,如设置图像格式、捕获帧、传输数据等。 2. C语言编程基础: C语言是一种通用的、面向过程的编程语言,适用于系统级编程,如操作硬件设备。在V4L2中,...
在Android平台上,开发一款应用程序来使用Video for Linux Two (V4L2)接口捕获YUV数据,并通过移植libjpeg库将其转换为JPEG格式的图片,是一项技术挑战。以下是对这个过程的详细解释: 首先,V4L2是Linux内核提供的...
在V4L2中,`v4l2_format`结构体用于描述视频格式,包括图像的宽度、高度、像素格式以及帧率等。开发者可以通过`VIDIOC_S_FMT`或`VIDIOC_G_FMT`ioctl命令来设置或获取这些参数。`V4l2_get_fps_demo`可能就是通过`...
【描述】:“qt v4l2多线程视频采集摄像头格式为yuyv 640 * 480”意味着在实现该功能时,摄像头输出的视频格式为YUV 4:2:2(通常表示为YUYV),分辨率是640像素乘以480像素。YUV色彩空间是一种常见的视频编码方式,...
opencv 编译安装opencv + V4L2 进行视频采集显示, linux 下面的 c/c++源码 , ...该资源使用Linux系统中的V4L2接口读取摄像头MJPEG图像数据,解码成RGB数据,再转换为Opencv中的Mat对象所使用的BGR格式。
在本文中,我们将深入探讨如何使用QT框架与V4L2(Video for Linux Two)接口进行摄像头视频采集,并实现在GUI应用中显示摄像头图像。V4L2是Linux内核提供的一种API,用于与视频捕获设备(如摄像头)进行交互。QT则是...
4. **JPEG编码/解码**:除了常见的视频编码格式外,V4L2还支持JPEG编码和解码,常用于图片的处理和传输。 5. **流媒体支持**:V4L2可以与多媒体框架如GStreamer、FFmpeg等协同工作,实现流媒体的捕获和传输。 **...
在使用V4L2时,有的video设备 Capabilities为Video Capture Multiplanar。此时和Video Capture 格式设备采集所用的应用程序接口有些不同。
OpenCV主要用于图像处理和计算机视觉算法的实现,而V4L2是Linux系统中的一个接口,用于支持视频捕获和播放设备。当这两者结合时,可以构建强大的实时视频处理系统。本文将详细阐述OpenCV与V4L2的集成过程、实现选择...
基于QT开发的V4L2摄像头视频采集,并使用QLable实现摄像头图像的刷新显示 QT版本:Qt 5.14 在Ubuntu20.04主机上面测试通过,测试使用的摄像头是USB接口,型号:谷客HD98 这个程序在网上其他资源的基础上修改而来的,...
V4L2学习笔记及图像视频采集基本流程 V4L2(Video For Linux 2)是一种用于视频采集的Linux API,提供了一个标准化的接口来访问视频设备。下面是V4L2学习笔记及图像视频采集基本流程的知识点总结: 一、基本概念 ...
- 使用`ioctl`调用来设置v4l2设备的参数,如图像尺寸、像素格式等。 - 通过`mmap`将设备缓冲区映射到进程地址空间,以便直接读取视频帧。 - 用`pthread_create`创建线程,并通过`pthread_join`等待线程结束。 - ...
打开视频设备文件,通过视频采集的参数初始化,通过V4L2接口设置视频图像属性。 申请若干视频采集的帧缓存区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据。 将申请到的帧缓冲区...
基于V4L2的视频采集,能够采集YUV,JPEG,BMP格式的图片,编译前请先阅读README