这些都定义在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 */
希望有所帮助~~
相关推荐
1. **历史与目的**:V4L2是在早期V4L(Video for Linux)基础上发展起来的,旨在解决V4L的局限性,如缺乏对多设备支持、复杂的API等。V4L2提供了一种统一的、模块化的接口,用于处理视频I/O,包括数字和模拟视频、...
通过分析和学习这个源代码,开发者不仅可以了解V4L2的基本使用方法,还能深入理解其内部机制,这对于开发与视频相关的应用程序,如视频聊天软件、监控系统、图像处理应用等具有极大的价值。同时,由于源代码稍作改动...
UVC(Universal Video Class)是USB设备类定义的一部分,用于支持USB视频设备,通常与v4l2接口配合使用。 综合以上知识点,我们可以构建一个基于Linux的视频采集系统,它能够从MJPEG格式的视频源中捕获数据,实时在...
V4L2学习笔记及图像视频采集基本流程 V4L2(Video For Linux 2)是一种用于视频采集的Linux API,提供了一个标准化的接口来访问视频设备。下面是V4L2学习笔记及图像视频采集基本流程的知识点总结: 一、基本概念 ...
6. **图像格式**:V4L2支持多种图像格式,包括YUV、RGB等。开发者需要了解这些格式以便正确处理从设备获取的数据。 7. **时间戳**:每个缓冲区都有一个时间戳,记录了帧生成的时间,这对于同步和延迟计算非常重要。...
V4L2是Linux内核中用于支持多媒体设备,如摄像头等的API,它提供了与这些设备交互的能力,包括捕获、编码、解码以及播放等功能。 在这个场景中,我们的目标是通过V4L2接口来采集摄像头的视频数据,并且将其转换为...
在这个项目中,我们看到一个用C语言编写的V4L2程序,其目标是捕获视频流并将其保存为YUV格式的视频文件。下面我们将详细探讨V4L2、YUV以及如何在Linux环境中实现这个功能。 1. **V4L2接口** V4L2是Video for Linux...
利用Qt,我们可以轻松地创建窗口、控件,并与V4L2驱动进行交互,实现实时显示视频流。 要使用V4L2在Qt中进行视频采集,首先需要打开设备文件,通常是`/dev/video0`,代表第一个视频设备。接着,通过调用`ioctl`系统...
5. 视频和音频输入输出:V4L2支持视频和音频的输入和输出功能,可以应用于多种音视频设备。 6. 高频头和调制器:包括对高频头(用于接收模拟电视信号)和调制器(用于发送模拟电视信号)的控制。 7. 视频标准:...
2. **结构体**:V4L2定义了一系列重要的结构体,如`struct v4l2_format`用于描述视频格式,`struct v4l2_buffer`用于缓冲区管理和数据传输,以及`struct v4l2_pix_format`定义了图像的像素格式。 3. **I/O模式**:...
【描述】:“qt v4l2多线程视频采集摄像头格式为yuyv 640 * 480”意味着在实现该功能时,摄像头输出的视频格式为YUV 4:2:2(通常表示为YUYV),分辨率是640像素乘以480像素。YUV色彩空间是一种常见的视频编码方式,...
7. **视频标准和格式**:V4L2支持多种视频标准(如NTSC、PAL)和各种像素格式。驱动开发人员需要确保设备能正确地设置和转换这些格式。 8. **捕获和显示**:V4L2驱动需要实现捕获视频流(录制)和显示视频流(播放...
V4L2(Video for Linux Two)是Linux操作系统下的一个接口,用于与视频捕获设备进行交互,如摄像头。V4L2_capture 是一个利用V4L2接口进行视频采集的程序,它能够从摄像头获取数据,并在帧缓冲区(framebuffer)上显示...
v4l2是Linux内核为数字视频设备提供的一种驱动程序接口,它允许用户空间程序直接与硬件进行交互,进行视频的捕获和输出。本文将深入探讨如何利用v4l2接口来实现USB摄像头的视频采集,并结合x264编码器对视频进行编码...
V4L2是Linux内核提供的一种标准接口,用于与视频捕获设备(如摄像头)进行交互。我们将详细解释这一过程中的关键技术点,并给出代码示例。 首先,`V4L2`是Linux系统中用于多媒体设备(如摄像头)的驱动程序接口。它...
打开视频设备文件,通过视频采集的参数初始化,通过V4L2接口设置视频图像属性。 申请若干视频采集的帧缓存区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据。 将申请到的帧缓冲区...
在Linux操作系统中,基于Video for Linux version 2 (V4L2)框架的图像采集是一项核心的技术,它允许用户空间程序与硬件设备(如内置摄像头)进行交互,以捕获和处理视频数据。V4L2是Linux内核提供的一套API,用于...
V4L2支持多种视频格式、捕获和输出模式,适用于各种设备,包括数码相机、网络摄像头以及行车记录仪等。 **QCOM车机平台** Qualcomm(QCOM)是一家全球知名的无线科技公司,其在车机平台领域提供了高性能、低功耗的...
总结来说,V4L2架构为Linux系统提供了强大的视频处理能力,涵盖了从硬件驱动到用户空间应用的完整链路,支持多种视频格式和流式传输,同时提供了丰富的控制选项和扩展性。理解并掌握V4L2架构对于开发和维护Linux环境...
V4L2 API包括一系列的结构体、枚举和函数,用于控制视频设备,如设置图像格式、捕获帧、传输数据等。 2. C语言编程基础: C语言是一种通用的、面向过程的编程语言,适用于系统级编程,如操作硬件设备。在V4L2中,...